ExBB Community » » Обсуждение » Модификация алгоритма расчёта "популярности" темы

Страниц (1): [1]
 

1. CAB - 5 июня 2013 — 13:11 - перейти к сообщению
Впервые, по крайней мере на ExBB, модифицирован алгоритм расчёта "популярности" темы.
Теперь тема становится "горячей" не просто по достижении заданного количества сообщений, а по достижении заданного среднего количества сообщений в сутки за весь период существования темы. Соответственно, теперь тема "тухнет", если в неё долго ничего не пишут.
В файле include/lib.php находите строки
CODE:
if ($topic['posts'] >= $fm->exbb['hot_topic'] && $topic['postdate'] <= $read_time) return '<img src="'.$icon_path.'/hotnonew.gif" border="0">';
if ($topic['posts'] >= $fm->exbb['hot_topic']) return '<img src="'.$icon_path.'/hotnew.gif" border="0">';
Если строки в таком виде не находятся, то ориентируйтесь на переменную
CODE:
$fm->exbb['hot_topic']

В обоих этих строках заменяем переменную
CODE:
$topic['posts']
на код
CODE:
$topic['posts']/max(1, round((time() - $topic['date'])/86400))
На этом всё.
2. variant0 - 15 февраля 2014 — 18:34 - перейти к сообщению
При таком алгоритме расчета популярности может вообще не быть горячих тем, если не создаются новые. Для очень старых тем потребуется слишком много постов, чтобы сделать их горячими, гораздо больше, чем для вновь созданных тем. То есть фактически (по сути) тема может быть горячей , но отображаться будет значком "тухлой" темы.
Правильный алгоритм должен считать количество постов за какой-то последний период времени (например, за последнюю неделю), а не за все время существования темы.
3. variant0 - 15 февраля 2014 — 18:48 - перейти к сообщению
А вообще все популярные темы находятся вверху списка, поэтому модификации алгоритма расчета их популярности не так уж и актуальны.
4. CAB - 16 февраля 2014 — 08:42 - перейти к сообщению
variant0, этот вопрос можно долго обсуждать, ибо никто ранее не предпринимал попытки что-то изменить в этом вопросе. Одно могу сказать однозначно, у меня с самого начала моего пользования форумами возник вопрос о том какой смысл подсвечивать темы по популярности только по количеству постов в ней. Если теме 15 лет и раз в год там кто-то пишет по сообщению, то она стала популярна от этого?
variant0 пишет:
Правильный алгоритм должен считать количество постов за какой-то последний период времени (например, за последнюю неделю), а не за все время существования темы.
Я думал над данным вариантом, но отклонил его. Получается чуть получше чем в приведённом мной примере. Если теме 15 лет и за это время в ней никто ничего не писал, а в последнюю неделю написали 15 сообщений, разве она популярная от этого?
variant0 пишет:
А вообще все популярные темы находятся вверху списка, поэтому модификации алгоритма расчета их популярности не так уж и актуальны.
Не соглашусь. Список составлен по последнему ответу. Может у Вас на форуме и так, как Вы пишите, но у других могут быть и варианты, когда популярная тема будет не в самом верху как минимум.
5. variant0 - 16 февраля 2014 — 13:10 - перейти к сообщению
CAB, а модуль сделать не хотите, в котором администратор мог бы гибко настраивать алгоритм расчета популярности темы? Если не настраивать, то хотя бы выбирать один из нескольких возможных вариантов расчета: общее число постов, среднее число постов за все время или число постов за последний период.
Наверное, тут даже можно и без модуля обойтись, а добавить нужные пункты в соответствующий раздел админки.
6. CAB - 16 февраля 2014 — 18:38 - перейти к сообщению
variant0, я не программер. Сделал для себя, поделился с другими.

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0323]     [ ]