ZebroidФорумПубличный разделВопросыИмпорт/синхронизация XML-RPC в DLE.

Импорт/синхронизация XML-RPC в DLE.

09 февраля 2012, 00:56
Зарегистрирован: 13 июля 2009, 16:31
Делаю импорт. Все импортируется. Но всем категориям и статьям присваивается свои alt name.

Так и должно быть?

Почему при синхронизации к существующим новостям добавляется еще одна точно такая же категория. К примеру, если до синхронизации статья была в категории "Другое", то после - она оказывается дважды в этой же категории. Глюков я не обнаружил на сайте, но все же почему так происходит?

ДЛЕ 9.5. Мне кажется из-за версии. Т.к. в 9.5 изменили выбор категории. По другому стало.



09 февраля 2012, 01:11
Зарегистрирован: 13 июля 2009, 16:31
Такс. Погонял и пришел к выводу, что такой косяк возникает только с теми статьями, которые были уже на сайте. Вновь добавленные статьи в зеброиде синхронизируются правильно. Значит дело не в версии?



09 февраля 2012, 14:31
Зарегистрирован: 10 апреля 2012, 00:00
Я проверю, сказать что-то на "глаз" тяжело, правда у меня 3 дня не будет доступа к компьютеру, так что придется подождать до понедельника.



09 февраля 2012, 15:55
Зарегистрирован: 13 июля 2009, 16:31
Я проверю, сказать что-то на "глаз" тяжело, правда у меня 3 дня не будет доступа к компьютеру, так что придется подождать до понедельника.


Не горит :) Я пока проверю на других версиях.



09 февраля 2012, 16:48
Зарегистрирован: 13 июля 2009, 16:31
Нашел проблему и ее решение. :)

Проверил на других версиях - также работает. То бишь также будет 2 одинаковых категории.

Такое получается когда мы синхронизируем все новости. Снята галочка Добавлять только не использованные.

Значит в файле xmlrpc.php есть лишняя строка в коде:

// Составляем запрос

$sql = "UPDATE `" . PREFIX . "_post` SET " .

"`date` = '" . IsoToSqlDate($content['dateCreated']) . "', " .

"`short_story` = '" . ParseTextPart($content['description'], true) . "', " .

"`full_story` = '" . ParseTextPart($content['description'], false) . "', " .

"`xfields` = '" . ParseXFields($content['custom_fields']) . "', " .

"`title` = '" . $content['title'] . "', " .

"`descr` = '" . $metatags['description'] . "', " .

"`keywords` = '" . $metatags['keywords'] . "', " .

"`category` = '" . ParseCategories($content['categories']) . "', " .

"`alt_name` = '" . $content['wp_slug'] . "', " .

"`allow_comm` = '" . $allow_comm . "', " .

"`allow_main` = 1, " .

"`allow_rate` = '" . $allow_rating . "', " .

"`approve` = 1, " .

"`tags` = '" . $content['mt_keywords'] . "', " .

"`metatitle` = '" . $metatags['title'] . "' WHERE `id` = $post_ID";


"`category` = '" . ParseCategories($content['categories']) . "', " .

Жирным выделил строку, которую нужно удалить. Если ее удалить, то дубль категории не создается. В остальном работает также как и работал скрипт.

Вопрос: если удалить данную строку, то не будет никаких проблем в будущем? Вдруг это пока что не заметно проблем, а потом они выльются :)



09 февраля 2012, 17:17
Зарегистрирован: 10 апреля 2012, 00:00
Проблем не будет, если вы не будете в Зеброиде создавать категории, которых нет на сайте. Позднее я подправлю скрипт, спасибо за анализ.



14 февраля 2012, 06:17
Зарегистрирован: 10 апреля 2012, 00:00
Исправил ошибку ( viewtopic.php?f=13&t=438&p=9087#p9087 ), со следующего апдейта всё будет нормально