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

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


     06.04.2017    Общие вопросы по PHP, Хаки    2296

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

в таблице category создал новое поле template, это копия поля short_tpl
в поле template я хочу записывать имя tpl фала для каждой категории.

как подключить для каждой категории свой tpl с тем именем которое хранится в поле template?
то-есть... если мы заходим в какую то категорию чтоб сразу движок просил некий файл tpl а в нем уже мы будет вставлять такие теги как {content} {info} и так далее.

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

Ответа пока нет


10 комментариев

nowheremany
Эксперт

nowheremany - 6 апреля 2017 12:19 -

Т, е. вам влом поставить catface?
То что вы хотите сделать делается просто в main.tpl через тэги

Благодарность принимаю тут Связь

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

Верстала - 6 апреля 2017 12:26 -

nowheremany,зачем мне этот модуль?

nowheremany
Эксперт

nowheremany - 7 апреля 2017 11:17 -

С модулем ошибся.
Как я понял вы хотите сделать несколько main.tpl для отдельной категории. Хотя опять же правильно составляйте вопрос - нифига не понятно что вы хотите. Ну вставите тэги {content} - и как они должны отражаться и самое то главное где

Делайте через тэги, либо в main.php чтото типа

if($category_id==1)
$tpl->load_template ( 'main_category_1.tpl' );
else
$tpl->load_template ( 'main.tpl' );

либо если есть поле в категориях
if(isset($cat_info[$category_id])){
$tpl->load_template ( $cat_info[$category_id]['templat']);} else
$tpl->load_template ( 'main.tpl' );

Благодарность принимаю тут Связь

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

Верстала - 7 апреля 2017 11:28 -

nowheremany, мне не нужно несколько main.tpl
мне нужно чтоб, как только я перехожу в какую либо категорию движок требовал tpl с именем которое хранится в таблице category в поле template
вот например если мы заходим в профиль пользователя и нет файла userinfo.tpl движок сразу сообщит об этом (Template not found: /templates/frontend/userinfo.tpl)

точно так же хочу сделать для категорий, чтоб шаблонизировать каждую категорию, так как в каждой категории у меня разная структура верстка и дизайн.
конечно это можно сделать конструкцией
[aviable=cat]
[category=1]{include file="sections/help.tpl"}[/category]
[/aviable]

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

ravchik
Юзер

ravchik - 7 апреля 2017 13:18 -

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

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

Верстала - 7 апреля 2017 13:41 -

ravchik,
при чем здесь новости? не нужно вставлять свои 5 копеек

stopani
Юзер

stopani - 7 апреля 2017 20:18 -

Цитата: Верстала
при чем здесь новости?

А категории это не новости по вашему? Категория так-то это список новостей этой категории. В {content} вывести {content} {info} и так далее не получится.

P.S.
Что сейчас будееет?
ravchikу на пустом месте нахамил. Надо ЛС закрывать а то сейчас маты посыплются.

ravchik
Юзер

ravchik - 7 апреля 2017 20:24 -

Зачем ругаться? Каков вопрос, таков ответ...

stopani
Юзер

stopani - 7 апреля 2017 20:27 -

Просто был печальный опыт с автором, я теперь в каждом вопросе ему помогаю ответ найти.

nowheremany
Эксперт

nowheremany - 10 апреля 2017 09:47 -

Все же автор - пишите более развернуто что вам нужно.

Если вы хотите заменить эту конструкцию

[aviable=cat]
[category=1]{include file="sections/help.tpl"}[/category]
[/aviable]


сделайте чрез тот же include

[aviable=cat]
{include file="/engine/tpl/category_template.php"}
[/aviable]


внутри /engine/tpl/category_template.php вставьте (template - это поле с шаблоном)

<?php

$tpl->load_template( $cat_info[$category_id]['template'] );
$tpl->compilte('content');

echo $tpl->result['content'];


Только опять же мне не понятно
а в нем уже мы будет вставлять такие теги как {content} {info} и так далее.

Что это значит

Благодарность принимаю тут Связь

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

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

наверх