Главная » Статьи » Документация » Дизайн и шаблоны » Сниппеты
Категории

Сниппеты

Сниппеты - это то же самое, что и Чанки, только в сниппетах можно и нужно использовать PHP код. Создав сниппет и вызвав его на странице, будет выведен не текст сниппета а результат его выполнения, как PHP кода. Например если вы создадите сниппет содержащий такой код "echo 'Hello World';" то на месте его вызова отобразится лишь "Hello World";

При помощи сниппетов можно создавать как небольшие расширения базовых возможностей, такие как вывод последних сообщений форума или комментариев, так и довольно крупные приложения вроде рейтингов и голосований. И это все далеко не предел. В сниппетах Fapos CMS вас, пожалуй, ограничивает только ваша фантазия. 


Стоит заметить, что сниппеты надо называть только латинскими буквами и цифрами. Без других символов вроде знаков препинания и кирилицы(если вы вызываете сниппет без параметров. Как передавать параметры в сниппет будет показано ниже.).

В отличии от Чанков, сниппеты вызываются в таком же регистре символов, как и назывались при создании. То есть, если вы назвали сниппет TeSt, то вызывать его надо так {[TeSt]}.

При вызове сниппетов таким образом {[TeSt]} происходит кэширование на один час. Это сделано с целью уменьшения нагрузки, ведь на одной странице может быть множество сниппетов. Для вызова сниппета в не кэшируемой ворме надо использовать такой вариант - {[!TeSt]}.

В сниппетах нельзя использовать <?php в начале и ?> в конце.



Пример

Допустим у нас есть сниппет с именем test.

Его содержимое
// begin
?>
<ul>
<li>1 point</li>
<li>2 point</li>
<li>3 point</li>
</ul>
<?php
// end

И так же, у нас есть шаблон
<html>
<head>
<title>Test snipet</title>
</head>
<body>
{[test]}
</body>
</html>

Как видите, мы сразу вызвали в шаблоне наш сниппет командой {[test]}. Если такую страничку на Fapos CMS открыть в браузере то она примет следующий вид
<html>
<head>
<title>Test snipet</title>
</head>
<body>
<ul>
<li>1 point</li>
<li>2 point</li>
<li>3 point</li>
</ul>
</body>
</html>

В шаблоне произошла подмена кода вызова сниппета на его содержимое. Но это была вставка статического содержимого, мы как бы вставили обычный HTML код. От сюда и странные "// begin" и "// end". Для вызова динамического содержимого(PHP), сниппет должен содержать только сам код. Не должно даже быть начального и конечного тегов PHP.

Пример
function light() {   $a = 3;   return $a;}

Передача параметров в сниппеты

Эта возможность доступна начиная с версии 2.4 RC4.

Параметры добавляются к имени сниппета, по аналогии GET параметров в URL.

Пример:
{[!snippet_name?param1=value1&m2=value2]}

После этого в сниппете доступны PHP переменные $param1 и $param2

Все очень просто.
Сниппеты Просмотров: 3375 Комментариев: 0