Главная > 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. Вернуться назад |