Компоненты - основные сущности, обеспечивающие функциональность сайта в NetCat. В них содержатся "поля", описывающие типы хранимых данных в таблице Базы Данных MySQL, формат представления этих полей, алгоритмы их взаимодействия. К компонентам привязываются "объекты" - наименее абстрактные сущности сайта. Именно их - статьи, голосования, комментарии, товары в каталоге - вы и видите в конечном итоге на сайте, они составляют его "контент".
Здесь собраны полезные кусочки кода, которые часто бывают нужны при программировании разнообразного функционала компонентов.
Включение стороннего php-скрипта
";
if ($admin_mode != true) { // если не в админке
chdir($DOCUMENT_ROOT.'/some_script/'); // меняем рабочую директорию на директорию скрипта
global $Foo; // объявляем $Foo глобальной
include_once("index.php"); // подключаем скрипт
chdir($DOCUMENT_ROOT); // возвращаемся в дефолтную директорию
}
$result .= "
$Foo //выводим значение $Foo, полученное в результате работы скрипта
<!-- /код включения -->
Код включает сторонний php-код в компонент NetCat. Кроме того, мы используем переменную $Foo, определяемую во включаемом скрипте, в дальнейшей работе в NetCat. Код включаемого php-скрипта не должен ничего выводить на экран, иначе он выполнится перед контентом компонента. Таким образом включаемый php-скрипт должен быть оформлен в виде функции, примерно с таким выводом:
global $Foo; $Foo = some_final_result_function($Bar); return $Foo;
Вывод первых N символов текста поля f_Preview в листинге объектов компонента
$lenght1=strlen($f_Name);
if ($lenght1>63)
{
$length = strripos(substr($f_Name, 0, 63), ' ');
$phphsubstr = substr($f_Name, 0, $length)."...";
}
else
{
$phphsubstr = $f_Name;
}
$result.= "
$phphsubstr
Определение размера фотографии $f_image в листинге объекта
$imageFileInfo = getimagesize($DOCUMENT_ROOT.$f_image);
echo $imageFileInfo[0];
echo $imageFileInfo[1];
echo "
Для действия после изменения/добавления: ресайзить картинку, но только уменьшая
global $nc_core;
require_once($nc_core->INCLUDE_FOLDER."classes/nc_imagetransform.class.php");
if ($_FILES[f_image][size]!=0 && $_FILES[f_image][type]!='')
{
$photo_path = $DOCUMENT_ROOT.nc_file_path($classID, $message, 'image', "");
$imageFileInfo = getimagesize($photo_path);
if ($photo_path && $imageFileInfo[0] > 400 && $imageFileInfo[1] > 300) nc_ImageTransform::imgResize("$photo_path","$photo_path", 400, 300, 0, 'jpg', 90, $message, 'image');
}
Объект в списке: выводим заголовок, только если s_list_class не пуст
<ul>
<li><a href='$fullLink'>$f_Name</a><br/></li>
":"
<li><a href='$fullLink'>$f_Name</a><br/></li>")."
Если мы делаем s_list_class компонента, и не уверены, что под условия выборки попадет хоть один объект, можно вот так просто сэмулировать префикс объекта.
Системные настройки: отображать объект при полном выводе, даже если он выключен
$ignore_check = 1;
}
nc_ImageTransform - это функция ядра NetCat. С вопросами по ее работе с 32 битным PNG лучше обратиться в техподдержку NetCat. И написать сюда ответ, если разберетесь с проблемой :)
Finar.


Оставить комментарий