августа
14
2014
+3
Миграция с joomla на AltoCMS
Здравствуйте!
Хочу поделиться радостным моментом: я мигрировал с joomla на altocms. Ура, наконец-то, я могу забыть о joomla, так как она постоянно подвергалась взломам.
А вот сам сайт — trendyclub.org.
Хочу поблагодарить aVadim за разработку плагина по конвертации БД.
С помощью него я успешно перенес:
— категории
— материалы
— комментарии
— пользователей
На старом движке я использовал расширения jomsocial (социальная сеть), k2 (контент менеджер) и jcomments (компонент комментарий).
Если вы использовали стандартный контент менеджер joomla, то можете просто установить компонент k2, и в главной панели импортировать все статьи с com_content.
Для начала миграции с joomla на altocms нужно сделать несколько шагов:
1. Установить Alto CMS (нужно скачать самую последнюю версию с гитхаба)
2. Задать админу логин, отличающийся от admin (т.к. будет конфликт при переносе юзеров из Джумлы)
3. Таблицы Джумлы перенести в ТУ ЖЕ базу данных, с которой работает Альто (префикс таблиц Альто и Джумлы должен отличаться)
4. Активировать плагин migrator (его можете скачать с github)
5. Перейти по адресу site.com/migrator/ и следовать инструкциям
6. По окончании убедиться, что все сработало хорошо, и отключить плагин
7. Если использовали компонент jomsocial, то аватары пользователей из папки /images/avatar/ следует перенести в папку /uploads/images/avatar/, остальные загруженные изображения могут оставаться там, где лежат
8. После того, как поняли, что все ОК, таблицы Джумлы можно удалить из этой базы данных. Если что-то не так, что всю процедуру можно повторить. Предыдущие импортированные данные будут удаляться автоматически
ВАЖНО: плагин работает без авторизации, т.е. он может быть запущен любым посетителем сайта. Поэтому ни в коем случае нельзя оставлять его на работающем сайте после миграции!
После конвертации нужно изменить структуру URL. Так как в joomla ЧПУ немного отличается, то пришлось в настройках изменять шаблон (Админ панель->Настройка->Настройка сайта-> вкладка Ссылки), где указал %blog_url%/%topic_url%-%topic_id%.html (Категория/Статья-id)
Структуру мы поменяли, но в моем случае ЧПУ формировал компонент sh404sef! и тот Алиас, что был сгенерирован компонентом k2, который мне не подошел (были разные замены букв к примеру в альто 'є' => 'ye', а в sh404sef! 'є' => 'e').
Я решил переформировать ЧПУ по своей таблице замен, а именно сделал 3 шага:
1) Через инструмент phpmyadmin выполнил команду очистки адресов статей через команду «update prefix_topic set prefix_topic.topic_url='';»
2) Открыл таблицу замен /engine/libs/UserLocale/i18n/ru.php и сверил с таблицей sh404sef!.
3) После проверки замен можем приступить к формировании ЧПУ через генератор ссылок (Админ панель->Настройка->Настройка сайта-> вкладка Ссылки — Генерация ссылок)
Теперь у нас ссылки одинаковые, только в категории мешает нам в начале приставка /blog/.
Мы ее можем удалить с помощью хаков 2-х файлов.
Открываем файл /app/config/config.local.php и в нем добавляем редирект для каждой категории по такому примеру:
$config['router']['uri']['~^interer/?$~i'] = 'blog/interer/';
После чего при переходе по ссылке site.ru/interer/ у нас не будет возникать ошибка 404. Ну это не все. Адрес категории в шаблоне остались с приставкой /blog/
Делаем хак в файле /common/classes/modules/blog/entity/Blog.entity.class.php
Находим строчку
return Router::GetPath('blog') . $this->getUrl() . '/';
заменяем ее на новую или комментируем
return Config::Get('path.root.web') . $this->getUrl() . '/';
Не забываем после обновления движка поправлять строку.
Вот теперь у нас ссылки статей и категорий полностью совпадают с предыдущем движком.
Миграция с джумлы закончена.
Еще раз хочу поблагодарить aVadim за помощь в миграции сайта!
Похожие статьи
-
Конвертирование БД
(Конвертирование или конвертация?) В общем провел такой эксперимент (не вольно). После переезда с LS на AltoCMS 1.0.7 просто неимоверно возросла нагрузка на CPU. Страницы грузятся от 2 до 3 минут... Часто вылетает...
Да уж — раз плюнуть.
Если что со второй половины я вообще ничего не понял))
Ну и потом еще избавился от приставки /blog/