Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Ресайз фото в Разделах

14.10.2013, 18:48
YLI
Web Izmerenie

Зарегистрирован:
2009-04-07
Сообщений: 5

Всем привет! Давно есть необходимость ресайза картинок заведенных в системных таблицах - Разделы. Для этой системной таблицы в netcat не предусмотрены действия после добавления/изменения. Решал ли кто-то подобную задачу, какие есть мысли?

anthony
19.10.2013, 13:39
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 1037

Я видел как то решение на форуме там предлагали через управление задачами. Но конкретно не чего не было написано

Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
19.10.2013, 14:01
Игорь
Игорь Мишарин
Игорь

Зарегистрирован:
2011-11-20
Сообщений: 479

Эту функцию в 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.
198 196 13349
Описание проекта