
ну, вроде бы миграция с ЖЖ завершилась(?) более-менее успешно:)
Одной из задач по миграции было перенесение всех записей из ЖЖ с комментариями в мой новый журнал.
В комплекте вордпресса есть импорт из ЖЖ (wp-admin/import/livejournal.php), в ЖЖ есть экспорт записей (livejournal.com/export.bml — эта ссылка находится только поиском по хелпу, между прочим — в менюшках и «карте сайта» ее нет).
Но ЖЖшный экспорт во первых экспортирует только «помесячно», во вторых, по крайней мере для «базовых» пользователей — только записи, без комментариев.
С другой стороны базовый импорт записей в вордпрессе сделан таким образом, что он во-первых игнорирует все параметры записи, во вторых не имеет никакой поддержки вложенности комментариев. Если с комментариями все понятно, то первое замечание означает, что НЕ импортируются ни теги (!!!) ни настройки приватности (!!!!!!!!!!!). В результате закрытые записи или записи только для друзей становяться видны всем! «Настроениями» и «музыкой» я не пользовался, поэтому то что они тоже не импортируются для меня было несущественно:)
В результате для экспорта был выбран внешний «экспортер» LJ-Archive (все скопом с комментариями, с тем же форматом что и ЖЖ), для импорта я слегка подправил стандартный «импорт»:)
реализация «тегов» простая — формат тегов в ЖЖ и в вордпрессе совпадают до мелочей — это строчка, разделенная запятыми:) поэтому она в чистом виде передается вордпрессу.
С настройками приватности все несколько по другому — есть два варианта параметра security, «private» и «usemask». Первое как и предполагается — приватная запись, второе — запись «для друзей». При этом во втором случае есть еще параметр «allowmask» который определяет для каких групп друзей запись видна.
Поскольку записи «для друзей» это обычно (у меня) что-то личное, актуальное на момент написания, и ничего особо интересного там нет, я решил не заморачиваться с переносом груп друзей и поэтому оба варианта в вордпрессе обозначаются как private. При необходимости, реализовать групы друзей (среди зарегестрированых пользователей) можно с помощью плагина Disclose-secrets. Вообще, если мне таки понадобится писать посты «для друзей», можно будет скриптом «зарегестрировать» всех жж-шных френдов у себя с правами «читателей» по openid, и с помощью disclose secrets назначать соотв. права для записей:)
Задача с вложенными коментариями просто так не решалась, пришлось попрограммировать слегка:) в результате в livejournal.php появилась модифицированная функция wp_insertcomment_lj в которой используется дополнительный столбец в таблице wp_comments. Для пользования нужно добавить к этой таблице столбец comments_ljid (ALTER TABLE wp_comments ADD comment_ljid BIGINT;) — после окончания экспорта столбец можно будет удалить, он нужен для того чтоб содержать в себе itemid комментария для привязки к парент-комментарию:) Столбец «comment_parent» в таблице уже присутствовал, я не знаю — это из поставки так или результат активации плагина wp-threaded comments (который на порядок лучше работает чем Brian’s threaded comments, не глючит с темой, не глючит с опенайди — ну удобнее и лучше!).
Да, кроме этого для этих записей назначается рубрика LJ (у меня — catid=5!), поэтому нужно или убрать назначение рубрики, или вписать в соотв. кусок кода актуальный CatID для нужной рубрики.
В остальном все «very straightforward»:)
Ах, да, еще — скрипт отрабатывает почему-то достаточно медленно, у меня он импортировал где-то по 1 записи в 2 секунды (интересо очень, с чего бы это??)
В результате после 14-16 записей он отваливался по тайм-ауту пхп в 30 секунд. Мне было лень копаться (а записей немного!) и поэтому я просто повторял импорт — существующие записи скрипт не вставляет (впрочем, парочку повторяющихся было, но я не знаю от каких моих экспериментов они остались:))
Я думаю что отключив все плагины (кроме необходимых — например disclose secrets если его таки будете использовать; threaded comments может быть выключен кстати) можно сильно ускорить отработку скрипта (или, если есть возможность, в параметрах ПХП отключить таймаут на время импорта).
По поводу плагинов и других мелочей миграции еще как-то напишу:)
Если есть вопросы — спрашивайте.
слушай, очень жаль что ты затеялся с миграцией, потому что очень неудобно комментировать с введением имени, емейла и т.д. — для меня это значит, что вряд ли когда буду комментировать.
оставь хотя бы возможность через жж комментировать тоже.
Оля, я еще напишу подробную инструкцию:)
На самом деле, нужно ОДИН РАЗ ввести свой ЖЖ-шный ник (о чем, кстати написано:) в виде http://olga_scotland.livejournal.com в поле Website, ОДИН РАЗ нажать кнопку подтвердить когда тебя перебросит на ЖЖ, и после этого писать комментарии сколько душе угодно:)
Я, более того собираюсь эту процедуру еще упростить (сделать выпадающий список — ЖЖ, ли.ру, блоггер) — можно будет только ник ввести:) или автоматическое определение жж-ника, нужно будет только подтверждение что это именно ты.
В любом случае, даже сейчас, твоя информация контактная уже запомнена и вводить второй раз (с этого же компьютера) тебе ее не надо:)
Вообще, довольно интересное занятие — разрабатывать свой блог.
Мне размещать его негде, но уже ради одного интереса балуюсь с ВордПрессом на домашнем компе. Авось, рано или поздно пригодится.
я кстати уже как-то предлагал свой хостинг:)
Ты, кстати, на этот «авось», делай бекап ЖЖ регулярно:)
с помощью LJArchive лучше всего, он вытягивает совершенно все — с комментариями, групами друзей, настройками музыки и настроений…
Потом, если что, в вордпресс можно будет засунуть:)
Правда с твоей любовью к подзамкам, непонятно для кого вести блог:) Хотя, если делать подзамочную трансляцию в ЖЖ и автоматическую регистрацию по OpenID (и ручным добавлением тех-кого-надо в нужную тебе групу юзеров) и использованием DiscloseSecrets все возможно….:)
Кстати да, давно не бэкапилась :)
И тоже думаю, что все возможно :)
Здравствуйте! А подскажите пожалуйста название плагина, благодаря которому у вас для комментирования достаточно ввести лишь имя пользователя ЖЖ, а не целую ссылку, как в обычных openid плагинах. Заранее благодарен!
эммм. Сию функциональность я сам запрограмировал:))))
Но вообще-то для Вордпресса существует два open-id плагина. Один официальный, другой — русский:) Поиском находится легко. В русском — там такая фича встроена (там есть livejournal и deadjournal по дефолту).
Я решил основываться на официальном, только тему переправил, там все JS-кодом меняется перед отправкой формы.
Русский плагин пробовал, он у меня не заработал, может вы можете мне скинуть на имейл свой comments.php или хотя бы ту часть кода, которая меня интересует? Я просто не программист, но порывшись в коде, может чего и понял бы… Был бы очень благодарен!
помогите, пожалуста, с проблемкой в ljarchive
он постоянно выдает такую ошибку при попытке создать архив:
System.TypeLoadException: Тип «XmlRpcProxy84820925-5cd6-43ee-87d5-ea50bb09c180″ из сборки «XmlRpcProxy84820925-5cd6-43ee-87d5-ea50bb09c180, Version=0.9.6.0, Culture=neutral, PublicKeyToken=null» пытается реализовать недоступный интерфейс.
в System.Reflection.Emit.TypeBuilder._TermCreateClass(Int32 handle, Module module)
в System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()
в System.Reflection.Emit.TypeBuilder.CreateType()
в CookComputing.XmlRpc.XmlRpcProxyGen.BuildAssembly(Type itf, String assemblyName, String moduleName, String typeName)
в CookComputing.XmlRpc.XmlRpcProxyGen.Create(Type itf)
в EF.ljArchive.Engine.LJServerFactory.Create(String url)
в EF.ljArchive.Engine.Sync.ThreadStart()
net.framework установлен (где-то писали, что он нужен)
в линке на архив два раза папка you указана, я руками правил…
Очень жаль, что файл livejournal.php недоступен для скачивания.
Не обратил внимания на комментарий выше… Всё ясно, скачал. Правда, нынешний текст livejournal.php как-то сильно отличается от того, что находится в вашем файле, так что экспериментировать не стал.
не знаю на счет «нынешнего текста livejournal.php» — я взял ту версию которая тогда была, подправил ее для своих задач — и она работает (работала тогда, если ЖЖшники ничего не изменили — в чем я сомневаюсь, ибо тут привязка больше к LJArchive)
Править новую версию как-то не вижу смысла:) Могу порекомендовать попробовать на каком-нибудь тестовом блоге.
А вы не ставили перед собой задачу синхронизации текущих комментов в ЖЖ с вордпрессом? Есть плагин lj_comments_import, но я не могу добиться от него нормальной работы :(
Вах!
День траха и я его прикрутил:)
первое — в имени каталога заменить «-» на «_»
Второе — метод аутентификации который они использовали в ЖЖ больше не работает
третье — можно обойтись если плейн-текстом в строке curl_setopt($ch, CURLOPT_POSTFIELDS, ‘mode=login&chal=’.$loginchal.’&response=’.$login_response.’&user=’.$user.’&password=&_submit=Login’);
после password= прописать пароль к жж (очень несекурно, но иначе — нужно полностью переписывать всю логику)
четвертое — закоментировать mysql_query(‘SET NAMES ‘.DB_CHARSET);
(по крайней мере мне понадобилось это)