Проверено

VDS-хостинг - именно на этом хостинге работает наш сайт.
Sape - биржа временных ссылок, доход 80р/день.
Trustlink - биржа временных ссылок, доход 60р/день.
Telderi - здесь покупаю сайты для дальнейшего заработка.

Партнеры

Правильный вывод новостей на 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. Здесь описана наиболее простая реализация именно вывода, а расширенная реализация уберёт неиспользуемые поля в запросах после данной оптимизации и настройки можно расширить выбором шаблона как это реализовано в категориях.

Другие новости по теме: