Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как для каждой категории подгружать свой tpl файл?

Как для каждой категории подгружать свой tpl файл?


     12.05.2017    категории, tpl    Общие вопросы по PHP, Хаки    2477

вопрос
Здравствуйте

у меня на сайте каждая категория имеет разную структуру блоков и верстки.
сейчас для вывода категорий с свои tpl файлом я использую вот такую конструкцию в main.tpl
[aviable=cat]
    [category=1]{include file="categories/help.tpl"}[/category]
    [category=2]{include file="categories/adv.tpl"}[/category]
    [category=3]{include file="categories/jobs.tpl"}[/category]
[/aviable]

то есть для каждой категории у меня свой tpl файл.
рассмотрим на примере первую категорию, для нее подключается файл help.tpl а в нем я уже вывожу {content} {info} {topnews} и так далее.

Вопрос. как подключать для каждой категории свой tpl фал не используя:
 [category=1]{include file="categories/help.tpl"}[/category]


в таблице category я создал новое поле template где хранится имя tpl фала для просматриваемой категории

чего я хочу добиться:
например мы заходим по адресу site.com/help и попадаем категорию помощь, так вот здесь должен подключатся файл имя которого хранится в поле template.
а в этом фале я уже буду использовать все стандартные теги dle

прошу помощи в реализации.
Спасибо.

Ответил: alukardua


В настройках категорий есть возможность выбрать шаблон для каждой категории отдельно

4 комментария

Верстала
Юзер

Верстала - 12 мая 2017 14:22 -

я примерно вижу это так:
в main.tpl использовать конструкцию
[aviable=cat]{category-template}[/aviable]

в engine.php где то прописать

if ($cat_info[$category_id]['alt_name']) {
    $tpl->load_template( $cat_info[$category_id]['template'].'.tpl' );
} else {
    $tpl->load_template( 'default.tpl' );
}
$tpl->compile( 'category_template' );
$tpl->clear();

а в main.php
$tpl->set ( '{category-template}', $tpl->result['category_template']);


но не знаю как правильно все это настроить.

Верстала
Юзер

Верстала - 12 мая 2017 14:45 -

еще как вариант пытался сделать по другому, а именно:
в main.tpl
[aviable=cat]{include file="categories/{category-template}.tpl"}[/aviable]

а в main.php
if ($cat_info[$category_id]['alt_name']) {
    $tpl->set('{category-template}',$cat_info[$category_id]['template']);
} else {
    $tpl->set('{category-template}', 'default');
}

но тоже ничего не получилось так как в include не считывается тег {category-template}

Верстала
Юзер

Верстала - 12 мая 2017 15:39 -

Администрация удалите ответ

stopani
Юзер

stopani - 12 мая 2017 22:05 -

Чем тебе ответ не понравился? Какой вопрос такой и ответ.

ТЫ вкуриваешь, что в tpl категории не может быть {content} и т.п. тебе нужно разные main.tpl для каждой категории.

**Удалено**

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

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

наверх