Такое дело тут получилось: решил я свой сайт почистить от срама, а то больно много уж там надобавлялись и написали, пока я капчу нормально не настроил. Сделал Views'у, в которой сразу были ссылки на удаление и автора и материала и постепенно одного за другим удалял. Но в какой-то момент появилась проблема: вот есть материал с названием типа "проститутки чернигова элитные девушки ростова", он показывается во вьюсе полного списка материалов, есть запись в таблице node и, наверное, в прочих, но при этом не получается зайти в этот материал и посмотреть содержимое, не работает ссылка на удаление - в обоих случаях выдаёт "Страница не найдена". Пытался отключить показ автора - всё равно результат тот же.
Подскажите, как обойтись малой кровью, желательно через движок. Если придётся искать по таблицам, то в какие надо смотреть, чтобы вычистить оттуда всю эту дрянь, если подскажете, как создать SQL-запрос типа "Where nid=490", тоже буду весьма признателен.
Комментарии
Вместо SQL-запрос "Where nid=490" можно попробовать открыть ссылку что-то типа http://example.com/node/490/edit
через admin/content/node/overview тоже не удаляется?
кэш чистили?
Про admin/content/node/overview забыл, но оказалось, что и смысла в этом разделе нету - эти материалы там даже не отображаются. Кэш почистил - не помогает.
Ноды в 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']);
)И ниже, по тексту, в выводе пользователя в таблице.
Материалы без пользователя должны показаться, можно будет попробовать удалить.
Бекап сделайте на всякий случай перед процедурой.