Сделать виджет популярные теги за сутки

 
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проектаКубок зрительских симпатий
Сообщений: 3094
Приветствую всех!
В 2.3 есть виджет популярные теги, он выводит теги, которые были чаще всего введены за все время существование сайта, как сделать его клоны с параметрами "популярные теги за 24 часа" "за месяц" и т.п.?
Порылся в этом каталоге:
\system\controllers\tags\widgets\cloud

в файле widget.php есть такие строчки:
Код PHP:
  1.  
  2. $style = $this->getOption('style', 'cloud');
  3. $max_fs = $this->getOption('max_fs');
  4. $min_fs = $this->getOption('min_fs');
  5. $limit = $this->getOption('limit');
  6.  
И я так понял что нужно дописать параметр про дату в options.form.php
И что нудно для клона виджета?

И все..больше пока ничего не понял..(
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3588
Jestik:
И я так понял что нужно дописать параметр про дату в options.form.php
Да.
А также прописать про дату в \system\controllers\tags\widgets\cloud\widget.php
Также прописать про дату в БД в таблице cms_tags_bind
И про всё это не забыть до выхода следующего обновления движка.
Jestik:
И что нудно для клона виджета?
Скопировать все папки нужного виджета, поменять названия папок, поменять некоторые слова в скопированных файлах. Но вам при успешном решении первого вопроса достаточно будет в админке установить несколько виджетов с разными настройками.
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проектаКубок зрительских симпатий
Сообщений: 3094
Loadырь, в общем мне готовить кошелек)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3588
Jestik:
мне готовить кошелек)
Ни в коем разе. И в мыслях такого не было. Готовьте кучу времени на изучение четырёх иностранных языков: html, css, js и php. А то так и будете всю жизнь кошелёк готовить.
Посетитель
no avatar
Сообщений: 62
Так нету там поля даты в базе, есть частота использования.

Сделать виджет популярные теги за сутки


Тут логику выстраивать надо и отдельную таблицу заводить. Что-то типа статистики из первой ветки, что крайне не рекомендую. У одного сайта она распухла до 6 гиг и висит мёртвым грузом, так как открыть статистику не выходит, а владельцу глубоко всё-равно, что сервер падает при попытке открыть её. Вот такая опухоль на базе. В вашем случае то же самое пожалуй будет. Не дурите головы - вот и весь совет.
Редактировалось: 1 раз (Последний: 10 ноября 2015 в 09:59)
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
Сергей Сергеевич:
Не дурите головы - вот и весь совет.
Собственно и к вам это тоже относиться. Не говорите то, в чем не разбираетесь.
В данном случае достаточно добавить в таблицу с тегами поле дата, и обновлять ее каждый раз при новом использовании тега, то есть записывать текущее время использования. А в виджете уже выводить теги за последние сутки.

А если уж совсем не хочется использовать родную таблицу тегов, то можно сделать отдельную таблицу для виджета, отлавливать все хуки добавления материалов, выдергивать оттуда теги если есть, и обновлять таблицу виджета использования тегов. Ничего распухать естественно не будет и размер таблицы виджета будет равен размеру таблицы тегов
Редактировалось: 1 раз (Последний: 10 ноября 2015 в 10:46)
Посетитель
no avatar
Сообщений: 62
Rossoman, и флаг вам в руки. Я ведь не разбираюсь.
P.S нет, ну на самом деле такую ерунду порят иногда, что слов нет. Как условия вы будете в вашем столбце ставить? По рунам или расположению звёзд?
Редактировалось: 2 раз (Последний: 10 ноября 2015 в 10:53)
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
Сергей Сергеевич:
Rossoman, и флаг вам в руки. Я ведь не разбираюсь.
Зачем писать тогда ерунду?

Сергей Сергеевич:
P.S нет, ну на самом деле такую ерунду порят иногда, что слов нет. Как условия вы будете в вашем столбце ставить? По рунам или расположению звёзд?
Условия в столбце...
Сделать виджет популярные теги за сутки


Уважаемый, для этого достаточно в php файле вашего виджета делать выборку из базы тегов за последние сутки
Примерно как то так:
Код PHP:
  1. WHERE `date_pub` > NOW() - INTERVAL 1 DAY
Редактировалось: 2 раз (Последний: 10 ноября 2015 в 11:13)
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проектаКубок зрительских симпатий
Сообщений: 3094
Я тут еще посмотрел базу, в cms_tags есть столбец "frequency" - частота, что если сделать задние крон, на изменение каждого значение на 1, и выполнять это задание раз в сутки/месяц и пр.

Не заметил поста выше о базе) Но все же)
Редактировалось: 1 раз (Последний: 10 ноября 2015 в 17:59)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3588
Jestik:
столбец "frequency" - частота
Это частота не просмотров пользователями страниц с указанными тэгами, а общее количество записей с данным тегом. Вариант с кроном тут "не вариант"
Посетитель
no avatar
Сообщений: 62
Rossoman, вперёд, и руны в помощь. Созвездия в правильном расположении.
P.S почитайте, чего человек хочет сделать. Ваш столбец тут даже не знаю, как мягче выразится.
Редактировалось: 1 раз (Последний: 10 ноября 2015 в 20:16)
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проектаКубок зрительских симпатий
Сообщений: 3094
Loadырь:
а общее количество записей с данным тегом
frequency - частота использования тега. проверил на рабочем сайте, у одного тега была частота 31 и он был первым с списке, изменил на 0 - исчез, все материалы с ним отображаются. Выходит нужно что бы каждый день в 23-59 в столбце frequency все значения изменялись на "0"
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3588
Jestik:
изменил на 0 - исчез
facepalm
А когда вы просмотрели запись с этим тегом, его frequency увеличилось на 1 или нет?
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проектаКубок зрительских симпатий
Сообщений: 3094
Loadырь:
увеличилось на 1 или нет?
нет. Но при добавлении новой записи с данным тегом, восстановилось старое значение и к нему +1 .
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3588
Jestik, вот именно, у вас ровно 32 записи имеют этот тег, и при добавлении ещё одной записи, произойдёт новый перерасчёт. И это никак не связать с тем, что за месяц добавили 10 таких тегов и 20 других. Поэтому решение я описал выше. Добавляем столбец в БД в таблице cms_tags_bind в котором указываем дату добавления. И от этой даты уже можно "плясать" в файле \system\controllers\tags\widgets\cloud\widget.php по выборке количества тегов, добавленных за период, указанный в форме настроек виджета, из файла \system\controllers\tags\widgets\cloud\options.form.php.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.