Ошибка после удаления коллективного блога

Недавно один пользователь жаловался что не может добавить посты. Скинул скрин, посмотрел, у него была такая ошибка:

Catchable fatal error: Argument 2 passed to ModuleACL::CanAddTopic() must be an instance of ModuleBlog_EntityBlog, null given in /var/www/***/classes/modules/acl/ACL.class.php on line 65

Посмотрел строку 65 файла ACL.class.php, понял что у него нету разрешения для поста. Здесь у вас тоже искал решения, но конкретно ничего не было. Потом сам нашел и решил поделится. Может разработчики сделают дополнение и закроют баг?

В общем если юзер добавился к одному коллективному блогу и потом админ этого блога удалил этот блог, то в базе все равно этот юзер как бы состоит в том блоге. и система не понимает это когда он хочет добавить пост, поэтому дает такую ошибку. я пока через myadmin захожу в базу и нахожу в таблице _blog_user все блоги данного юзера (естественно сначала сортировав через user_id) потом через админку moysite/admin/blogs/list/open/ проверяю ID коллективных блогов. таким образом нахожу не нужный (удаленный блог) блог и удаляю с таблицы юзера.

Надеюсь понятно объяснил :) Удачи!

16 комментариев

avatar
А топик актуален. Есть такой баг, у меня вылезло такое.
ТОлько не разобрался до конца =( Нашёл «мёртвый блог» который надо удалить.
"… и удаляю с таблицы юзера" а как эта таблица называется?
в таблице _user ничего связанного с блогами нету. =(
avatar
Только что пользователь сообщил об этой ошибке. Спасибо автору топика
avatar
версия какая? не знаю как на 0.5.1, но раньше часто копался в базе.
avatar
0.4.2
avatar
разобрался с проблемой?

извини, если не понятно написал решение. я не русский :)
avatar
Все отлично написал(я даже до конца пост не дочитал, уже все понял). Разобрался за 5 минут. Благодарен, аж в профиле плюс поставил.

З.ы. только там еще кеш нужно скинуть.
avatar
и решил поделится.
тся/ться

P.S> Спасибо за информацию. Будем учитывать.
avatar
и на 0.5.1 такая же ошибка. вчера удалил коллективный блог, а потом пользователи жаловались что не могут писать новый пост. пришлось опять через базу удалить данные.
avatar
обнаружил сегодня эту ошибку на своем сайте. спасибо за топик:)
  • F-5
  • 0
avatar
в таблице _blog_user у пользователя xxx нет несуществующих блоков, а ошибка всё равно вылазит… Что делать???
avatar
Для меня тоже актуально
avatar
РЕШЕНИЕ:
Делаем бэкап базы.
Делаем такой запрос
select * from prefix_blog_user where blog_id not in (select blog_id from prefix_blog)
Это показывает какие юзеры ссылаются на несуществующие блоги.
Удаляем эти строки и чистим кэш.
avatar
Хм… Это постоянно запрос делать как только кто-то блог удалит… Может можно исправить это в движке?
avatar
не можно, а нужно
avatar
Странно что такой баг еще не исправили.
Может кто-то поделится решением?
avatar
ОГРОМНОЕ СПАСИБО!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.