Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Последние сообщения
Ответить
1

Сниппеты - кто такие

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#1
Сниппеты - кто такие

Сниппет - это то же самое, что и чанки, но с одним отличием - сниппет несет в себе не HTML код, а PHP.

Для того, что бы развеять вопросы, я приведу пример.

Допустим, Вы хотите выводить на странице приветствия. Для разных групп пользователей, разные приветствия. Для нас не секрет, что в DrunyaCMS группу пользователя можно узнать из сессии ($_SESSION['user']['status']). Например, обычный пользователь,
имеет в этом ключе значение 0, а модератор - 1.

Распологая этими знаниями, мы можем написать простой PHP код, который будет выводить различные приветствия, для различных групп.

Допустиим мы хотим выводить приветствие на странице
index.html
Code:
<html>
<head>
<title>My snippets test</title>
</head>
<body>
</body>
</html>

Все что нам надо это создать сниппет с любым именем, например "HELLO":
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
<?php $messages = array(
    
'Ku user',
    
'Hay moder',
    
'Hello admin',
    
'God day Great ADMIN',
);
if (!empty(
$messages[$_SESSION['user']['status']])) {
    echo 
$messages[$_SESSION['user']['status']];
}
?>
И затем добавить его на нашу страницу, следующим образом:
Code:
<html>
<head>
<title>My snippets test</title>
</head>
<body>
{[HELLO]}
</body>
</html>
После этого, вместо {[HELLO]}, будет выводиться результат работы нашего PHP кода.
Вот и все, попробуйте сами написать сниппет и расскажите, что у Вас вышло:)

Отредактировано автором 10 Июн 2010
Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

Krevedko

  • Атом-мастер
  • Юзер
  • 227
  • Репутация:3 
  • Предупреждения: 0 
  • Регистрация:
    18 Ноя 2010
#2
Сниппеты. Дополнение для "чайников" :).



Вопрос: на юкозе можно узнать, зашел чел на сайт или нет! Хотю также!
Ответ: на фапосе можно то же самое и даже больше! Для этого используйте сниппет содержания:


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>
                    <?
        }

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#3
Krevedko, спасибо, очень хорошие примеры, даже для меня кое что полезное было:)

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)
1
Сейчас online: 44. Зарегистрированных: 2. Гостей: 42.