Не так давно я имел помимо данного сайта еще один. По некоторым причинам решил присоединить второй сайт к этому в качестве отдельного раздела. При этом тот другой сайт появился даже раньше этого и имел несколько сотен статей, разделенных на полтора десятка категорий, а также полсотни зарегистрированных пользователей. На этом сайте к тому времени информации было не меньше. Задача: перенести наполнение сайта на другой так, чтобы создать объединенную структуру.

Нашелся отличный компонент J2XML, заточенный именно под подобную задачу. Он бесплатный, имеет гибкие настройки. Экспортирует связанную структуру материалов, категорий и пользователей с сайта-донора и интегрирует ее в структуру сайта-акцептора. До комплекта переносит еще и картинки в статьях, а также ссылки (WebLinks). Перенос, как следует из названия, осуществляется через XML-файлы. Детальному рассмотрению настроек и функционала компонента J2XML и посвящена эта статья.

Первым долгом по традиции напомню о необходимости резервного копирования файлов и базы данных сайта перед любыми изменениями, порекомендую сохранять промежуточные результаты и проделывать все вначале на локальном веб-сервере.

А теперь - погнали!

Скачайте с офсайта последнюю версию пакета J2XML (на момент написания - 3.1.rc2), соответствующую вашей версии CMS. Оба моих сайта работали под Joomla 2.5, именно этот вариант рассмотрен здесь. Отмечу лишь, что перед процессом я синхронизировал версии сборок - на обоих сайтах обновился до последних (на момент написания - 2.5.16).

Давайте заодно договоримся о терминологии. Сайт, информация с которого экспортируется, я буду называть сайт-источник, а тот, на который импортируется - сайт-приемник. А то донор и акцептор - слишком по-иностранному выходит )).

I. Экспорт с сайта-источника

Входим в админку сайта-источника. Там проделываем следующее.

  1. Устанавливаем пакет (package) стандартным образом через Менеджер расширений -> Установка. Если зайти теперь на вкладку Управление - видим аж пять расширений: инсталлятор пакета, компонент и еще 3 - библиотека, плагин J2XML Export/Send buttons и интерфейс командной строки J2XML CLI.

    j2xml-ru-01-package-before-update

    Последний из трех нам не пригодится, а вот остальные два можно обновить, если на офсайте есть более новые версии. После этого публикуем плагин J2XML Export/Send buttons.

    02-package-after-update

  2. Идем в сам компонент, открываем Настройки и выставляем подходящие для наших целей. Интерфейс - только английский, но там в плане языка все достаточно просто и ясно.

    На сайте-источнике из настроек нас интересует только первая вкладка:

    • Export. На ней имеются следующие опции:

      j2xml-ru-03-options-export

      • Images - переносить ли картинки к статьям. Если оставить 'Да', то изображения будут включены в xml-файл в закодированном виде и раскодируются на сайте-приемнике в соответствующие папки. В том случае, если папки там отсутствуют, они будут созданы. Возможный минус здесь - размер полученного файла. Если много больших имиджей - даже компрессия не поможет. У меня было немного, поэтому я оставил эту опцию активной. В обратном случае лучше постепенно перенести картинки вручную.
      • Users - соглашаюсь. В этом случае в файл будут добавлены учетные записи пользователей, но не всех, а лишь авторов статей, выбираемых для переноса. Подробнее - в описании опции Keep author вкладки Content на сайте-приемнике.
      • Compress - сжимать ли файл. Имеет смысл при большом количестве информации.
  3. Жмем Сохранить и закрыть, а следом - Article Manager. В меню Менеджера материалов появилась кнопка Export.
  4. В выпадающем меню Кол-во строк под списком материалов выбираем 'Все'. Ставим галки на нужные статьи, или выбираем все и снимаем галки с ненужных. Жмем Export. Генерируется и скачивается файл. Содержит он выбранные материалы со всеми установками, аккаунты пользователей-авторов, а также категории, но тоже не все, а только соответствующие экспортируемым материалам.
  5. Если есть желание или необходимость перенести дополнительные категории и/или пользователей, заходите в Менеджер категорий и Менеджер пользователей (в них также имеется кнопка Export) и экспортируйте нужные. Для импорта пользователей предусмотрены отдельные настройки, выставляемые впоследствии на сайте-приемнике. Также, если вы используете компонент Ссылки (Weblinks), имейте в виду, что J2XML позволяет переносить и их - кнопка Export присутствует и в интерфейсе Менеджера ссылок.

II. Импорт на сайт-приемник

