В начале должен быть идентификатор приложения, для которого вы создаёте класс. Для Shop-Script это shop, для Сайта — site.
Далее должно использоваться любое слово, которое, на ваш взгляд, никогда не будет использоваться разработчикам Shop-Script. Например, можно использовать своё имя: shopVasya — класса с таким именем точно не будет в Shop-Script, а значит, при установке очередного обновления он не будет перезаписан.
Если вы создаёте хелпер для приложения Сайт, то и размещать его нужно в директории этого приложения. Можно, конечно, и в дршугом приложении размещать, но это получится бардак, и однажды вы просто не найдёте этот файл, чтобы подредактировать, т. к. будет непонятно, где его искать.
Главное потом доверять всем тем, кому вы будете давать доступ в редактор дизайна, т. к. выполнение любого PHP-кода в шаблонах темы дизайна обозначает также возможность внедрения любого вредоносного кода или порчу данных путём обращения к базе данных средствами такого кода. В общем, небезопасное это дело. И не говорите потом, что вас не предупреждали ;)
7 ответов
Поиск находит ответы на ваш вопрос:
http://www.webasyst.ru/help/170/custom-helper/
http://www.webasyst.ru/help/1115/vozmozhnost-ispol...
Михаил, а если нет по умолчанию wa-apps/shop/lib/classes/shopCustom.class.php его можно создать? Имя строго такое?
Если мне нужно вывести инфу на главной странице может мне стоит создать файл в wa-apps/site/lib/classes/shopCustom.class.php ?
Правила именования класса хелпера:
Если вы создаёте хелпер для приложения Сайт, то и размещать его нужно в директории этого приложения. Можно, конечно, и в дршугом приложении размещать, но это получится бардак, и однажды вы просто не найдёте этот файл, чтобы подредактировать, т. к. будет непонятно, где его искать.
1. Смотрим версию Smatry тут: /wa-system/vendors/smarty3/README
2. Скачиваем нужный дистрибутив тут: http://www.smarty.net/download
3. Копируем из дистрибутива файл /libs/SmartyBC.class.php в /wa-system/vendors/smarty3/
4. Редактируем файл /wa-system/view/waSmarty3View.class.php
заменяем
require_once realpath(dirname(__FILE__).'/../').'/vendors/smarty3/Smarty.class.php';
на
require_once realpath(dirname(__FILE__).'/../').'/vendors/smarty3/SmartyBC.class.php';
заменяем
$this->smarty = new Smarty();
на
$this->smarty = new SmartyBC();
Теперь в шаблонах можно использовать теги <?php ... ?>
ВНИМАНИЕ! При обновлении может все слететь.
UPD В файле /wa-system/vendors/smarty3/sysplugins/smarty_security.php
заменить
public $php_handling = Smarty::PHP_PASSTHRU;
на
public $php_handling = Smarty::PHP_ALLOW;
Главное потом доверять всем тем, кому вы будете давать доступ в редактор дизайна, т. к. выполнение любого PHP-кода в шаблонах темы дизайна обозначает также возможность внедрения любого вредоносного кода или порчу данных путём обращения к базе данных средствами такого кода. В общем, небезопасное это дело. И не говорите потом, что вас не предупреждали ;)
Полностью с вами согласен, все на свой страх и риск :)