Раздер Название темы Ответов Последний
Графика для сайта Shareman 3.70 RUS/2010 0 mandelsonsouggisse
Изготовление контента Нужен контент 10 ali7875
DataLife Engine Проблема регистрации. 1 JimaX
DataLife Engine Модальное окно в DataLife Engine 3 lionprizrak
DataLife Engine Настройка robots.txt 8 Prizrak_2012
Стол заказов на cmsko.ru Мини-чат. 2 JimaX
Общение пользователей Статьи 3 nastroenie
Хостинг TneHost - Хстинг провайдер 10 ali7875
DataLife Engine Установка банеров 9 JimaX
DataLife Engine Помогите с установой. dle95 2 nastroenie
Яндекс Apdate
Апдейты Яndex тИЦ
25.09.2013Последний |
02.07.2013
23.05.2013
Апдейты Яndex выдачи
12.12.2013Последний |
11.12.2013
07.12.2013
Апдейты ЯКаталога
12.12.2013Последний |
11.12.2013
09.12.2013

Информация
Главная страница » DLE » DLE Хаки » Для каждой категории свой main.tpl
Для каждой категории свой main.tpl
» Просмотров: 1209 » Дата: 4-01-2011, 21:07 » Автор: NeoMurderer
Свой main.tpl для каждой категории

Для каждой категории свой main.tpl Легко и просто.

Для того, чтобы при открытии категории обрабатывался не стандартный main.tpl а персональный, нужно немного изменить код в index.php

Вместо:
$tpl->load_template ( 'main.tpl' );


Прописать:


$f_ = ($newsid !== 0) ? //Если вывод конкретной новости в полном формате
        'main_' . $cat_info[$category_id]['alt_name'] . '.tpl' :  //То берем ее шаблон
        (($do == 'cat') ? 'main_' . $category . '.tpl' : 'main.tpl' ); //Если вывод категории, то берем ее шаблон, иначе - основной
        if (file_exists(TEMPLATE_DIR . '/'. $f_)) { //Есть файл шаблона для конкретной категории
                $catTemplate = $f_;
        }else{//Нет файла шаблона для конкретной категории, припишем родительский шаблон (если у нас ПОДкатегория)
                $parentid_ = $cat_info[$category_id]['parentid'];
                $alt_name_cat_ = $cat_info[$parentid_]['alt_name'];
                while (isset($alt_name_cat_)) //Есть имя, т.е. не вамый верх!
                {
                        if (isset ($alt_name_cat_)&file_exists(TEMPLATE_DIR . '/'. 'main_' . $alt_name_cat_ . '.tpl')) {
                                $catTemplate =  'main_' . $alt_name_cat_ . '.tpl';
                                break;
                        }else{
                                $parentid_ = $cat_info[$parentid_]['parentid'];
                                $alt_name_cat_ = $cat_info[$parentid_]['alt_name'];
                        }
                }
        }
        $catTemplate = isset ($catTemplate)&&(file_exists(TEMPLATE_DIR . '/'. $catTemplate)) ? $catTemplate : 'main.tpl'; //Проверим присутствие файла шаблона
        $tpl->load_template ( $catTemplate );


Персональный шаблон для категории должен находиться в папке шаблона и иметь имя: main_cat.tpl, где cat - url категории.

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

Недостаток - при выводе полной новости принадлежащей к нескольким категориям, она будет открыта в шаблоне первой категории по порядку.



Комментарии: 0 Теги: каждой, категории, свой, mai
 (голосов: 1)
Уважаемый посетитель, Вы зашли к нам на сайт как незарегистрированный пользователь. Мы рекомендуем Вам бесплатно зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.