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

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


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

После массовой рассылки спамерских ПМ пользователям сайта пришлось вручную в таблице 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. Очистка персональных сообщений пользователей

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

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

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

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

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

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

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

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

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

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

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

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...