ZebroidФорумПубличный разделПредложенияАрхивДобавить функцию в импорт xml на dle

Добавить функцию в импорт xml на dle

15 декабря 2014, 23:27
Зарегистрирован: 21 сентября 2010, 01:15
1. Добавить название последнего импортируемого файла — При заливке большого количества xml файлов, забываешь какой уже залил, а какой ещё нет.
2. Очень не хватает настройки для обработки материалов с похожими названиями.

На скрине нарисовал:


Не добавлять (как сейчас работает — материалы с одинаковыми материалами не добавляются на сайт)
Перезаписывать — при совпадении материалов из одной категории, материал будет обновлён в базе с сохранением id.

Пример использования:
Обновление устаревшей информации на сайтах с товарами, ценами, объявлениями
или перезаливка материалов с новыми добавлениями или массовыми исправлениями
с сохранением url проиндексированных страниц.

Создать новый при совпадении имён, создавать новый отдельный материал

Пример использования:
Сайты с фильмами, файлами или товарами могут содержать одинаковые названия в разных категориях.
Терминатор (категория Фильмы)
Терминатор (категория Мультфильмы)

zebroid.com.ua/forum/topic/4390/ — тут обсуждали

Что бы новый создавал
if(!$this->IsPostExist($this->str($oXML->alt_name)))

if(true)


02 февраля 2015, 07:02
Зарегистрирован: 21 сентября 2010, 01:15
тему для ускорения реализации отправил на голосовалку, можно тут потереть.

zebroid.com.ua/forum/topic/4489/#post-21321

04 марта 2015, 07:37
Зарегистрирован: 21 сентября 2010, 01:15
Спасибо большое за обновление, теперь есть возможность обновлять страницы в dle с сохранением url!
На тестовом проекте потестил, всё перезаливалось как нужно, но одна фишка из описания выше не учитывается.
Перезаписывать — при совпадении материалов из одной категории
Пример:
1. Создаю первый проект с категорией Фильмы, материал с названием Терминатор и текстом описание фильма
2. Создаю .xml и импортирую его на сайт
3. Создаю второй новый проект с категорией Мультфильмы, материал с названием Терминатор и текстом описание мультфильма
4. Создаю .xml и импортирую его на сайт с параметром Перезаписать

В итоге zebroid создает новую категорию Мультфильмы, перезаписывает материал Терминатор из категории Фильмы и он становиться категорией Мультфильмы.

Что нужно:
Сравнение делать по title и category, по alt_name — не проверять.

Возможно ли добавить сравнение категорий в момент импорта .xml?

Если это тяжело сделать, т.к. в dle категория в таблице это id с номером, то меня бы устроил такой вариант:

При создании xml файла, добавить одну строчку к описанию категории
<dle:cat_id>0</dle:cat_id>

Целиком так:

<dle:category>
<dle:category_nicename>film</dle:category_nicename>
<dle:cat_id>0</dle:cat_id>
<dle:category_parent/>
<dle:cat_name>Фильмы</dle:cat_name>
</dle:category>

Вместо «0», я сам впишу нужный id категории.

В zimport_class.php, останется добавить

Если совпали title, сверяем категории

Если <dle:cat_id>0</dle:cat_id> — сравнение для текущей категории не делать (т.к. как и сейчас работает)

При совпадении значений <dle:cat_id>4</dle:cat_id> (например указал я значение «4»), с id в базе данных, то перезаписываем этот материал, если значения не совпали, то создаётся новый материал. (Т.е. названия title у нас совпали, а категория не та, ищем дальше, если не нашли, то создаём новый материал)

Надеюсь, не сложно добавить эту проверку и понятно расписал.

Комментарий отредактирован 2 раз(а). Последний раз редактировал bork75 04 марта 2015, 07:44.
06 марта 2015, 11:50
Зарегистрирован: 10 апреля 2012, 00:00
Зеброид определяет совпадение статьи/категории по параметру alt_name и никак иначе. Если вы будете для одного сайта вести один проект — то никаких проблем у вас не будет. А смысла в создании нескольких проектов я не вижу. К тому же ваш вариант не идеален: что будет если на сайте перенести статью в другую категорию? Она станет уникальной и скрипт при импорте создаст её копию в старой категории?

06 марта 2015, 18:07
Зарегистрирован: 21 сентября 2010, 01:15
Как вариант, можно добавить чекбокс "Учитывать категории"

По умолчанию выключен — используется сравнение как сейчас
Если включен — при сравнении используется поиск по title и категории

Пример сайта, где такая функция будет нужна, скинул в личку.

27 декабря 2015, 18:44
Зарегистрирован: 11 сентября 2012, 21:18
Можно сделать все проще, в экселе добавлять к категориями с одинаковыми именами числа, например от 1 до 100 и тогда точно не ошибешься. Название категории не поменяется, поменяется только урл категории, для seo двойка или шестерка в конце категории ничего плохого не будет давать. Я по крайней мере только такой выход нашел.