MODx/Администрирование/Перенос сайта на новый движок

Материал из Викиучебника — открытых книг для открытого мира

Переход от MODx 0.9.6 к MODx 0.9.7[править]

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

В конечном счете, переход на новую версию, наверно, будет автоматизирован. Если Вы имеете большой сайт с большим объемом контента, со многими сниппетами и чанками, Вы, вероятно, захотите увидеть некоторые инструменты, упомянутые в этой ветви форума о MODx.


Основные шаги перехода к MODx 0.9.7 от более ранней версии:[править]

  • Установить MODx 0.9.7
  • Сделать SQL дамп таблиц старого сайта
  • Преобразовать теги в файлах дампа к новому формату
  • Импортировать преобразованные SQL-файлы в базу MODx 0.9.7
  • Отредактировать новый поля в phpMyAdmin
  • Переместить файлы к новому сайту
  • Исправить все оставшиеся проблемы
  • Вручную создать структура разрешений для пользователей
  • Установка MODx 0.9.7

На момент написания данной статьи MODx 0.9.7 еще не был выпущен, но, возможно, он уже выпущен, когда Вы ее читаете. Проверьте, не доступна ли версия 0.9.7. Если нет, то Вам придется воспользоваться субверсией (subversion – SVN). Для Windows, рекомендуется использовать Tortoise SVN, для Mac OS x – SVN x.

В клиенте SVN введите адрес «http://svn.modxcms.com/svn/tattoo/tattoo/branches/0.9.7/» когда он запросит URL хранилища. В Tortoise SVN Вы сделаете это в Repo Browser, как только соединитесь с хранилищем, щелкните правой кнопкой по папке куда хотите сохранить MODx 0.9.7 и выберите «SVN Checkout». Нажмите ОК, MODx будет скачан на Ваш компьютер.

Для установки необходимо пройти все предложенные этапы установки. Заметьте, что тут установочная директория называется “setup”, а не “install”, как это было в предыдущей версии.

Убедитесь что у Вас отключены семантические URL. Это проверяется в разделе администрирования: Инструменты / Конфигурация / Семантические URL (Tools / Configuration / Friendly URLs). burik 18/04/2008 отредактирован


Экспорт таблиц со старого сайта[править]


Откройте свою старую базы данных используя phpMyAdmin(или что-нибудь подобное).

Примечание: Каждый раз, экспортируя, обязательно отмечайте флаги «Сохранить в файл» и «Добавлять IF NOT EXISTS»

Экспортируйте таблицы (желательно экспортировать каждую таблицу в отдельный .SQL-файл): modx_categories, modx_site_contents, modx_site_templates, modx_site_htmlsnippets (Ваши чанки), modx_site_snippets (но из этой таблицы нужно экспортировать только Ваши собственные сниппеты. Не экспортируйте системные сниппеты.)

Преобразование тегов MODx[править]


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

Для начала, краткий обзор изменений тегов:

Элементы контента[править]


Старые Новые

[*переменная_шаблона*] *переменная_шаблона

Шаблон:Чанк $чанк

сниппет сниппет


Теги контента[править]


Старые Новые

[+плэйсхолдер+] +плэйсхолдер

[~ссылка] ~ссылка

[(системный параметр)] ++системный параметр

No Tag %ключ_языковой_строки


Некэшируемые объекты[править]


Старые Новые
[!сниппет!] [[!сниппет]]
- [[!$чанк]]
- [[!*переменная_шаблона(TV)]]

Замены, которые нужно выполнить:[править]


Замените [* на [[*

Замените [+ на [[+

Замените [~ на [[~

Замените [( на [[++

Замените [! на [[!

Замените {{ на [[$

Замените *] на ]]

Замените }} на ]]

Замените +] на ]]

Замените ~] на ]]

Замените )] на ]]

Замените !] на ]]

Сделайте вышеприведенные замены во всех dump-файлах. Можно пропустить файл с таблицей modx_categories. Так же очень хорошая идея – сохранять измененный файл отдельно. Например, с таким именем filename-converted.sql. burik 18/04/2008 отредактирован


Импортирование дампов таблиц в новую базу данных[править]


Импорт таблицы modx_site_contents[править]

Если Вы устанавливали законченную версию MODx 0.9.7, то вероятно в таблице modx_site_contents будут какие-то данные. Думаю, лучше всего будет сделать резервную копию этих данных перед продолжением.

Я сначала импортировал таблицу modx_site_contents. Здесь возникли некоторые сложности. В этой таблице добалены новые поля, которых небыло в предыдущей версии. Вероятно, есть способ импортировать таблицу не взирая на новые поля, но у мне я такое не получилось. Поэтому я создал дополнительную базу данных. Там создал таблицу modx_site_contents (как в старой базе). Импортировал новые данные туда, потом добавил новые поля и экспортировал эту таблицу. И, наконец, этот дамп я импортировал в новую базу.

Создайте в Вашем phpMyAdmin новую базу. Я назвал ее «dummy», но это не принципиально. Вы можете назвать ее как угодно. Импортируйте в новую базу Ваш файл с экспортированной таблицей modx_site_contents.

Выберите таблицу modx_site_contents. Перейдите к структуре таблицы. Добавьте три поля. После этого снова экспортируйте таблицу, не забыв указать флаги «Добавлять IF NOT EXISTS» и «Сохранить в файл».

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

После этого зайдите по адресу Вашего нового сайта. Сейчас нет никаких .CSS и шаблонов, но все же Вы должны увидеть часть своего содержимого. Если же Вы ничего не видите , проверьте какой номер первой страницы установлен у Вас в настройках MODx. Это можно проверить зайдя в администраторский раздел: Инструменты / Конфигурация / Сайт (Tools / Configuration / Site). Номер стоящий в поле «Первая страница» долже соответствовать номеру Вашей заглавной страницы.

Импорт таблицы modx_categories[править]

Импортируйте таблицу modx_categories, которая содержит информацию обо всех категориях. По категориям распределяются сниппеты, чанки, шаблоны. Без этой таблицы Вам будут доступны только некатегоризированные элементы. burik 18/04/2008 отредактирован


Импорт таблицы modx_site_templates[править]

Убедитесь что вы провели опреации поиска и изамены в этой таблице. Импортируйте таблицу в базу данных нового сайта.

Импорт таблицы modx_site_htmlsnippets[править]

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

Импорт таблицы modx_site_snippets[править]

Убедитесь что вы провели опреации поиска и изамены в этой таблице. Импортируйте таблицу в базу данных нового сайта. Теперь у Вас есть все Ваши сниппеты.

Основные ошибки:[править]

  • Если при импорте появляется сообщение об ошибке, говорящее что таблица уже существует, Вы, вероятно, забыли указать флаг «Добавлять IF NOT EXISTS».
  • Если появляется ошибка, говрящая о повторяющихся ID номерах, то скорее всего в талицах новой базы уже было какое-то содержимое. Удалите эти таблицы в новой базе и повторите импорт.


Копирование CSS файлов[править]


Все Ваши CSS фалы стилей нужно скопирвать в тоже самое место что и на старом сайте.

Заключение[править]

Теперь, когда Вы полностью импортировали Ваш старый сайт, Ваша домашняя страница должна выглядеть примерно так, как на старом сайте.

Управление пользователями, рили и разрешения изменились достаточно сильно. Я сейчас все еще ищу способ перенести эти данные с прошлой версии. Поэтому пока что это придется делать вручную.

По всем вопросам обращайте на форум.