Author: RMcGirr83
Modification description: Displays the number of reported posts combined with posts that need approval next to the Moderator Control Panel link on the index page of the forum
Modification version: 1.0.2.a
Download: moderator_needed.zip
Отображает количество обжалованных сообщений, а также сообщений и тем, требующих одобрения. Показывает справа от ссылки [Модераторский раздел]. Показывает, соответственно, только тем, кто имеет право это видеть.
Скрины:
Поставил себе, все работает. Но вот вчера включил DEBUG_EXTRA, посмотрел Explain. Что-то мне не очень нравятся его запросы:
Код: Выделить всё
SELECT topic_first_post_id
FROM phpbb_topics
WHERE forum_id IN ('7', '9', '3', '4', '5', '6', '1', '2', '16', '10', '11', '14', '15', '12', '13') AND topic_approved = 0
Код: Выделить всё
SELECT post_reported, post_approved
FROM phpbb_posts WHERE (forum_id IN ('7', '9', '3', '4', '5', '6', '1', '2', '16', '10', '11', '14', '15', '12', '13') or forum_id IN ('7', '9', '3', '4', '5', '6', '1', '2', '16', '10', '11', '14', '15', '12', '13')) AND (post_reported = 1 or post_approved = 0)- Время выполнения этих запросов частенько доходит до десятых долей секунды - для сравнения, остальные запросы выше единиц тысячных долей секунды не поднимаются.
- Мне кажется ээээ... не совсем технически грамотным решением каждый раз перелопачивать всю таблицу постов ради двух циферек. Это по второму запросу - explain показывает "ROWS 17733". Ладно, у меня сейчас 17к постов, а у кого 100к.
- Кэширование.
- Хранить цифирьки в БД, либо в отдельно таблице, либо в той-же phpbb_config. Цифирьки обновлять при:
- жалобе;
- создании нового сообщения;
- создании новой темы.

