Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru Модули для DLE Top Fav - Хак вывода топ новостей по закладкам

Top Fav - Хак вывода топ новостей по закладкам


     11.10.2015    Модули для DLE    1337    7

Краткая информация о модуле (хаке)

Автор: Gameer
Версия DLE: 9.x - 10.x
Контакты: http://gameer.name/contact.html
Цена: Бесплатно
С помощью этого Top Fav вы сможете вывести Топ новостей по закладкам пользователей.

Особенности :
  1. Поддержка DLE 9.x - 10.x включая все версии этих линеек
  2. Кэш
  3. Вывод в шаблоне
  4. Лимит на вывод
  5. Чистый и опрятный код


Скачать актуальную версию модуля Top Fav

Выразите свою благодарность на WebMoney за бесплатную работу, кто сколько может love
  1. R118095764291 - рубли
  2. U218134219019 - гривны
  3. Z228640084773 - доллары

Комментарии пользователей (7)

nowheremany
192

1659 | 1292

nowheremany - 11 октября 2015 13:30 - Эксперт

Картинка прикольная - к сожалению единственное, что тут стоит смотреть.
Меня больше всего интересует зачем разработчик использует классы, причем с стилистикой от PHP 5.3 и выше? Классы есть смысл использовать, если как минимум он будет использоваться несколько раз, т. к. увеличивают использование озу на размер файла с классом примерно.
Так же напрягают постоянные циклы foreach и for, которые здесь совершенно лишни.
По поводу запроса смысл использовать конструкцию REGEXP? увидел в категориях и решил заюзать? чем больше нагрузка, тем круче наверно? это было бы правильным, если бы использовался поиск массива в массиве (как в категориях), но тут достаточно IN.
Вообще смысл я не понял этого модуля? показать первые 10 новостей, которые находятся в закладках? Если бы хотел показать топ новостей, которые в закладках, то нужно было делать так:

$_top_fav =    $this->db->super_query("SELECT favorites FROM " . PREFIX . "_users WHERE favorites != '' ",true);
$top_fav= array();
foreach($top_fav as $_ids){
$_ids = explode(',',$_ids);
foerach($_ids as $_id) $top_fav[$_id]++;
}
asort($top_fav,SORT_NUMERIC);
$_top_fav = array();
foreach($top_fav as $_id = $_count){
if(count($_top_fav)>$this->limit) break;
$_top_fav[] = $_id;
}
$top_fav =  $_top_fav; // id новостей в порядке наибольшего нахождения новостей в закладках различных юзеров


И ещё одно
Если ты включил кэш таким образом - $this->dle_cfg['allow_cache'] = "yes"; то он юзаться в функции dle_cache не будет. Смотри сам почему.

И вроде как последнее - кэша то тут нет (он создаётся, но не уменьшает нагрузку).

Итого Очень очень сыро, и требует серьёзной дорабоки

Благодарность принимаю тут Связь

Gameer
224

1118 | 394

Gameer - 11 октября 2015 13:55 - Эксперт

nowheremany,
1) Забыл поменять.
2) А для чего интересно array_count_values ?
3) Забыл прописать.

Истина в противоречии.​

Gameer
224

1118 | 394

Gameer - 11 октября 2015 15:10 - Эксперт

4)
Если ты включил кэш таким образом - $this->dle_cfg['allow_cache'] = "yes";
Почему это ? Для версия DLE 10.1 и ниже работать будет или не видно что там условие ?

Истина в противоречии.​

ПафНутиЙ
1064

3393 | 2433

ПафНутиЙ - 11 октября 2015 19:57 - Админ

Gameer, nowheremany, Предлагаю вам переместиться на github. Тогда общими усилиями можно легко сделать модуль лучше.

Каков вопрос - таков и ответ. Просто помните об этом.

azazov13
8 | 4

azazov13 - 11 октября 2015 22:53 - Юзер

"по закладках"

Gameer
224

1118 | 394

Gameer - 11 октября 2015 22:58 - Эксперт

azazov13, к чему этот комментарий ?

Истина в противоречии.​

ПафНутиЙ
1064

3393 | 2433

ПафНутиЙ - 12 октября 2015 09:03 - Админ

Это было в заголовке, я уже поправил.

Каков вопрос - таков и ответ. Просто помните об этом.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте