Здравствуйте, обращаюсь за помощью в поиске надёжного решения для массового удаления материалов определённого типа. Стандартный фильтр вынуждает отсеивать и потом лишь постранично удалять сразу отмечая показываемые варианты. Но там более сотни страниц получается, а еженедельные обновления превратятся в каторгу. Мне удалось найти лишь два способа:
Первый совет нашёл на сайте siteograf.com:
"Удалять через стандартные средства друпал несколько тысяч нод (node) очень утомительно и тогда на помошь приходит следубщий код.
Нужно создать файл с расширением php непример (delete.php), поместить его в (корневую) директорию сайта и запустить ваш-сайт/delete.php
<?php
require_once './includes/bootstrap.inc';drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$type="page";
$query= db_query("SELECT nid FROM {node} AS n WHERE type = '%s'",$type);
while ($row = db_fetch_object($query)) { print_r($row); node_delete($row->nid);
}
?>
В данном примере удаляться все материалы типа page" - не работает, хоть и права на файл 755. Загружается пустая страница. Тип вместо page указал свой (cat-parts), правильно ли? (адрес создания такой ноды: .../admin/node/add/cat-parts) С виду метод весьма хорош в плане удобства, но насколько высока будет нагрузка на сервер (400мгц, 128мб ОЗУ) при удалении около 6000 нод? Ну и конечно высок ли риск?
Второй - это модуль http://drupal.org/project/delete_all - но там пугают высоким риском при удалении тысяч страниц.
Признателен за любую помощь!
Комментарии
http://drupal.org/project/views_bulk_operations
упорный поиск-таки дал некоторый результат, но опять же кто знает как примерно поведёт себя сей модуль http://drupal.org/project/bulkdelete на подобном сервере?
glintwine, спасибо! но лучшим решением будет максимально простое. в виду горящего вопроса не могли бы сказать насколько просто настроить подсказанный вами модуль и произвести операцию отсева и удаления, а также нагрузки на сервер и насколько хорош bulk dekete?
Вы бы лучше логи почитали, скрипт, сам подобным удаляю, всяко будет быстрее чем модуль
спасибо за помощь, мой выбор остановился на http://drupal.org/project/bulkdelete . 6400 нод удалил на данном железе чуть более чем за минуту. крайне прост: отмечаются галочками нужные типы и при этом рядом с ними показывается хранимое значение, что весьма немаловажно в столь ответственном выборе! Выбирается метод удаления (ну конечно же быстрый! ) и все работает на уровне!
Все таки интересно, а откуда взялось такое кол-во нод и зачем их понадобилось удалять?
импорт автозапчастей из xls перекодированного в csv. для каждой строчки из этого файла создаётся нода, а все они выводятся должным образом в таблицу views. в течении недели строчки беспорядочным образом редактируются в файле и поэтому лучше чем заново обновить весь каталог я не придумал. в целом схема заработала превосходно и главное - очень просто для заказчика не теряя стабильности (правда модуль импорта щас чего-то приуныл).
http://www.drupal.ru/node/38194
Мне тоже нужно было удалять ноды, но не одного типа, а только с определённым свойством, немного примерно 20000. Так я ставил удаление node_delete в один из своих модулей и функцию hook_cron, и от туда они потихоньку и удалились. Тоже как вариант на будущее.