Аналог модуля для webasyst
06.01.2014
Потребовалось сделать на главной странице, посреди текста, слайдер элементов, которые подгружаются из базы. В webasyst для этого можно использовать Smarty плагины.
br>
Это хорошая альтернатива использованию php кода в шаблонах дизайна
Как написать плагин
- Нужно придумать название для плагина, допустим mytest
- Создать файл в директории /kernel/includes/smarty/plugins/, с именем function.mytest.php
- В самом файле нужно создать функцию с именем
function smarty_function_ mytest ($params, &$smarty)
Внутри можно реализовать необходимый функционал.
Для вывода информации, можно или сразу сделать echo внутри функции или вернуть необходимый результат через returnВот пример кода с одной тонкостью, данный плпгин не будет кэшироваться:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15function 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 |
$params['param1'] $params['param2'] |
И еще один момент, смарти формулы нельзя вставлять через "специальная html вставка" в wisiwing редакторе. А лучше вообще вставлять только через редактор чистого html.