Переходим на сайт-приемник. В его админке проделываем следующие действия.

  1. Установка пакета и вход в Настройки - как на сайте-источнике. Настраиваем опции для импорта.
    • Вкладка Export нас здесь, понятно, не интересует. Посмотрим настройки на остальных.
    • Вкладка Import:

      j2xml-ru-04-options-import

      Здесь все достаточно прозрачно. Импортировать ли изображения, категории, пользователей и ссылки. Какие выбирать значения параметров - решается по результатам анализа содержимого обоих сайтов. Также эти значения должны сочетаться с некоторыми параметрами из следующей вкладки. Рассмотрим ее подробно.

    • Вкладка Content содержит следующие опции:

      j2xml-ru-05-options-content

      • Keep Ids - очень важный параметр. Если на сайте-приемнике, как в моем случае, есть свой контент, то лучше оставить 'Нет'. В этом случае идентификаторы импортируемых элементов добавляются к существующим по принципу автоинкремента. В этом случае параметры вкладки Import игнорируются, кроме тех, которым вы присвоили значение 'Нет' - тогда соответствующие группы просто не импортируются. Перезапись существующего наполнения новым происходит только если сохранять Ids.

        Моя задача - как раз добавить новые элементы, сохранив существующие. Именно поэтому я оставил значения опций на вкладке Import дефолтными, равно как и Keep Ids - 'Нет'.

      • Access Level. Зависит от вашего желания. Можно сбросить уровень доступа для всех добавляемых материалов на какой-нибудь один, а можно оставить оригинальный. Меня устроил второй вариант.
      • State - состояние: опубликован или нет. Здесь та же логика. Сохраняю исходное значение.
      • Keep author - если 'Да', сохраняет авторов статей, даты последнего изменения и количество изменений. Заодно, если на сайте-источнике на вкладке Export было выбрано Users, здесь будут добавлены учетки пользователей - авторов статей. Будут ли заменены аккаунты пользователей с такими же идентификаторами - зависит от выбора Keep Ids выше, а также от значения параметра Users на вкладке Import. Интересно здесь, что email пользователя алгоритм тоже считает идентификатором.

        Значение и этой опции оставляю по умолчанию - 'Да'.

      • Keep category - 'Да'. В этом случае категории, соответствующие статьям, автоматически будут добавлены в список категорий. И снова - перезаписывать ли существующие, если такие будут найдены, зависит от значений Keep Ids и параметра Categories предыдущей вкладки.
      • Category - используется только если Keep category установлено в 'Force to'. Всем статьям, соответственно, присваивается выбранная категория.
      • Оставшиеся четыре параметра не требуют детального объяснения - сохранять ли атрибуты, метаданные и рейтинг, а также избранные статьи.
    • Следующая вкладка - Users.

      j2xml-ru-06-options-users

      Пригодится только если экспортировались пользовательские аккаунты из Менеджера пользователей сайта-источника отдельным файлом. Здесь всего два параметра, которые можно сохранить по умолчанию:
      • Keep Ids - 'Нет', как и для контента.
      • Keep attribs - имеет смысл сохранить атрибуты добавляемых пользователей, если нет особых соображений в пользу противоположного выбора.
    • Наконец, последняя вкладка Advanced

      j2xml-ru-07-options-advanced

      может быть смело проигнорирована. Debug - отключен, Remote folder в описываемом методе не используется.

    Итак, как видите, значения всех параметров устроили меня по умолчанию. Случаи, когда было бы целесообразно их поменять, я попытался упомянуть выше.

  2. Теперь остался сам импорт. Жмем Choose File, выбираем файл с материалами и кликаем Open, а следом - кнопку Import. Дожидаемся конца процедуры и получаем лог ее выполнения. Если настройки соответствовали задумке, результат должен быть успешным.
  3. Если отдельно был выполнен экспорт несвязанных со статьями пользователей, категорий и ссылок - повторяем предыдущий шаг для соответствующих файлов.

Что можно отметить в заключение? Работает компонент отлично - шустро и без глюков. Если бы он еще и меню переносил - было бы совсем хорошо. Также нет возможности синхронизировать сторонние расширения, связанные с идентификаторами переносимых элементов. Например, пользователи на сайте-приемнике получили новые IDs, и комментарии зарегистрированных пользователей в JComments мне лично пришлось привязывать к ним вручную. Благо дело, их было немного - 30 с небольшим, а если их сотни? Пришлось бы искать, а то и писать скрипт переноса. Почему бы разработчикам не сделать этого, ведь JComments - наше всё?! Да и скрипт такой не представляется сложным.

Но это так, перфекционизм. А если без него, то спасибо разрабам J2XML - бесплатного, полезного, быстрого и надежного компонента для переноса наполнения с одного сайта на другой и грамотного интегрирования этого нового контента в имеющуюся структуру.

Комментарии  

blog.mydrivers.com
0 # blog.mydrivers.com 11.03.2023 04:04
%%

my web-site: Sportsbook (blog.mydrivers.com)
Ответить | Ответить с цитатой | Цитировать
p19S181.dsnhost.site
0 # p19S181.dsnhost.site 11.03.2023 05:08
%%

my blog: sbobet - p19S181.dsnhost.site,
Ответить | Ответить с цитатой | Цитировать
Jlbots.Com
0 # Jlbots.Com 11.03.2023 05:10
%%

My homepage: lottery; Jlbots.Com,
Ответить | Ответить с цитатой | Цитировать
pharmacie
0 # pharmacie 11.03.2023 15:10
WOW just what I was looking for. Came here by searching for сайта
Ответить | Ответить с цитатой | Цитировать
Susana
0 # Susana 11.03.2023 17:11
%%

Stop by my blog :: joker123; Susana,
Ответить | Ответить с цитатой | Цитировать
Jess
0 # Jess 11.03.2023 18:52
%%

Feel free to visit my web-site ... lottery online (Jess)
Ответить | Ответить с цитатой | Цитировать
30.staikudrik.Com
0 # 30.staikudrik.Com 12.03.2023 07:20
%%

my webpage ... lottery Singapore - 30.staikudrik.Com -
Ответить | Ответить с цитатой | Цитировать
choosecams.com
0 # choosecams.com 13.03.2023 22:07
%%

my page - Poker online (choosecams.com)
Ответить | Ответить с цитатой | Цитировать
naklejki z Bałwanami
0 # naklejki z Bałwanami 17.03.2023 16:22
This is myy fist timne pay a visit aat here and i am really impressed to read everthing at single place.


My blog: naklejki z Bałwanami
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий


Работая с этим сайтом, вы даете свое согласие на использование файлов cookie, необходимых для сохранения выбранных вами настроек, а также для нормального функционирования сервисов Google.