|
|
14.10.2013, 18:48
|
|
YLI
Web Izmerenie
Зарегистрирован: 2009-04-07
Сообщений: 5
|
Всем привет! Давно есть необходимость ресайза картинок заведенных в системных таблицах - Разделы. Для этой системной таблицы в netcat не предусмотрены действия после добавления/изменения. Решал ли кто-то подобную задачу, какие есть мысли?
anthony
|
|
|
19.10.2013, 13:39
|
|
Nexwich
Панасин Александр
Зарегистрирован: 2011-04-05
Сообщений: 1037
|
Я видел как то решение на форуме там предлагали через управление задачами. Но конкретно не чего не было написано
Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
|
|
|
19.10.2013, 14:01
|
|
Игорь
Игорь Мишарин
Зарегистрирован: 2011-11-20
Сообщений: 482
|
Эту функцию в netcat/modules/default/function.inc.php
Код:function x_resize_crop($file, $resizeToWidth, $resizeToHeight) {
ini_set('memory_limit', '128M');
global $HTTP_HOST, $DOCUMENT_ROOT, $HTTP_FILES_PATH, $FILES_FOLDER;
$file = str_replace("h_", "", $file);
$imgcache = "Resize/".$resizeToWidth.$resizeToHeight.substr($file, strrpos($file, "/") + 1, strlen($file));
if (!file_exists($FILES_FOLDER.$imgcache) and $file and file_exists($DOCUMENT_ROOT.$file)) {
list($width, $height, $itype) = getimagesize($DOCUMENT_ROOT.$file);
switch($itype) {
case 1: $image = imagecreatefromgif($DOCUMENT_ROOT.$file); break;
case 2: $image = imagecreatefromjpeg($DOCUMENT_ROOT.$file); break;
case 3: $image = imagecreatefrompng($DOCUMENT_ROOT.$file); break;
}
$resizeWidthRatio = $width / $resizeToWidth;
$resizeHeightRatio = $height / $resizeToHeight;
$resizeRatio = min($resizeHeightRatio, $resizeWidthRatio);
$resizeX = ($width / 2) - ($resizeToWidth / 2) * $resizeRatio;
$resizeY = ($height / 2) - ($resizeToHeight / 2) * $resizeRatio;
$image_n = imagecreatetruecolor($resizeToWidth, $resizeToHeight);
if ($itype == 3) {
imagealphablending($image, false);
imagesavealpha($image, true);
imagealphablending($image_n, false);
imagesavealpha($image_n, true);
}
imagecopyresampled($image_n, $image, 0, 0, $resizeX, $resizeY, $resizeToWidth, $resizeToHeight, $width - 2 * $resizeX, $height - 2 * $resizeY);
if ($itype == 3) {
imagepng($image_n, $FILES_FOLDER.$imgcache);
} else {
imagejpeg($image_n, $FILES_FOLDER.$imgcache, 90);
}
}
return $HTTP_FILES_PATH.$imgcache;
}
Создать папку Resize в netcat_files
Вызов функции:
Код:<img src='<?=x_resize_crop(название_поля,width,height);?>' />
Stark
|
|
|
20.10.2013, 00:54
|
|
YLI
Web Izmerenie
Зарегистрирован: 2009-04-07
Сообщений: 5
|
Игорь, большое спасибо, попробую ваше решение!
anthony
|
|
|
01.11.2013, 10:57
|
|
Гость
Гость
|
можно через событие добавления/редактирования раздела сделать
|
|
|
01.11.2013, 10:57
|
|
Гость
Гость
|
проще и универсальнее
|
|
|
01.11.2013, 17:40
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Еще вариант - поставить NetCat 5.2 с последними патчами. Там есть авторесайз картинок, загружаемых, к примеру, в визуальные настройки компонента или макета дизайна.
|
|
|
02.11.2013, 18:52
|
|
Гость
Гость
|
Цитата:можно через событие добавления/редактирования раздела сделать
Насколько помню в системных таблицах для разделов нет шаблонов добавления-изменения.. Или как-то по другому можно отследить эти события?
|
|
|
02.11.2013, 19:06
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Да, есть ведь функции "прослушивания" событий в системе. Пример использования смотрите в /netcat/modules/default/function.inc.php.
|