Сниппеты AtomX
Сниппеты - это то же самое, что и Чанки, только в сниппетах можно и нужно использовать 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.
Пример
1
2
3
4
| function light() {
$a = 3;
return $a;
} |
Передача параметров в сниппеты
Эта возможность доступна начиная с версии 2.4 RC4.
Параметры добавляются к имени сниппета, по аналогии
GET параметров в
URL.
Пример:
{[!snippet_name?param1=value1¶m2=value2]}
После этого в сниппете доступны PHP переменные
$param1 и
$param2.
Все очень просто.