Аналог модуля для webasyst

06.01.2014 16:27:05
Потребовалось сделать на главной странице, посреди текста, слайдер элементов, которые подгружаются из базы. В webasyst для этого можно использовать Smarty плагины. Это хорошая альтернатива использованию php кода в шаблонах дизайна

Как написать плагин

  1. Нужно придумать название для плагина, допустим mytest
  2. Создать файл в директории /kernel/includes/smarty/plugins/, с именем function.mytest.php
  3. В самом файле нужно создать функцию с именем

    function smarty_function_ mytest ($params, &$smarty)

    Внутри можно реализовать необходимый функционал.
    Для вывода информации, можно или сразу сделать echo внутри функции или вернуть необходимый результат через return

    Вот пример кода с одной тонкостью, данный плпгин не будет кэшироваться:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      function smarty_function_mytest($params, &$smarty)
      {
    
        $smarty->caching = false;
    
        ob_start();
    ?>
        <div class="top_banner">
            <img style="margin: 0 auto;" src="/images/main_page/top.jpg" alt="top" />
        </div>
    <?php
        $sRet = ob_get_clean();
        
        return $sRet;
      }

Как использовать плагин

1
{mytest}

А если нужно передать дополнительные параметры, то так:

1
{mytest param1='value1' param2='value2'}

 

Тогда в рлагин они придут в виде:

1
2
$params['param1']
$params['param2']

И еще один момент, смарти формулы нельзя вставлять через "специальная html вставка" в wisiwing редакторе. А лучше вообще вставлять только через редактор чистого html.


Категории: WebAsyst (shop-script)
Яндекс.Метрика