Сниппет - это то же самое, что и чанки, но с одним отличием - сниппет несет в себе не HTML код, а PHP.
Для того, что бы развеять вопросы, я приведу пример.
Допустим, Вы хотите выводить на странице приветствия. Для разных групп пользователей, разные приветствия. Для нас не секрет, что в DrunyaCMS группу пользователя можно узнать из сессии ($_SESSION['user']['status']). Например, обычный пользователь,
имеет в этом ключе значение 0, а модератор - 1.
Распологая этими знаниями, мы можем написать простой PHP код, который будет выводить различные приветствия, для различных групп.
Допустиим мы хотим выводить приветствие на странице index.html
После этого, вместо {[HELLO]}, будет выводиться результат работы нашего PHP кода.
Вот и все, попробуйте сами написать сниппет и расскажите, что у Вас вышло
Вопрос: на юкозе можно узнать, зашел чел на сайт или нет! Хотю также! Ответ: на фапосе можно то же самое и даже больше! Для этого используйте сниппет содержания:
Code:
if(isset($_SESSION['user']['name'])) {
echo "Вы авторизованы!";
} else {
echo "Войдите на сайт!";
}
Вместо echo "" - можете вставить любой код.
Вопрос: Как вложить сниппет в сниппет? То есть чтобы в сниппете можно было вставить другой сниппет?! Ответ: По умолчанию в сниппетах не нужно открывать и закрывать <?php> тег. Из-за этого все трудности. Прежде чем использовать второй снипет, нужно закрыть предыдущий тегом ?>
Пример:
Code:
if(isset($_SESSION['user']['name'])) {
?>
{[menu]}
<?
} else {
echo "Войдите на сайт!";
}
В данном случае, мы вставили сниппет {[menu]} в другой сниппет. При этом все работает и меню показывается только тем, кто вошел на сайт под своим логином.
Вопрос: Как в сниппете использовать html теги? Типа <div> <a href=...>... Ответ: Очень просто, используйте echo ''; или закрывайте теги php.
Пример #1:
Code:
if(isset($_SESSION['user']['name'])) {
echo "Вы авторизованы!";
} else {
echo '<a href="/users/login_form/">Войдите под своим именем</a>';
}
Пример #2:
Code:
if(isset($_SESSION['user']['name'])) {
echo "Вы авторизованы!";
} else {
?>
<a href="/users/login_form/">Войдите под своим именем</a>
<?
}