Главная » 2011 » Май » 31 » Шаблонизатор. Условия if-else
05:46
Шаблонизатор. Условия if-else
Данных хак позволяет добавить условие {if}|{else} в шаблон.

Сама идея пришла когда покупатели Dle Shop начали спрашивать как сделать так чтобы в одном случае отображалось, а в другом нет.

Отличие данного хака есть то что мы сможем работать с переменными активных модулей и самой Dle посредством редактирования шаблона.

Установка проста.
Открываем: engineclassestemplates.class.php
Находим:
        if (strpos ( $template, "[not-group=" ) !== false) {
            $template = preg_replace ( "#\\[not-group=(.+?)\\](.*?)\\[/not-group\\]#ies", "$this->check_group('\\1', '\\2', false)", $template );
        }
Ниже вставляем:
        if (strpos ( $this->template, "{if " ) !== false) {
        $this->template = preg_replace ( "#\\{if (.+?)\\}(.*?)\\{/if\\}#ies", "$this->check_else('\\1', '\\2', false)", $this->template );
        }

Находим:
function get_real_time() {

Выше вставляем:
    function check_else($condition, $block)
    {
        global $GLOBALS;
        extract($GLOBALS, EXTR_SKIP, "");
        if(is_array($matches=explode("{else}",$block))) {
            $block=$matches[0];
            $else=$matches[1];
        }
        if(eval(("return $condition;"))) return str_replace( '"', '"', $block );
        return str_replace( '"', '"', $else );
    }

Сохранём и радуемся)))

как этим пользоваться?
Нужны хоть общие понятия в языке php

Примеры:
Допустим нам надо сделать вывод зарегистрирован ли данный пользователь на сайте, но сделать это надо не в login.tpl, а, допустим, в main.tpl ну или в выводе короткой новости.
Делается это очень просто:
{if $is_logged}
Вы пользователь!
{else}
Вы гость
{/if}

Ну или сделать сообщение о просьбе зарегистрироваться:
{if !$is_logged}
Зарегистрируйтесь на сайте!
{/if}

Далее как вам позволяет фантазия)))
Всё, спасибо за внимание)
Автор Lion__
Категория: Хаки | Просмотров: 759 | Добавил: ALL-DLE | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: