prowebber.ru - Тут есть все для настоящих вебмастеров

Чтение RSS Мы в твиттере
«    Декабрь 2016    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 

Всё для вебмастера » Всё для DataLife Engine » DLE хаки » Настройка сортировки для тега {custom}

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


Данный материал предоставлен сайтом ProWebber.ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
У нас вы можете скачать бесплатно Настройка сортировки для тега {custom}.


Приветствую вас, товарищи веб мастера. Буквально вчера мне пришлось работать со стандартным тегом {custom}, которые украшает DLE своим наличием долгие годы

В принципе, тег довольно функциональный и даже не плохо работает. К тому же он модифицируется сторонними разработчиками. В паблике имеются хаки, которые позволяют выводить картинку в блок информера или обрезать длину заголовка. Но почему-то никто так и не сделал выбор параметра фильтрации и положения новостей. Ещё давно была статья, которая позволяла решить эту проблему. Следуя которой, нужно было написать дополнительное условие к категории, чтобы определить тип сортировки.

Я же решил обойтись без лишних изысков и всё-таки модифицировать кастом, добавив в параметры тега, параметр определяющий поле для сортировки и тип сортировки.

Пожалуй, начнем устанавливать.
Нужно открыть файл /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" оставить с нулями, то будут учиться параметры сортировки в категории, для которой установлен тег (Вроди бы срабатывает, если категория одна). Иначе выводит в связи с конфигурацией движка. Тоесть по дате и по убыванию (Настраивается в конфиге движка :)


0
Просмотры: 4425 VIP ProWebber | Комментарии (6)
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1skelani

  • 10 июля 2011 21:05
  • Регистрация: 28.09.2010
  • ICQ: --
  • Комментариев: 55
Добавь скришонтов ато не понятно сразу

0

#2mlevox

  • 10 июля 2011 21:55
  • Регистрация: 4.11.2010
  • ICQ: --
  • Комментариев: 4
А что непонятного? По стандарту тег custom выводит последние материалы из определенно категории. Этот хак позволяет выводить самые рейтинговые, комментируемые и просматриваемые.

0

#3atlas100

  • 13 июля 2011 10:48
  • Регистрация: 7.11.2009
  • ICQ: --
  • Комментариев: 15
Попробуй еще реализовать возможность сортировки за период , по просмортрам.

0

#4rashpil

  • 17 июля 2011 23:48
  • Регистрация: 25.12.2009
  • ICQ: --
  • Комментариев: 125
atlas100, Тоже не сложно. Можно же передавать через параметры сорт и бай не только параметры сортировки в SQL. Достаточно написать в них же временные интервалы в формате публикации новостей, а в коде обработки тега (Функция custom_print();) написать регулярное выражение. И если оно отдаст тру, то в запросе определить временной интервал даты новости по переданным параметрам. В прочем, стучитесь в аську 419694531, помогу если что

0

#5Molen

  • 22 июля 2011 18:18
  • Регистрация: 22.07.2011
  • ICQ: --
  • Комментариев: 53
Отличный хак, спасибо.

0

#6Albion

  • 25 июля 2011 12:54
  • Регистрация: 12.01.2011
  • ICQ: --
  • Комментариев: 14
Хорошее расширение функциональности.

0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.

Max-energy.top - Заработок на электросчетчиках;)

Skripters.info - все для вебмастера. Только эксклюзивный контент.

Создание шаблонов DLE, быстро и недорого! 3wave.com.ua

Бро лей на лучшую партнёрку

Почти бесплатный VDS хостинг!

Поддержи сайт
Скрипты, cms, шаблоны, статьи по раскрутке

Опросы

Как часто вы бываете на сайте?

Захожу 1-2 раза в день
1-2 часа в сутки
Более 2 часов
Почти целый день тут smile

Архив новостей
Ноябрь 2016 (7)
Октябрь 2016 (10)
Сентябрь 2016 (8)
Август 2016 (11)
Июль 2016 (14)
Июнь 2016 (17)

Последние комментарии:

Искать людей

Ваши переписки