Всем привет вообщем, необходимо чтобы при добавлении картинки в инфоблок автоматически создавалось привьюшка.
Прикрутил phpThumb, теперь при добавлении элемента вылазит ошибка, в init.php следующий код:
Прикрутил phpThumb, теперь при добавлении элемента вылазит ошибка, в init.php следующий код:
Код |
---|
include('/bitrix/php_interface/includes/phpThumb/phpThumb.class.php'); //Создание элемента AddEventHandler("iblock", "OnBeforeIBlockElementAdd",array("AddThumbs", "MakeImage")); //Изменение элемента AddEventHandler("iblock", "OnBeforeIBlockElementUpdate",array("AddThumbs", "MakeImage")); class AddThumbs { /** * Генерация превьюшек для больших изображений * * @param string $src путь от корня сайта к исходной картинке * @param int $size размер изображения (сторона квадрата в пикселях) * @param int $lifeTime время жизни превьюшки в секундах (по дефолту месяц) * @return string */ function MakeImage ($src, $size=200, $lifeTime = 2592000, $params = "") { if (!$lifeTime) $lifeTime = 2592000; if (!$size) $size = 200; if (is_numeric($src)) if ($src > 0) $src = CFile::GetPath($src); if (file_exists($_SERVER['DOCUMENT_ROOT'].$src)) { require_once($_SERVER['DOCUMENT_ROOT']."/bitrix/php_interface/includes/phpThumb/phpthumb.class.php"); // Подключаем и иннициализируем phpThumb $phpThumb = new phpThumb(); $phpThumb->src = $src; $ext = end(explode(".", $src)); // Расширение файла картинки switch ($ext) { case "jpg": $phpThumb->f = "jpeg"; break; case "gif": $phpThumb->f = "gif"; break; case "png": $phpThumb->f = "png"; break; default: $phpThumb->f = "jpeg"; break; } $base_name = basename($src, ".".$ext); // Основное имя файла $phpThumb->w = $size; //$phpThumb->h = $size; $phpThumb->q = 90; $phpThumb->bg = "#ffffff"; $phpThumb->far = true; $phpThumb->aoe = false; if (is_array($params)) { foreach ($params as $param=>$value) { $phpThumb->$param = $value; } $code = substr(md5(serialize($params)), 8, 16); // сократим суффикс с параметрами до 16 символов } else { $code = $phpThumb->w; } $target_file = $_SERVER['DOCUMENT_ROOT'].dirname($src)."/".$base_name."_thumb_".$code.".".$ext; if (file_exists($target_file) AND filesize($target_file)>0) { if (filemtime($target_file)+$lifeTime < time()) { // Файл есть, но старый $phpThumb->GenerateThumbnail(); $success = $phpThumb->RenderToFile($target_file); } else { // Файл есть, новый, не генерируем $success = true; } } else { // Файла нет, генерируем if (file_exists($target_file) AND filesize($target_file)==0) @unlink($target_file); // удаление файла нулевой длины $phpThumb->GenerateThumbnail(); $success = $phpThumb->RenderToFile($target_file); } if ($success) return substr($target_file, strlen($_SERVER['DOCUMENT_ROOT'])); else return false; } else { return false; } } } ?> |