На одном сайте, работающем на CMS DLE, столкнулся с проблемой большого количества дубликатов новостей. В администраторской части ДЛЕ зашел в раздел редактирования новостей. Вывел все записи списком, оказалось их больше 3800 штук! Рассортировал по имени и увидел, что каждая третья строка имеет копию.
Сначала руками ставил галки на дубликатах и удалял, потом подумал, что несколько часов уйдет на эту нудную работу. Стал искать выход по автоматическому удалению новостей, у которых совпадают названия в TITLE. В поиске предлагают какие-то скрипты и моды для DLE. Все это сомнительно, вместе с ними в подарок можно получить бэкдор. И через несколько недель потерять посетителей из-за падения трафика (сайт забанят в поисковике и антивирусе).
Подумал нужно копать в сторону удаления запросом через базу данных ДЛЕ. Короче говоря, нашел выход. Весьма рабочая инструкция! Мне, по крайней мере, помогла.
Заходим в PhpMyAdmin. Кто забыл логин и пароль базы данных DLE, может посмотреть их через файл менеджер в файле dbconfig.php. Этот файл по этому адресу лежит относительно корня:
/engine/data/dbconfig.php
В PhpMyAdmin выбираете вашу базу данных. Обязательно сделайте резервную копию базы и сохраните ее, мало ли что может случиться. Затем переходите на вкладку SQL.
В поле вводите запрос:
ALTER IGNORE TABLE dle_post ADD UNIQUE INDEX titleindex (title);
ALTER TABLE dle_post DROP INDEX titleindex;
Получаете ответ: SQL-запрос был выполнен успешно.
Вот и всё, все похожие новости на ДЛЕ успешно удалены. Сайт работает в штатном режиме.