Собственный 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_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
Недочет - при выводе полной анонсы принадлежащей к нескольким категориям, она будет открыта в шаблоне первой категории по порядку.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
| #1 написал: fooldert (31 января 2010 18:29) | |
|---|---|
|
Группа: Гости Регистрация: -- |
Можно проще сделать...
|
| ICQ: -- | |
| #2 написал: fooldert (31 января 2010 18:39) | |
|---|---|
|
Группа: Гости Регистрация: -- |
Данный код вставляем в main.tpl снутри шапки
<table width="100%" style="border: 1px solid #fff" align="center" > <tr> <td class="content"></td> <td id="shablon" ><h2 class="mblk_title"> </h2>{custom category="5" template="shablon" aviable="main" from="0" limit="20" cache="yes"}</td> <td class="content"></td> <td></td> </tr> </table> Limit-кол-во выводимых новостей Cache-кэширование Template-шаблон для данной категории Custom category-позиционный номер категории Aviable-в данном коде обозначено чтобы показывалось лишь на главной. и в папке с шаблоном должен быть файл shablon.tpl где будет указан шаблон данной категории... |
| ICQ: -- | |
| #3 написал: qwoz (7 февраля 2010 06:50) | |
|---|---|
|
Группа: Гости Регистрация: -- |
спасибо огромное
|
| ICQ: -- | |
| #4 написал: GoGa (30 марта 2010 18:16) | |
|---|---|
|
Группа: Гости Регистрация: -- |
реально сделать иной шаблон для определенной группы юзеров? либо для определенного юзера??
|
| ICQ: -- | |
