Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как сделать в категории вывод новостей, прикрепленных к ней?

Как сделать в категории вывод новостей, прикрепленных к ней?


     09.02.2017    Общие вопросы, Шаблоны (TPL)    411

вопрос
Суть проблемы такова:

На сайте стоит шаблон (тема) IMAX Cinema (киносайт) и него странным образом заложили логику вывода новостей в категориях.

Предположим, у нас есть две категории - "1 сезон" и "2 сезон", мы создаем новость "1 сезон 1 серия" и, ессна, прикрепляем ее к категории "1 сезон".

Во всех предыдущих шаблонах эта логика была логичной логикой, но в этом шаблоне, переходя в категорию "1 сезон", "2 сезон" или любую другую, мы видим список ВСЕХ новостей (точнее, 10 последних), независимо от того, в какой категории они опубликованы.

Собственно, вопрос:
Как прикрепить вывод новостей из определенной категории именно на страницу этой категории?

Не знаю, можно ли здесь публиковать ссылки, но если кому-то будет нужна, скину.

заранее сенкью

Ответа пока нет


2 комментария

progamer3676
Юзер

progamer3676 - 9 февраля 2017 21:57 -

Нагуглилась вот такая вещь

Создаем отдельные файлы main.tpl для каждой категории.

Для этого, просто копируем файл main.tpl с новым именем. А вот имя должно быть ОБЯЗАТЕЛЬНО следующего вида:

main_kategorija.tpl

Вместо слова kategorija подставляем имя нашей категории.

Правим этот новый файл, вставляем нужные пункты меню, меняем картинку в шапке и так далее.

После этого находим файл 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.tpl.




Но только вот в index.php требуемой строки не нашлось

progamer3676
Юзер

progamer3676 - 9 февраля 2017 22:11 -

Решение найдено

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх