• Автор:

    Flesha
  • Добавлено:

    июл 10, 2011
  • Комментариев:

    0
  • Просмотров:

    2767

Настройка сортировки для тега {custom}

Настройка сортировки для тега {custom}

Пожалуй, начнем устанавливать.
Нужно открыть файл /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 );}



Пол дела сделано :)

Осталось описать их в функции custom_print();

Для этого открываем файл engine/modules/functions.php

Найти :


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'];



Теперь тег custom выглядит следующим образом:

{custom category="2,7" template="custom" aviable="global" from="0" limit="10" order="rating" by="DESC" cache="yes"}


Теперь небольшой мануал по возможным параметрам сортировки.
Вышеописанный тег выводит новости сортируя их по рейтингу по убыванию (Сверху новости с самым высоким рейтингом)
Теперь вспомним какие поля имеются у DLE в таблицу dle_post:

title – Если написать в качестве параметра title, то сортировка будет производится по алфавиту. Рекомендую в этом случае в качестве параметра by использовать всётаки ASC, ибо вывод начнётся со статей на букву А.

rating – Рейтинг статьи
date – Дата публикации
comm_num – Количество комментариев
news_read – Количество просмотров
Думаю этого хватит

Теперь о параметре by

Тут есть два возможных варианта:

1.ASC – Сортирует по возрастанию (1,2,3,4,5)
2.DESC – Сортирует по убыванию (5,4,3,2,1)

Собственно на этом всё. Хочу напомнить. Если параметры order="0" и by="0" оставить с нулями, то будут учиться параметры сортировки в категории, для которой установлен тег (Вроди бы срабатывает, если категория одна). Иначе выводит в связи с конфигурацией движка. Тоесть по дате и по убыванию (Настраивается в конфиге движка :)
Вернуться
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.