Правильный вывод новостей на DLE 9.3

Без рубрики
Правильный вывод новостей на DLE 9.3

Правильный вывод новостей на DLE 9.3

Начнём с дублирования контента на страницах тегов и архивов и сразу напомню, что мы создаём СДЛ(сайт для людей).
По нашему мнению данные страницы очень важны и удобны пользователю для сортировки и поиска публикаций по их тегам или дате опубликования, но в тоже время понятно, что контент на них дублирует контент главных страниц(пагинации) сайта, категорий и др.
А происходит это потому, что функционально для вывода всех перечисленных страниц используются одни и те же модуль(show.short.php) и шаблон(shortstory.tpl). Мы предлагаем изменить это и сделать на страницах архива и тегов вывод похожий на вывод реализуемый в картах сайтов, т.е. мы выведем только заголовки публикаций.

Для этого нам нужно создать файл шаблона и отредактировать несколько файлов:

1. Создаём файл шаблона tags.tpl с именем tags в Панели управления, используя стандартный редактор шаблонов, а за основу берём файл вашего шаблона shortstory.tpl только удаляем из него лишнее оставив заголовок с ссылкой на полную новость, например так:

[full-link]{title}[/full-link]

2. В engine/data/config.php (для настроек количества выводимых заголовков новостей на страницу)

ищем(у вас вместо значения 10 может быть другое число):
‘news_number’ => «10»,

и ниже добавляем(20 — это будет число выводимых на страницах тегов и архива заголовков новостей)
‘news_number_short’ => «20»,

3. engine/engine.php в четырёх местах меняем:

$config[‘news_number’];

на:

$config[‘news_number_short’];

во всех четырёх местах данная переменная в конце строки, а строки расположены:

— первое редактируемое место:

ищем комментарий кода:
// ################ Вывод профиля пользователя #################

и ВЫШЕ примерно на 4-ре строки есть строка начинающаяся с:
$sql_select = «SELECT id…..

в конце этой строки и есть необходимая нам переменная которую мы заменяем.

— второе редактируемое место:

ищем комментарий кода:
// ################ Новости за месяц #################

и ВЫШЕ примерно на 3-е строки есть такая же как и раньше строка начинающаяся с:
$sql_select = «SELECT id…..

в конце этой строки необходимая нам переменная которую мы заменяем.

— третье редактируемое место:

ищем комментарий кода:
// ################ Новости за день #################

и ВЫШЕ примерно на 3-е строки есть такая же как и раньше строка начинающаяся с:
$sql_select = «SELECT id…..

в конце этой строки необходимая нам переменная которую мы заменяем.

— четвёртое редактируемое место:

ищем комментарий кода:
// ################ Новость целиком #################

и ВЫШЕ примерно на 3-е строки есть такая же как и раньше строка начинающаяся с:
$sql_select = «SELECT id…..

в конце этой строки необходимая нам переменная которую мы заменяем.

4. В engine/modules/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’ );

и заменяем на:
if ($do == «tags» or $year != » or $month != » or $day != ») {
$tpl->load_template( ‘tags.tpl’ );
}
elseif( 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’ );

5. В engine/inc/options.php (для управления настройками количества выводимых заголовков новостей на страницу)

найти:
showRow( $lang[‘opt_sys_newc’], $lang[‘opt_sys_newd’], «» );

и ниже добавить:
showRow( «Количество заголовков новостей на дублирующих страницах», «Количество выводимых заголовков новостей на страницах архива, тегов и др.», «» );

Правильный вывод новостей на DLE 9.3

С этими страницами мы разобрались. Таким же способом можно реализовать и вывод других страниц, например, новостей пользователя, но они у нас в DLE теперь закрыты в robots.txt. Здесь описана наиболее простая реализация именно вывода, а расширенная реализация уберёт неиспользуемые поля в запросах после данной оптимизации и настройки можно расширить выбором шаблона как это реализовано в категориях.