2 ответа

    • +1
      Viktor Viktor Viktor Viktor 20 марта 2015 11:32 #

      Михаил, а если нет по умолчанию wa-apps/shop/lib/classes/shopCustom.class.php его можно создать? Имя строго такое?

      Если мне нужно вывести инфу на главной странице может мне стоит создать файл в wa-apps/site/lib/classes/shopCustom.class.php ?

      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 8 апреля 2015 03:22 #

        Правила именования класса хелпера:

        1. В начале должен быть идентификатор приложения, для которого вы создаёте класс. Для Shop-Script это shop, для Сайта — site.
        2. Далее должно использоваться любое слово, которое, на ваш взгляд, никогда не будет использоваться разработчикам Shop-Script. Например, можно использовать своё имя: shopVasya — класса с таким именем точно не будет в Shop-Script, а значит, при установке очередного обновления он не будет перезаписан.

        Если вы создаёте хелпер для приложения Сайт, то и размещать его нужно в директории этого приложения. Можно, конечно, и в дршугом приложении размещать, но это получится бардак, и однажды вы просто не найдёте этот файл, чтобы подредактировать, т. к. будет непонятно, где его искать.

  • 1

    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 ... ?>

    ВНИМАНИЕ! При обновлении может все слететь.

    • +1

      UPD В файле /wa-system/vendors/smarty3/sysplugins/smarty_security.php

      заменить
      public $php_handling = Smarty::PHP_PASSTHRU;
      на
      public $php_handling = Smarty::PHP_ALLOW;

      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 8 апреля 2015 03:24 #

        Главное потом доверять всем тем, кому вы будете давать доступ в редактор дизайна, т. к. выполнение любого PHP-кода в шаблонах темы дизайна обозначает также возможность внедрения любого вредоносного кода или порчу данных путём обращения к базе данных средствами такого кода. В общем, небезопасное это дело. И не говорите потом, что вас не предупреждали ;)

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите