как вывести определенный текст в категориях DLE

V0
На сайте с 22.10.2009
Offline
65
859

На данный момент знаю такое решение:

[aviable=main]        

Текст на главной
[/aviable]

[category=3]
Текст в категории 3
[/category]

[category=4]
Текст в категории 4
[/category]

Но текст дублируется на страницах /page/2/

В WP это делается так:

if ((is_category('4')) and (!is_paged())) { 

echo 'тектс';}

А как это сделать в DLE?

AlexejE
На сайте с 05.07.2010
Offline
38
#1

Если Вам нужно только на первой странице, то можно для каждой категории создать свой шаблон, вот так:

в 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_категория и прописать необходимое в

[aviable=main]нужный текст, картинки и т.д. [/aviable]

и виден будет только при заходе в эту категорию.

P.S. Если файл main_cat.tpl с категорией не будет создан будет использоваться по умолчанию main.tpl

Не работает.... Проверили... Что то я забыл. Найду отпишусь...

dlepro_com
На сайте с 16.12.2009
Offline
39
#2
vegas007:
На данный момент знаю такое решение:
[aviable=main]        
....
[category=3]
...


Но текст дублируется на страницах /page/2/
..
А как это сделать в DLE?

для решения с дублями на страницах навигации используйте совместно с тегами aviable и category ещё и Постраничный фильтр by Sander: _dlepro.com/432-hak-postranichnyy-filtr-by-sander.html

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий