Page 1 of 1

Тумбы ротации внутри <category>

Posted: Tue Oct 03, 2017 2:56 pm
by richmantrade
Вроде было такое, или мне приснилось :roll:
Задача:
Нужно вывести несколько (штук 10) тумб ротации для каждой категории. Если говорить совсем до конца - хочу сделать роллинг тумб при onmouseover на тумбу категории.
Что то типа такого (условно)

Code: Select all

<category num=1-10>
  <thumb num=1-10 group_name="<!--CATEGORY_NAME-->">
    <!--THUMB_URL-->
  </thumb>
</category>
можно намутить ?

Re: Тумбы ротации внутри <category>

Posted: Tue Oct 03, 2017 5:25 pm
by admin
Таг в таге не работает
Но можно сделать на JS

Условно

var category_thumbs[group_id] = '<thumb group_id=....> ... '


а потом в <category ....>

добавлять на js из category_thumbs[group_id]

Re: Тумбы ротации внутри <category>

Posted: Wed Oct 04, 2017 7:22 am
by richmantrade
Да, это понятно, но блин ...
А если категорий много? В конкретном случае около 200, но может же быть и 1000. Как то не шипко классно писать 1000 строк var category_thumbs[group_id] = '<thumb group_id=....> ... '.
Как то все же нужно этот массив в цикле создать.

И еще. Скажите пожалуйста, просто для понимания, почему вы советуете делать подобное на js а не пхп ? Просто так или в этом есть какой то смысл о котором я не догадываюсь ?

Re: Тумбы ротации внутри <category>

Posted: Wed Oct 04, 2017 7:34 am
by admin
Можно и на пхп.
Теоретически если на JS то какая-то часть ложится на браузер юзера
пхп - полностью на сервак
На практике это все мелочи которые едва ли можно увидеть на нагрузке.

Цикл: что бы сделать таг в таге - это серьезно переделать надо и босю ради небольшой фичи внести проблемы в темплейты, такое можно сделать в сл версии, но это не быстро ..

Мне в целом не особенно нравится эта выборка если честно:
фактически если у нас 1000 категорий то на индекс нам надо сделать 1000 выборок по 10 тумб и делать это на лету будет тяжело , это фактически как юзер одновременно зашел во все 1000 категорий. Такое надо делать по крону и кешировать.

Те если такое делать то наверно я бы предпочел это делать в пределах pages которые генеряться по крону.

Re: Тумбы ротации внутри <category>

Posted: Wed Oct 04, 2017 9:09 am
by richmantrade
Да, конечно нет никакого смысла формировать массив на лету. Целиком и полностью поддерживаю идею формирования массива по крону с кешированием.
Буду очень рад и признателен, когда такой функционал появится.

Пока же по вашему совету буду формировать массив отдельным скриптиком из базы, по крону раз в сутки.
Для этого хотел бы спросить:
1. Сначала мне нужно получить список group_id у которых минимум 10 галерей.
2. Получить 10 штук thumb_id для каждой group_id

Code: Select all

SELECT `thumb_id` FROM `rot_gallery_stats1` WHERE `group_id` = 1 ORDER BY `total_ctr` DESC
3. Получить thumb_url согласно thumb_id

Code: Select all

SELECT `thumb_url` FROM `rot_thumbs` WHERE `thumb_id` = 1
Проблема именно в п.1. Не пойму как это сделать :cry:

Re: Тумбы ротации внутри <category>

Posted: Wed Oct 04, 2017 9:17 am
by admin
select group_id, count(*) as total from rot_gallery_stats1 where group_id != 0 group by group_id
having total > 10