EE + LiveJournal Crossposter = "Error Posting to LiveJournal: 302"
Предистория
Посколько LiveJournal является один из самых массовых блогов, неудивительно что достаточно быстро возникает задача постинга сообщений одновренеменно и в этот блог.
Не слишком длительный поиск в Инете находит необходимый компонент - это The LiveJournal Crosspost Module/Extension.
Закачав последнюю версию модуля и настроив его по достаточно понятному описанию я смог насладится одновременным постингом и в основном блоге и в паралельном, расположенном на LiveJournal. Пришлось только исправить небольшую проблему с путями картинок на основном блоге.
Всё было прекрасно, пока я не решил что на LiveJournal запись из основного блога не нужно ... и тут началось :(. Любая попытка отредактировать эту запись приводило к неизвенному "Error Posting to LiveJournal: 302". Что делать?
Пришлось обратиться к интернету. Но поскольку в русском его сегменте превалируют(незаслуженно) сторонники Wordpress, то я нашёл решение только для WP ... есдинственную подсказку я нашёл такую: основной блог при первой записи в блог, расположенный на LiveJournal оставляет в базе информацию о записи в этом блоге и при следующих изменениях записи в основном блоге руководствуется этой информацией. В случае если записи в блоге LJ нет - и появляется сообщение об ошибке 302. Но, поскольку структуры баз EE и WP существенно различаются - прямого решения не было. Пришлось копать самому.
Взяв на вооружение любимый phpmyadmin я начал обшаривать базу данных. И нашёл решение. Решив проблему могу предложить решение ещё для остальных в различных случаев.
Вы больше не будете кросспостить в LJ
Тогда достаточно в CP EE в разделе Extensions Manager (Admin->Utilities->Extensions Manager) просто отключить LiveJournal Crosspost Form нажав на Disable.
Вы не будете изменять этот конкретный пост - но будете и дальше кросспостить в LJ
1. Отключаем LiveJournal Crosspost Form в разделе Extensions Manager.
2. Входим а редактирование записи, дубль которой удалеён в блоге LJ и очищаем поле соотвествующее параметру ID Field в параметрах модуля Livejournal Crosspost. Его можно посмотреть в CP EE Admin->Modules->Livejournal Crosspost->Settings Сохраняем измемния.
3. Включаем LiveJournal Crosspost Form в разделе Extensions Manager.
После этого Вы спокойно можете продолжать кросспостить другие записи своего блога в паралельный LJ блог без всяких сообщениях об ошибках. Но имейте в виду, что если вы измените запись, копия которой была удалена в блоге на LJ - то она там появится опять. Так что при редактировании этой записи не забывайте на это время отключать LiveJournal Crosspost Form в разделе Extensions Manager.
То же самое, но с помощью phpmyadmin
Этот способ считаю наиболее корректным.
Открываем в phpmyadmin базу, соответсвующую Вашему блогу. Находим в weblog_data запись, соответстущую нужной записи в блоге(номер её можно узнать в разделе Edit CP EE). Теперь у этой записи ищем очищаем поле соотвествующее параметру ID Field. Нужное поле там расположено в field_id_NN. Номер, соответсвующий NN, можно найти в lj_crosspost_fields - ищем у поля lj_field со значением id_field .
Дополнительное примечание к LiveJournal Crossposter
Версия модуля, с которой я работал(1.3) прекрасно добаяляла и изменяла записи в блоге, расположенном на LJ - но не удаляла записи там, когда удалялась запись на основном блоге. С учетом предыдущего опыта последовательность удаления такоа:
1. Улаляем запись в основном блоге.
2. Удаляем запсиь в блоге на LJ
Если Вы не соблюдаете эту последовательность - то получите ошибку, описанную в заголовке статьи. В этом случае для удаления записи на основном блоге временно отключите LiveJournal Crosspost Form в разделе Extensions Manager.
|