Условие в шаблоне

  • 6 Ответов
  • 419 Просмотров

gamma

  • Сообщений: 126
  • люблю музон
    • Просмотр профиля
    • Портфолио фрилансера
Условие в шаблоне
« : 22 Февраля 2021, 17:05:09 »
В хэйдере есть такое условие <!--if:home:no--><!--if--> и <!--if:home:yes--><!--if--> очень полезная штука кстати, на главной с помощью
этого условия не выводит ссылку на саму страницу. А есть ли возможность выводить другие условия? Например <!--if:news:yes--> и так
далее?

P.S. Кстати, что то тут с полем в котором я сейчас печатаю, не переносяться строки когда текст доходит до правого края texterea - поле просто
растягивается и приходиться следить что бы вовремя нажимать enter. Причём это было и на старом ноуте с windows xp браузер FireFox
и сейчас на новом с windows10 самая последняя версия той же лисы. На других браузера правда не проверял.
Свободный фрилансер. 90% сайтов которые с успехом сдал под ключ на Даннео.

Neon

  • Сообщений: 914
    • Просмотр профиля
    • Danneo CMS
Re: Условие в шаблоне
« Ответ #1 : 23 Февраля 2021, 00:24:13 »
Можно создавать любое количество переключателей.
В названии переключателя допускаются символы (буквы-латиница, цифры, знак подчеркивания, тире, точка).
Переключатели обрабатываются PHP, и устанавливаются до подключения отдельного шаблона (это важно), для которого они предназначены.

Пример:
$tm->unmanule['news'] = (условие_совпадает) ? 'yes' : 'no';
$ins['standart'] = $tm->parsein($tm->create('mod/'.WORKMOD.'/standart'));

Для разных файлов шаблонов, переключатели могут иметь одинаковые названия, они не пересекаются.
Главное, чтобы в пределах одного файла они не дублировались.

Пример:
$tm->unmanule['news'] = (условие_совпадает) ? 'yes' : 'no';
$ins['standart'] = $tm->parsein($tm->create('mod/'.WORKMOD.'/standart'));

$tm->unmanule['news'] = (условие_совпадает) ? 'yes' : 'no';
$ins['temp'] = $tm->parsein($tm->create('mod/'.WORKMOD.'/open'));
Вместо меток 'yes' и 'no', также можно использовать любые другие названия.
Главное, чтобы они совпадали в функциональной части и выводе шаблона.

P.S.
Да шаблон оформления на форуме работает не идеально.
Когда будем обновлять форум, доработаем.
DANNEO ™

gamma

  • Сообщений: 126
  • люблю музон
    • Просмотр профиля
    • Портфолио фрилансера
Re: Условие в шаблоне
« Ответ #2 : 24 Февраля 2021, 18:23:37 »
Спасибо за ответ, а где именно это прописывать? В каком или каких файлах? Например для news.
Свободный фрилансер. 90% сайтов которые с успехом сдал под ключ на Даннео.

Neon

  • Сообщений: 914
    • Просмотр профиля
    • Danneo CMS
Re: Условие в шаблоне
« Ответ #3 : 25 Февраля 2021, 15:17:52 »
Откройте файл: mod/news/index.php
Там есть рабочие примеры.

Вам для чего нужно?
DANNEO ™

gamma

  • Сообщений: 126
  • люблю музон
    • Просмотр профиля
    • Портфолио фрилансера
Re: Условие в шаблоне
« Ответ #4 : 26 Февраля 2021, 19:53:07 »
$tm->unmanule['posts'] = ($posts) ? 'no' : 'yes';
Нашёл в 525 строке этот код. В принципе я понял, попробую поэкспериментировать.
А нужно для многих вещей, например если не использую корзину то зачем мне на странице новостей стили и скрипты каталога?
Или например нужно было на странице Контакты убрать хлебные крошки, пришлось прописывать в коде страницы
.breadcrumb {display:none;}
И ещё свежайший пример - для некоторых разделов телефоны в шапке должны быть разными. Ранее приходилось делать копию шаблона
оформления и включать для конкретного мода изменённую копию шаблона (разница лишь в двух номерах телефонов)
Свободный фрилансер. 90% сайтов которые с успехом сдал под ключ на Даннео.

Neon

  • Сообщений: 914
    • Просмотр профиля
    • Danneo CMS
Re: Условие в шаблоне
« Ответ #5 : 26 Февраля 2021, 23:05:16 »
Для управления данными в шапке, переключатели нужно устанавливать в методе header(), класса Template().
Файл: core/classes/Template.php

Для ваших примеров:

Отключить крошки для мода "Контакты".
В файле: core/classes/Template.php
$this->unmanule['contact'] = ($global['dn'] == 'contact') ? 'yes' : 'no';
В файле: template/Modern/top.tpl
<!--if:contact:no-->{breadcrumb}<!--if-->

Телефоны для разных разделов (новости, статьи):
В файле: core/classes/Template.php
$this->unmanule['phone-news'] = ($global['dn'] == 'news') ? 'yes' : 'no';
$this->unmanule['phone-article'] = ($global['dn'] == 'article') ? 'yes' : 'no';
В файле: template/Modern/top.tpl
<!--if:phone-news:yes-->Телефон: + 7 (999) 111-11-11<!--if-->
<!--if:phone-article:yes-->Телефон: + 7 (999) 555-55-55<!--if-->
DANNEO ™

gamma

  • Сообщений: 126
  • люблю музон
    • Просмотр профиля
    • Портфолио фрилансера
Re: Условие в шаблоне
« Ответ #6 : 27 Февраля 2021, 12:07:03 »
Большое спасибо!
Свободный фрилансер. 90% сайтов которые с успехом сдал под ключ на Даннео.