Как удалить материал, автор которого уже удалён?

Главные вкладки

Аватар пользователя Vitalaa Vitalaa 24 июня 2011 в 0:26

Такое дело тут получилось: решил я свой сайт почистить от срама, а то больно много уж там надобавлялись и написали, пока я капчу нормально не настроил. Сделал Views'у, в которой сразу были ссылки на удаление и автора и материала и постепенно одного за другим удалял. Но в какой-то момент появилась проблема: вот есть материал с названием типа "проститутки чернигова элитные девушки ростова", он показывается во вьюсе полного списка материалов, есть запись в таблице node и, наверное, в прочих, но при этом не получается зайти в этот материал и посмотреть содержимое, не работает ссылка на удаление - в обоих случаях выдаёт "Страница не найдена". Пытался отключить показ автора - всё равно результат тот же.
Подскажите, как обойтись малой кровью, желательно через движок. Если придётся искать по таблицам, то в какие надо смотреть, чтобы вычистить оттуда всю эту дрянь, если подскажете, как создать SQL-запрос типа "Where nid=490", тоже буду весьма признателен.

Комментарии

Аватар пользователя Vitalaa Vitalaa 24 июня 2011 в 22:31

Про admin/content/node/overview забыл, но оказалось, что и смысла в этом разделе нету - эти материалы там даже не отображаются. Кэш почистил - не помогает.

"Vydrin_AP" wrote:
"Valer" wrote:

Вместо SQL-запрос "Where nid=490" можно попробовать открыть ссылку что-то типа http://example.com/node/490/edit

Я бы даже сказал http://example.com/node/490/delete[/quote]

А когда я писал "не работает ссылка на удаление" я именно эту ссылку и имел в виду. А у меня вообще даже и содержимое просто посмотреть не получается, не то что редактировать.

Аватар пользователя goodboy goodboy 24 июня 2011 в 23:14

Ноды в admin/content/node/overview выводятся с помощью функции node_admin_nodes() ( в node/node.admin.inc ) Я бы временно пропатчил эту функцию, удалил ноды, потом вернул на место. И потом для удаления подобных спамеров пользовался специальным модулем типа user_delete

Смысл патча - убрать связку с таблицей {users} в запросе
(   $result = pager_query(db_rewrite_sql('SELECT n.*, u.name FROM {node} n '. $filter['join'] .' INNER JOIN {users} u ON n.uid = u.uid '. $filter['where'] .' ORDER BY n.changed DESC'), 50, 0, NULL, $filter['args']); )

И ниже, по тексту, в выводе пользователя в таблице.

Материалы без пользователя должны показаться, можно будет попробовать удалить.
Бекап сделайте на всякий случай перед процедурой.