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

Post Reply
richmantrade
Posts: 1036
Joined: Tue Dec 04, 2012 8:46 am

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

Post by richmantrade »

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

Code: Select all

<category num=1-10>
  <thumb num=1-10 group_name="<!--CATEGORY_NAME-->">
    <!--THUMB_URL-->
  </thumb>
</category>
можно намутить ?
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

Таг в таге не работает
Но можно сделать на JS

Условно

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


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

добавлять на js из category_thumbs[group_id]
Don't forget to run script update
richmantrade
Posts: 1036
Joined: Tue Dec 04, 2012 8:46 am

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

Post by richmantrade »

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

И еще. Скажите пожалуйста, просто для понимания, почему вы советуете делать подобное на js а не пхп ? Просто так или в этом есть какой то смысл о котором я не догадываюсь ?
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

Можно и на пхп.
Теоретически если на JS то какая-то часть ложится на браузер юзера
пхп - полностью на сервак
На практике это все мелочи которые едва ли можно увидеть на нагрузке.

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

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

Те если такое делать то наверно я бы предпочел это делать в пределах pages которые генеряться по крону.
Don't forget to run script update
richmantrade
Posts: 1036
Joined: Tue Dec 04, 2012 8:46 am

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

Post 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:
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

select group_id, count(*) as total from rot_gallery_stats1 where group_id != 0 group by group_id
having total > 10
Don't forget to run script update
Post Reply