Используем Тег custom для вывода случайных, популярных, последних новостей
Используем Тег {custom} для вывода случайных, популярных, последних новостей
Надоело мне самому искать по всем просторам интернета и заливать, устанавливать и т.д. постоянно каждый модуль. Решил сделать такой модуль, что бы
бесплатно и сразу надежно. Ничего не нашел, долго думал и до меня дошло. Мы все знаем тег {custom}, он работает изначально в dle.
Версия Движка: 8.5 - 9.5
Поддерживают: all * (Opera, Firefox, Chrome и т.д.)
Настройка:
1 шаг
Для нормального вывода, надо открыть файл index.php
Найти в нем код:
Заменить на:
2 шаг
Теперь надо добавить новые теги и описать их функции
Для этого надо нам открыть файл functions.php (его мы можем найти в каталоге /engine/modules/)
Найти в нем код:
Заменить на:
Найти в нем :
Заменить на:
У нас получается код такого типа (который мы вставляем в main.tpl и там же настраиваем):
Где,
category - это те категории, из которых бы выводились новости. (если более одной категории, то перечисляйте их через запятую category="1,2,3,4,8,20,16" )
template - это тот шаблон, из которой выводится этот блок (например random.tpl)
aviable - раздел в котором будет выводится запрашиваемые новости, может принимать следующие значения:
from - номер новости с которой начнется вывод (например from="5", а если limit="5", то не будет выводиться вообще, а если limit="10", то будет выводиться 5 новостей, причем номер можно поставить любую и там и там)
limit - сколько новостей будет выведено (например limit="5" будет выводиться 5)
cache - принимает значения yes или no - устанавливает кешировать вывод или нет, рекомендуется кешировать для снижения нагрузки. (yes - да, no - нет)
Теперь о order="rating" by="DESC"
order - это поле, которое выдает нам то значение, которое мы указали (написали) в нем.
Перечислю из rating - лучшие новости, RAND() - случайные новости и data - новости добавленные по дате.
Что касается by="DESC"
by - это поле, которое выдает нам то значение, которое мы указали (написали) в нем.
Перечислю ASC – сортирует по возрастанию (1,2,3,4,5), DESC – сортирует по убыванию (5,4,3,2,1)
Надоело мне самому искать по всем просторам интернета и заливать, устанавливать и т.д. постоянно каждый модуль. Решил сделать такой модуль, что бы
бесплатно и сразу надежно. Ничего не нашел, долго думал и до меня дошло. Мы все знаем тег {custom}, он работает изначально в dle.
Версия Движка: 8.5 - 9.5
Поддерживают: all * (Opera, Firefox, Chrome и т.д.)
Настройка:
1 шаг
Для нормального вывода, надо открыть файл index.php
Найти в нем код:
if (stripos ( $tpl->copy_template, "{custom" ) !== false) {
$tpl->copy_template = preg_replace ( "#\\{custom category=['\"](.+?)['\"] template=['\"](.+?)['\"] aviable=['\"](.+?)['\"] from=['\"](.+?)['\"] limit=['\"](.+?)['\"] cache=['\"](.+?)['\"]\\}#ies", "custom_print('\\1', '\\2', '\\3', '\\4', '\\5', '\\6', '{$dle_module}')", $tpl->copy_template );
}
Заменить на:
if (strpos ( $tpl->copy_template, "{custom" ) !== false) {
$tpl->copy_template = preg_replace ( "#\\{custom category=['\"](.+?)['\"] template=['\"](.+?)['\"] aviable=['\"](.+?)['\"] from=['\"](.+?)['\"] limit=['\"](.+?)['\"] order=['\"](.+?)['\"] by=['\"](.+?)['\"] cache=['\"](.+?)['\"]\\}#ies", "custom_print('\\1', '\\2', '\\3', '\\4', '\\5', '\\6', '\\7', '\\8', '{$dle_module}')", $tpl->copy_template );
}
2 шаг
Теперь надо добавить новые теги и описать их функции
Для этого надо нам открыть файл functions.php (его мы можем найти в каталоге /engine/modules/)
Найти в нем код:
function custom_print($custom_category, $custom_template, $aviable, $custom_from, $custom_limit, $custom_cache, $do) {
Заменить на:
function custom_print($custom_category, $custom_template, $aviable, $custom_from, $custom_limit, $custom_order, $custom_by, $custom_cache, $do) {
Найти в нем :
if( $cat_info[$custom_category]['news_sort'] != "" ) $news_sort = $cat_info[$custom_category]['news_sort']; else $news_sort = $config['news_sort'];
if( $cat_info[$custom_category]['news_msort'] != "" ) $news_msort = $cat_info[$custom_category]['news_msort']; else $news_msort = $config['news_msort'];
Заменить на:
if($custom_order != "0")
$news_sort = $custom_order;
elseif( $cat_info[$custom_category]['news_sort'] != "" )
$news_sort = $cat_info[$custom_category]['news_sort'];
else
$news_sort = $config['news_sort'];
if($custom_by != "0")
$news_msort = $custom_by;
elseif( $cat_info[$custom_category]['news_msort'] != "" )
$news_msort = $cat_info[$custom_category]['news_msort'];
else
$news_msort = $config['news_msort'];
У нас получается код такого типа (который мы вставляем в main.tpl и там же настраиваем):
{custom category="1" template="custom" aviable="global" from="0" limit="10" order="rating" by="DESC" cache="no"}
Где,
category - это те категории, из которых бы выводились новости. (если более одной категории, то перечисляйте их через запятую category="1,2,3,4,8,20,16" )
template - это тот шаблон, из которой выводится этот блок (например random.tpl)
aviable - раздел в котором будет выводится запрашиваемые новости, может принимать следующие значения:
gobal - во всех разделах
main - на главной странице
date - при просмотре новостей за определенные даты
cat - при просмотре категории
showfull - при просмотре полной новости
search - при просмотре результатов поиска
userinfo - при просмотре профиля
register - при регистрации
stats - при просмотре статистики
pm - при просмотре персональных сообщений
feedback - при просмотре обратной связи
favorites - при просмотре закладок
newposts - при просмотре новых сообщений
addnews - при добавлении новости
lastcomments - при просмотре последних комментариев
static - при просмотре статических страниц
catalog - при просмотре каталога страниц
alltags - при просмотре облака тегов
tags - при просмотре новостей из облака тегов
main - на главной странице
date - при просмотре новостей за определенные даты
cat - при просмотре категории
showfull - при просмотре полной новости
search - при просмотре результатов поиска
userinfo - при просмотре профиля
register - при регистрации
stats - при просмотре статистики
pm - при просмотре персональных сообщений
feedback - при просмотре обратной связи
favorites - при просмотре закладок
newposts - при просмотре новых сообщений
addnews - при добавлении новости
lastcomments - при просмотре последних комментариев
static - при просмотре статических страниц
catalog - при просмотре каталога страниц
alltags - при просмотре облака тегов
tags - при просмотре новостей из облака тегов
from - номер новости с которой начнется вывод (например from="5", а если limit="5", то не будет выводиться вообще, а если limit="10", то будет выводиться 5 новостей, причем номер можно поставить любую и там и там)
limit - сколько новостей будет выведено (например limit="5" будет выводиться 5)
cache - принимает значения yes или no - устанавливает кешировать вывод или нет, рекомендуется кешировать для снижения нагрузки. (yes - да, no - нет)
Теперь о order="rating" by="DESC"
order - это поле, которое выдает нам то значение, которое мы указали (написали) в нем.
Перечислю из rating - лучшие новости, RAND() - случайные новости и data - новости добавленные по дате.
Что касается by="DESC"
by - это поле, которое выдает нам то значение, которое мы указали (написали) в нем.
Перечислю ASC – сортирует по возрастанию (1,2,3,4,5), DESC – сортирует по убыванию (5,4,3,2,1)