TCSE

Как быстро скопировать новости DLE и провести их редактирование - модуль importNews

В данном уроке мы расскажем о том, каким образом модуль DLE importNews помогает производить рутинные задачи с публикациями на сайте в основе которого находиться DLE CMS.

Недавно была поставлена задача:
Перенести часть новостей из одной категории в другую (продублировать с рядом изменений).
Публикаций было 100 штук. Руками делать копи-паст не наш метод. Тем более, что мы можем импортировать в CSV нужные новости, произвести над ними массовые действия и загрузить на сайт в новую категории.

На все уйдет 10 минут, а при ручном копировании, в среднем 3 минуты на публикацию - это будет около 3 часов.

Рассказываем детали и описываем подводные камни работы с CSV и импортом из MySQL новостей DLE


В первую очередь нужно понимать, что в базе данных DLE хранит контент ваших статей в виде html кода.
Даже, если вы используете BBCodes редактор на сайте.

Таким образом экспорт новостей из таблицы с Краткое описание будет в виде HTML.

И тут первый сюрприз:

Экспорт в CSV предполагает, что данные в разных ячейках будут разделены между собой определенными символами.

Как быстро скопировать новости DLE и провести их редактирование - модуль importNews


И если с разделителем полей (в нашем случае - отельных ячеек внутри таблицы из база данных) все понятно, две других сущности, Ограничитель полей и Экранирующий символ создают некоторые трудности именно при экспорте html данных.

Ограничитель полей
Ограничивает поле, в ограниченном поле могут содержаться практически любые символы.

Экранирующий символ
Экранирует служебные и спец. символы которые встречаются в тексте полей.

Полученный из БД CSV даже с базовым набором настроек обычно можно корректно прочитать.
А вот дальше, после внесения правок и сохранения начитается морока с процессом импорта на сайт измененных данных.

Обычно это происходит в тех случаях, когда в качестве кавычек для названий используют двойные кавычки ("текст") а не кирилические аналоги («текст»).



\Первый канал\" выбирает IVECO!"


вот так выглядит название при использовании Экранирующий символ: - обратный слеш

а вот так

"\""Первый канал\"" выбирает IVECO!" 


при использовании Экранирующий символ: - вертикальная черта

И именно такой вариант позволяет без проблем импортировать новости обратно на сайт.




Видео со всем процессом экспорта и импорта



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