Перейти к публикации

Обновление количества ПМ у пользователей


Рекомендованные сообщения

После массовой рассылки спамерских ПМ пользователям сайта пришлось вручную в таблице dle_pm удалять строки т.к. другого иного стандартного способа управления ПМ в DLE не существует.

После удаления записей возникла необходимость пересчитать общее количество и количество непрочитанных ПМ в таблице пользователей dle_users

Предлагаю вниманию один из возможных вариантов решения данной задачи. Достаточно выполнить один запрос к базе данных:


update `dle_users` u

left join

(

select


usr.user_id,

usr.name,

CASE

	WHEN  ISNULL(pm.kvo) THEN  0

	ELSE  pm.kvo

END as pm_all

,

CASE

	WHEN  ISNULL(pm_unread.kvo) THEN  0

	ELSE  pm_unread.kvo

END as pm_unread

from

`dle_users` usr


left join ( select `user`, count(`user`) as kvo from dle_pm p where p.folder='inbox' group by p.`user`) pm on usr.`user_id` = pm.`user`

left join ( select `user`, count(`user`) as kvo from dle_pm p2 where p2.folder='inbox'and p2.pm_read='no' group by p2.`user`) pm_unread on usr.`user_id` = pm_unread.`user`

) pm_select

on pm_select.user_id = u.`user_id`


set u.`pm_all` = pm_select.pm_all,  u.`pm_unread` = pm_select.pm_unread

код приведен для стандартного префикса таблиц 'dle_'

Тестировалось на DLE 9.4, но быстрее всего будет актуально для всех версий скрипта за последние пару лет.

Ссылка на сообщение
Поделиться на других сайтах

После массовой рассылки спамерских ПМ пользователям сайта пришлось вручную в таблице dle_pm удалять строки т.к. другого иного стандартного способа управления ПМ в DLE не существует.

Мастер оптимизации -> 4. Очистка персональных сообщений пользователей

Ссылка на сообщение
Поделиться на других сайтах

Мастер оптимизации -> 4. Очистка персональных сообщений пользователей

Вы можете очистить все персональные сообщения ваших пользователей

А не сильно ли кардинально? В базе полно нормальных сообщений!

Ссылка на сообщение
Поделиться на других сайтах

В мастере оптимизации есть пересчёт статистики, если не ошибаюсь он произведёт обновление кол-ва ПМ.

Ссылка на сообщение
Поделиться на других сайтах

В мастере оптимизации есть пересчёт статистики, если не ошибаюсь он произведёт обновление кол-ва ПМ.

ошибаетесь... я предложил этот вариант разработчику скрипта включить в ДЛЕ, но получил отказ.

Я прекрасно понимаю, что это может понадобиться единицам, но всё же...

Ссылка на сообщение
Поделиться на других сайтах

запрос для извергов

зато прекрасно справляется со свое задачей :)

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...