Главная > DLE > DLE: Как сделать для разных разделов свой вывод

DLE: Как сделать для разных разделов свой вывод


31 декабря 2009. Разместил: dimon
Заметил, что за последние несколько дней было куча переходов на сайт по запросу "как сделать для каждого раздела dle свой вывод".
Сделаем статью, раз народ этим интересуется.

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

Заходим в админке в раздел Категории. Находим нашу категорию и нажимаем кнопку Правка.

Видим два нижних поля, отвечающих за файлы шаблона вывода новости. Заполняем их, например, так:

Шаблон короткой новости = shortstory_pda
Шаблон полной новости = fullstory_pda


Теперь нам в папке с шаблоном необходимо создать два файла, отвечающих за вывод новостей из раздела pda.

Можно просто скопировать shortstory.tpl в shortstory_pda.tpl и fullstory.tpl в fullstory_pda.tpl, посмотреть, что все выводится правильно, а потом изменить файлы шаблона shortstory_pda.tpl и fullstory_pda.tpl так, чтобы получить необходимый вывод новостей в данном разделе.

Я так делал на своем сайте – мне было необходимо, чтобы в одном разделе в полной новости выводились данные из дополнительного поля новости. Поэтому я просто создал дополнительный файл tpl, отвечающий за вывод полной новости в этом разделе.

Кстати, можно для каждой категории или раздела использовать совершенно другой шаблон.
Для этого в админке в разделе настройки категории есть специальное поле Установить другой шаблон для категории

Если есть вопросы – пишите, постараюсь Вам помочь.

Удачи.

upd:

Как точно подметил maksov – действительно существует косяк при выводе коротких новостей на главной страничке – там используется стандартный shortstory.tpl, а не тот который указан для категории, в которой находится выводимая короткая новость.

Для устранение данного косяка существует специальный хак.

Для его установки открываем /engine/moodules/show.short.php

В нем находим строки и просто удаляем их:

if( isset( $view_template ) and $view_template == "rss" ) {
    } elseif( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );
    else $tpl->load_template( 'shortstory.tpl' );


Ниже находим строку:

$row['category'] = intval( $row['category'] );


после нее добавляем:

$cat_idd = $row['category'];
if( isset( $view_template ) and $view_template == "rss" ) {
        }
        elseif( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );
        elseif( $cat_idd and $cat_info[$cat_idd]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$cat_idd]['short_tpl'] . '.tpl' );
        else $tpl->load_template( 'shortstory.tpl' );


Все – теперь и на главной для коротких новостей из разных категорий применяется нужные shortstory.tpl.
Проверял на 8.5.

Вернуться назад