VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Приветствую, господа (и дамы, разумеется) кодеры
тут навертелась некая задачка - удалять личные сообщения юзеров по определенным критериям
ну, это собсно не проблема, написал свой интерфейс + критерии в выпадалку...
пока рылся у воблы в файлах, нашел некие непонятки
при отметке из списка Лс и удалении, вобла удаляет их только из таблиц pm и pmreceipt
собирает pmid в массив и делает запрос на удаление только из этих двух таблиц
но почему то пропускает таблицу pmtext, а именно там и хранятся собственно текстовые сообщения
и даже на локалке, при удалении через воблоинтерфейс, не удаляются данные из этой таблицы (вобла на локалке 3.8.12, пхп 7.1)
соотв. за годы использования системы ЛС, в БД накопилось много мусора
в файле private.php из дистр. 3.8.4 (здесь на саппорте), все то же самое
это чей-то "злой умысел" или так и задумано разрабами?
когда сие начало происходить, мне неведомо, т.к. заинтересовался этим глюком вот недавно совсем
Таблица pmtext очищается крон-задачей cleanup.php. Сделано это в связи с тем, что когда используется массовая отправка ЛС (более, чем одному получателю), то запись с текстом ЛС в pmtext используется всеми получателями данного ЛС и удалять её можно только тогда, когда удалено последнее ЛС из рассылки.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 7723
0
cleanup2.php
да, нашел, раньше не обращал внимания
вот только почему то есть большая разница в кол-ве pm и pmtext
реально большая разница...
кол-во в pm 2799
кол-во в pmtext 845
и это на локалке, где юзеров полторы калеки (400+) =)
OldEr
Специалист
Join Date: Jun 2007
Награды в конкурсах:
Posts: 4,731
Версия vB: 3.8.x
Пол:
Reputation:
Мастер 4229
Репутация в разделе: 727
0
Quote:
Originally Posted by kerk
кол-во в pm 2799
кол-во в pmtext 845
Копии ЛС в отправленных тоже считаются. = )
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 7723
0
Quote:
Originally Posted by OldEr
Копии ЛС в отправленных тоже считаются
ну это понятно...
и все равно, разница большая на локалке
представляю, что в реальном форуме, да с кучей активных юзеров
почему разрабы сделали удаление записей кроном, а не сразу, ведь pmid больше не доступен никак и нигде
вопрос риторический, есичё =)
OldEr
Специалист
Join Date: Jun 2007
Награды в конкурсах:
Posts: 4,731
Версия vB: 3.8.x
Пол:
Reputation:
Мастер 4229
Репутация в разделе: 727
0
Quote:
Originally Posted by kerk
почему разрабы сделали удаление записей кроном, а не сразу, ведь pmid больше не доступен никак и нигде
вопрос риторический, есичё =)
Возможно из соображений оптимизации запросов и времени выполнения скрипта удаления ЛС, особенно в случаях, когда ЛС массово удаляются через интерфейс в кабинете. Или банально забыли, а потом запихнули в крон-задачу, так как это было проще. = )
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 7723
0
Quote:
Originally Posted by OldEr
из соображений оптимизации запросов
да какая там оптимизация? =)
ID-шники собираются в кучку одним запросом из таблицы pm, где доступны так же и pmtextid
потом пачкой удаляются (не в циклах)
это три запроса, причем не самых нагружающих
в своем хаке массового удаления ЛС так и сделал собираю pmid и pmtextid в массив и затем из трех таблиц грохаю, крону меньше работы, там и так своих задач хватает...