Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Шаблоны (TPL) » Как работает вывод блоков DLE?

Как работает вывод блоков DLE?


     24.07.2016    Шаблоны (TPL), Ламерские вопросы    2614

вопрос
Здравствуйте. Уже давно делаю модули для DLE да и вообще работаю с движком.
Но. Я вообще не могу понять, как устроена функция шаблонизатора set_block.
В чем ее смысл и как ее использовать.

Вот пример. Мне нужно отобразить какую-либо информацию для определенного пользователя, у которого есть нужная кука.
Как? В голову идет лишь добавление этих данных в бд/переменную через админку и вывод обычным тегом.
Но, опять же, я видел модуль мультиязычности (честно говоря вообще забыл кто его автор). Он использует эти самые блоки для языков.
ex: [lang_ru]Текст если ты выбрал русский язык[/lang_ru][lang_en]Текст если ты выбрал английский язык[/lang_en]

Ответил: Twelvee


Разобрался.
Работает все просто. Поясняю для тех, кто нашел этот пост в гугле.

Указываете, например, в main.php (engine/modules/)
if(isset(нужная кука)){
    $tpl->set("[block]", "");
    $tpl->set("[/block]", "");
    $tpl->set_block( "'\\[not-block\\](.*?)\\[/not-block\\]'si", "" );
}else{
    $tpl->set("[not-block]", "");
    $tpl->set("[/not-block]", "");
    $tpl->set_block ( "'\\[block\\](.*?)\\[/block\\]'si", "" );
}


В таком случае в main.tpl при блоке
[block]Текст[/block]
Текст будет отображаться ТОЛЬКО если существует эта кука.

UPD by Sander
Подправил код.

1 комментарий

ПафНутиЙ
Админ

ПафНутиЙ - 24 июля 2016 20:02 -

Да, и не забывайте учитывать эту переменную при формировании кеша.

Каков вопрос - таков и ответ. Просто помните об этом.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх