uawdijnntqw1x1x1
IP : 216.73.217.47
Hostname : xhost1.intravision.ru
Kernel : Linux xhost1.intravision.ru 3.16.0-7-amd64 #1 SMP Debian 3.16.59-1 (2018-10-03) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
.
/
.
/
.
/
backup
/
external_www
/
new02.medcomp.ru
/
bitrix
/
modules
/
imager
/
classes
/
.
/
general
/
auto.php
/
/
<? class CBitrixImager { function OnAfterEpilog() { // не обрабатываем папку "bitrix" if(CSite::InDir('/bitrix/')) return; // достаём настройкиы $enabled = COption::GetOptionString('imager','imager_fp_enabled','N'); $dirs = COption::GetOptionString('imager','imager_fp_dirs',''); $classes = COption::GetOptionString('imager','imager_fp_classes',''); $minsize = COption::GetOptionString('imager','imager_fp_minsize',''); $maxsize = COption::GetOptionString('imager','imager_fp_maxsize',''); $exts = COption::GetOptionString('imager','imager_fp_extensions',''); $onlyiblock = COption::GetOptionString('imager','imager_fp_onlyiblock','N'); $path2destination = COption::GetOptionString('imager','imager_save_dir',''); // не обрабатываем, если не определена "Директория для сохранения изображений" if(!$path2destination) return; if(!is_dir($_SERVER['DOCUMENT_ROOT'].'/'.$path2destination)) return; // не обрабатываем, если "Автоматическая обработка" выключена if($enabled != 'Y') return; // изображения меньше этих размеров не будут обрабатываться if($minsize) { $minsize = explode(',', $minsize); $minsize[0] = (int)(trim($minsize[0])); $minsize[1] = (int)(trim($minsize[1])); } // расширения изображений на которые действует фильтр if($exts) { $exts = explode(',', $exts); foreach ($exts as $i=>$ext) $exts[$i] = trim($ext); } // классы изображений на которые действует фильтр if($classes) { $classes = explode(',', $classes); foreach ($classes as $i=>$class) $classes[$i] = trim($class); } // изображения больше этих размеров не будут обрабатываться if($maxsize) { $maxsize = explode(',', $maxsize); $maxsize[0] = (int)(trim($maxsize[0])); $maxsize[1] = (int)(trim($maxsize[1])); } // проверка на папки if($dirs) { $dirs = explode(',', $dirs); $check = false; foreach ($dirs as $dir) { if(CSite::InDir(trim($dir))) { $check = true; break; } } if (!$check) return; } // получаем код страницы в переменную $content = ob_get_contents(); // находим все совпадения с шаблонов (поиск изображений) preg_match_all('/(<img.+src=[\"\'](.+)[\"\'].*>)/Ui', $content, $arr); $arParams['MODE'] = '2';// режим без изменения размеров $arParams = CImager::GetDefault($arParams); // путь до директории для сохранения изображений $save_dir = CImager::GetFullPath($arParams['SAVE_DIR']); // прерываем если директория не существует if(!is_dir($save_dir)) return; // начинаем замену совпадений foreach($arr[0] as $i=>$html) { // атрибуты тега IMG $img = $arr[2][$i]; // значение атрибута SRC $src = trim($img); // удаляем домен из пути, получаем относительный путь $src = str_ireplace(array('http://'.$_SERVER['HTTP_HOST'], 'http://www.'.$_SERVER['HTTP_HOST']), '', $src); // если картинка с другого сервера, то прерываем процесс if(strpos($src, 'http://')===0) continue; // прерываем, если картинка не из инфоблока if($onlyiblock=='Y') { if(strpos($src, '/upload/iblock/')===false) continue; } // получаем информацию о изобрадении которое будем обрабатывать $info = CImager::GetImageInfo($_SERVER['DOCUMENT_ROOT'].'/'.$src); // прерываем если не удалось определить расширение if(!$info['extension']) continue; // прерываем если расширение отсутствует в массиве возможных расширений, если он задан if($exts && !in_array($info['extension'], $exts)) continue; // проверка на принадлежность к классам if($classes) { preg_match_all('/class=[\"\'](.*)[\"\']/Ui', $html, $tmp); $str_classes = trim($tmp[1][0]); if($str_classes) { $str_classes = str_replace(array(' ',' ',' ',' '), ' ', $str_classes); $arClass = explode(' ', $str_classes); } else { continue; } $check = false; foreach($arClass as $class) { if(in_array($class, $classes)) { $check = true; break; } } if(!$check) continue; } // проверка на минимальные размеры if($minsize) { $w = $mixsize[0]; $h = $minsize[1]; if ($w && $w > $info['width']) continue; if ($h && $h > $info['height']) continue; } // проверка на максимальные размеры if($maxsize) { $w = $maxsize[0]; $h = $maxsize[1]; if ($w && $w < $info['width']) continue; if ($h && $h < $info['height']) continue; } $arParams['IMAGE'] = CImager::GetFullPath($src); // формируем название нового файла (хеш массив, длина названия) $hash_file_name = CImager::GetHashName($arParams, false); if($hash_file_name) { // ПОЛНЫЙ путь до нового изображения $new_file_path = CImager::GetPath($save_dir.'/'.$hash_file_name); // путь от КОРНЯ до нового изображения $new_src = CImager::GetPath($arParams['SAVE_DIR'].'/'.$hash_file_name); // проверка существования файла, чтобы не ресайзить каждый раз if(!file_exists($new_file_path) || $arParams['CACHE_IMAGE'] != 'Y') { $arImagerParams = array( 'MODE' => $arParams['MODE'], 'FILTERTYPE' => $arParams['FILTERTYPE'], 'RESIZE_SMALL' => $arParams['RESIZE_SMALL'], 'PATH2SOURCE' => $arParams['IMAGE'], 'PATH2RESULT' => $new_file_path, 'WIDTH' => $arParams['WIDTH'], 'HEIGHT' => $arParams['HEIGHT'], 'BG' => $arParams['BG'], 'QUALITY' => $arParams['QUALITY'], 'ADD_WATERMARK' => $arParams['ADD_WATERMARK'], 'WATERMARK_PATH' => $arParams['WATERMARK_PATH'], 'WATERMARK_POSITION' => $arParams['WATERMARK_POSITION'], 'ADD_CORNER' => $arParams['ADD_CORNER'], 'CORNER_PATH' => $arParams['CORNER_PATH'], 'ADD_TEXT' => $arParams['ADD_TEXT'], 'TEXT' => $arParams['TEXT'], 'TEXT_SIZE' => $arParams['TEXT_SIZE'], 'TEXT_ANGLE' => $arParams['TEXT_ANGLE'], 'TEXT_X' => $arParams['TEXT_X'], 'TEXT_Y' => $arParams['TEXT_Y'], 'TEXT_POSITION' => $arParams['TEXT_POSITION'], 'TEXT_COLOR' => $arParams['TEXT_COLOR'], 'FONT_PATH' => $arParams['FONT_PATH'], ); if(CImager::Resize($arImagerParams)) { $new_html = str_replace($src, $new_src, $html); $content = str_replace($html, $new_html, $content); } } else { $new_html = str_replace($src, $new_src, $html); $content = str_replace($html, $new_html, $content); } } } // выводим обработанный контент с замененными изображениями ob_clean(); echo $content; } } ?>
/var/./././backup/external_www/new02.medcomp.ru/bitrix/modules/imager/classes/./general/auto.php