Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Проблемы с ресайзером

00 голосов
3
Пытаюсь повесить ресайзер ucresizeimg. Возникли следующие проблемы:

-если создать /bitrix/php_interface/#SITE_ID#/, то событие не срабатывает при обновлении элемента из админки
-если заменить $ucResizeImg на $GLOBALS['ucResizeImg'], то выдает
Fatal error: Call to a member function SetDefParams() on a non-object in /usr/home/milby2/public_html/bitrix/php_interface/init.php on line 10

Поэтому написал следующий код:
Код
<?
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate",   array("rszImage", "OnBeforeIBlockElementUpdate"));
class rszImage
{
   function OnBeforeIBlockElementUpdate (&$arFields)
   {
      define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
      require_once 'ucresizeimg.class.v2.0.php';

      $ucResizeImg->SetDefParams(array('BITRIX_MODE'=>true)); 

      $resImg =$ucResizeImg->GetResized(array('INPUT_FILE' => "/file.jpg", 'WIDTH' => 200, 'HEIGHT' => 100,  'DEBUG' => 'TEXT'));
      AddMessage2Log("SRC: ".$resImg);
   }
}
?>

который пишет в лог, что файл не найден, хотя он лежит в корне сайта.
2011-06-03 17:02:56 - - SRC: Error: Input file not exists: /file.jpg
rszImage::OnBeforeIBlockElementUpdate < call_user_func_array < ExecuteModuleEventEx

Такой же код работает на сайте, но в init.php почему-то не хочет.
Как решить проблемы?
спросил 08 Сен, 13 от ElfenLieD (120 баллов)

3 Ответы

00 голосов
Код
require_once 'ucresizeimg.class.v2.0.php';

Вы уверены что путь правильный, попробуйте написать от корня:
Код
$_SERVER['DOCUMENT_ROOT'].'/.../ucresizeimg.class.v2.0.php'

Или вы имеете в виду, что файл изображения не найден?

Вообще попробуйте не включать BITRIX_MODE.
Не пишите эту строку:
Код
$ucResizeImg->SetDefParams(array('BITRIX_MODE'=>true));

Если проблема решится на этом — сообщите. Может на том месте, где Вы пишите код, не доступна SITE_ID. Можете проверить if (defined('SITE_ID'))
ответил 08 Сен, 13 от cayn (140 баллов)
00 голосов
Ресайзер -- зарегистрированная торговая марка, пожалуйста переименуйте топик. 8) Шутка :-)
ответил 02 Дек, 13 от Siemka (1,020 баллов)
00 голосов
Цитата
Вообще попробуйте не включать BITRIX_MODE.

помогло, спасибо
ответил 15 Март, 14 от ElfenLieD (120 баллов)

Похожие вопросы

0 голосов
1 ответ
спросил 19 Июнь, 17 от аноним
0 голосов
2 ответов
спросил 06 Май, 14 от xDEV1Lx (240 баллов)
0 голосов
2 ответов
спросил 02 Май, 14 от PuTop (100 баллов)
0 голосов
2 ответов
спросил 29 Апр, 14 от Nadejda (180 баллов)
0 голосов
2 ответов
спросил 16 Апр, 14 от Ayros (100 баллов)