Переезд с Альто 1.0.х на версию 1.1.х и адаптация шаблонов (минимальный вариант)


Я обещал написать статью о переезде с Альто 1.0 на версию 1.1. Но долго с этим тянул, т.к. ломал голову, как максимально упростить этот процесс. Собственно, в этом переезде есть две особенности:

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

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

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

Скачиваете и распаковываете архив свежей версии Alto CMS отсюда или с гитхаба (последний официальный релиз вы можете взять здесь). Из этого архива для обновления потребуются папки /common, /engine и /install. Вот их и надо вам скопировать в соответствующие папки своего сайта.

После этого заходите на свой сайт и у вас открывается страница установки Alto CMS. Идете по шагам:
  • Шаг 1: просто жмете «Далее»
  • Шаг 2: Указываете настройки подключения к БД и префикс таблиц и выбираете Конвертировать базу Alto CMS 1.0.x в Alto CMS 1.1
  • Шаг 3: Обязательно отметьте «галочку» Пропустить установку администратора
  • Шаг 4: Конвертация завершена.
Если у вас не возникло никаких ошибок, то следующий раздел смело пропускаете. Если же при конвертации базы возникли ошибки, то попробуйте выполнить конвертацию вручную.

Ручное изменение структуры базы данных
Если что-то пошло не так и во время автоматической конвертации возникли ошибки, то можно попробовать сконвертировать базу данных вручную. Если, конечно, вы понимаете, что такое phpMyAdmin и можете выполнить SQL-запрос. Если для вас эти слова — китайская грамота, то у вас два варианта: найти того, кто вам поможет, либо вернуть все назад, как было (см. самое начало про бэкап). А для остальных продолжу.

Есть в движке такой файл: /install/db/convert_1.0_to_1.1.sql — это набор SQL-запросов для конвертации базы данных из версии 1.0 в версию 1.1. Вот эти запросы вам и нужно выполнить. Запросы разбиты по шагам (всего их 15 и каждый начинается с — STEP N). Вот по этим шагам и вводите их в phpMyAdmin и выполняйте.

Может такое быть, что при попытке автоматической конвертации часть запросов уже выполнилась, тогда вы будете получать сообщения, вроде такого:
Duplicate column name 'xxxxxx'
Ничего страшного, это просто означает, что эта команда уже была выполнена на этапе автоконвертации, и вы можете переходить к следующему шагу. И так, шаг за шагом, нуобходимо выполнить все команды.

Адаптация шаблонов (минимальный вариант)
ВАЖНО: если вы используете один из стандартных шаблонов версии 1.0 start-kit или experience, в которых не меняли верстку (свои CSS-стили не в счет), то вам ничего адаптировать не нужно, просто берете шаблон из версии движка 1.1, добавляете к нему свои стили (если есть) и дальше не читаете, т.к. на этом ваш переезд завершен.

Если у вас какой-то свой шаблон, или вы переделывали под себя верстку стандартных шаблонов, то для начала почитайте об изменениях в шаблонах версии 1.1 в этой статье: https://altocms.ru/963.html

Там же в комментариях, кстати, было высказывание, что я излишне оптимистичен относительно того, что получится обеспечить совместимость движка со старыми шаблонами без особых проблем. Должен признать, что скепсис отчасти оправдался. Думаю, можно было бы при бОльшем желании и при бОльших трудозатратах эту совместимость сделать почти 100%-ной. Но слишком уж корявыми и вызывающе громоздкими получались эти «костыли совместимости», поэтому от них, в итоге, пришлось отказаться.

В общем, сейчас ситуация такая: совсем без переделок старые шаблоны использовать в новой версии не получится, но минимальный вариант этих доработок не так уж и велик. Подчеркну — речь именно о минимальном варианте, чтобы шаблоны заработали и загружались фотографии. Для тех, кто захочет доработать шаблоны до 100%-ной совместимости, будет отдельная статья с необходимыми подробностями и примерами.

Итак, перечень минимальных доработок можно получить вот здесь: https://github.com/altocms/alto-skin_update_1.0-1.1

Там две папки с измененными файлами для двух стандартных скинов — start-kit и experience. Если ваш шаблона основан на основе одного из них, и если вы не меняли у себя эти файлы, то можете просто скопировать их к себе и все должно заработать (не забудьте только очистить кеш). Либо, если вы в эти файлы вносили правки, то придется внимательно изучить, что же там изменилось и адаптировать свои файлы шаблонов.

И еще одну вещь нужно сделать — найдите эти файлы:
common/templates/skin/ваш_шаблон/settings/config/assets.php
common/templates/skin/ваш_шаблон/settings/config/config.php

И в них замените:
$config['head']['default']['js'] — на $config['assets']['default']['js']
$config['head']['default']['css'] — на $config['assets']['default']['css']

Вот, собственно, и все. Букв получилось много, т.к. старался максимально доходчиво все описать. А статья о том, как адаптировать шаблоны под 1.1 с деталями и подробностями уже готова, и скоро будет опубликована.

Похожие статьи

  • Адаптация шаблонов к Альто версии 1.1 — пошаговая инструкция
    Эту статью подготовил Андрей (aka andreyv), поэтому все лучи добра за нее — ему. Это подробная пошаговая инструкция, как адаптировать старый шаблон под версию 1.1 с учетом всех нюансов, чтоб полностью использовать...
  • ВАЖНО: Критическое обновление
    В AltoCMS используется библиотека PHPMailer, в которой была обнаружена критическая уязвимость. В версии Альто 1.1.27 эта библиотека обновлена. Настоятельно рекомендуется обновить движок до версии 1.1.27! Или...
  • Версия 1.1.23 — небольшие исправления и чуть-чуть новенького
    Таки вышел релиз Alto CMS 1.1.23. Каких-то «прорывных» фишек в ней нет, она, главным образом, исправляет ряд обнаруженных ошибок и чуть-чуть добавляет некоторых новых возможностей для разработчиков. Вот список...
  • Сайт переехал на новую версию движка
    Долго сидели, как сапожник без сапог — новые версии выходят, а официальный сайт сидит на старой версии. Но, наконец, это произошло — этот сайт тоже переехал на ветку 1.1.х и будет теперь обновляться регулярно.

7 комментариев

0
Почитал по ссылкам, но так и не нашел самое первое с чем столкнулся при адаптации шаблона на основе start-kit 1.0.8 — head.default.js vs assets.default.js.
0
Да, конфиг-секция head.default переехала в assets.default, и вынесена вообще в отдельный файл common/config/assets.php (что, на мой взгляд, логично, ибо файл этот давно есть, а определения ассетов по старинке в основном конфиг-файле болтались).

Соответственно, если ассеты переопределяются для шаблона, то лучше их тоже вынести в отдельный файл, как, например, сделано здесь: common/templates/skin/experience/settings/config/assets.php (ассеты для шаблона experience).

НО! Если вы, как и раньше, определите конфиг-секцию head.default, то она точно также будет подхватываться движком и обрабатываться. Т.е. в этом плане обратная совместимость соблюдается.

Так что я не вполне понял, в чем суть проблемы.
0
Проблема в том, что head становится раньше assets и возникают проблемы с jQuery кодом…
0
Нужно придерживать какого-то одного подхода — либо по старой схеме подключать, либо по новой. Замените везде в конфиг-файлах:

$config['head']['default']['js'] — на $config['assets']['default']['js']
$config['head']['default']['css'] — на $config['assets']['default']['css']

и все будет хорошо
0
Уже сделал -).

Собственно речь о том, что в инструкции про это не сказано…
0
Спасибо, добавил в текст об этом
0
Дождались) Благодарю Вадим
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.