Оновлення (міграція) з virtuemart 2 на virtuemart 3
На момент написання статті вийшло вже 2 stable версії virtuemart 3, сумісні з joomla 2.5 і joomla 3. Це означає, що можна сміливо оновлюватися, не побоюючись численних помилок.
Розробники значно спростили процес оновлення, зберігши максимальну сумісність з virtuemart 2. Нову версію можна просто встановити через менеджер розширень (не потрібно міграція, як при оновленні з vm 1 на vm 2).
Після поновлення кількох сайтів до virtuemart 3 не було помічено серйозних проблем, все працює правильно. Звичайно, є деякі недоробки, але вони повинні бути усунуті в найближчих релізах.
- Оновлення до virtuemart 3.
- Оновлення до joomla 3.
- Оновлення розширень.
- Оновлення шаблону.
- Виправлення помилок.
перед оновленням
- Створіть резервну копію сайту.
- Тестувати оновлення найкраще на локальному сервері.
- Для правильної роботи на сервері повинен бути встановлений php 5.3.10+ (це мінімально необхідна версія, рекомендується php 5.4+) і MySQL 5.1. (Повний список технічних вимог).
- Створіть список всіх встановлених розширень. Уточніть їх сумісність з vm3 і joomla 3.
- Уточніть чи є версія використовуваного шаблону для joomla 3.
1 крок. оновлення virtuemart
Якщо в шаблоні немає папки \ html \ com_virtuemart \. то створіть її.
Переносите не всі підряд файли, а тільки ті, до яких вносилися зміни.
Якщо вносилися зміни в файл стилів \ components \ com_virtuemart \ assets \ css \ vmsite-ltr.css. то скопіюйте його в папку зі стилями шаблону \ templates \ імя_шаблона \ css.
Так само в папку \ templates \ імя_шаблона \ html \ перенесіть змінені файли модулів virtuemart.
Після перенесення всіх змінених файлів можна переходити до оновлення.
З офіційного сайту викачуємо останню версію virtuemart.
Розпаковуємо архів і через менеджер розширень встановлюємо спочатку com_virtuemart.3.x.x.zip, після цього com_virtuemart.3.x.x_ext_aio.zip.
Далі переходимо в Компоненти> virtuemart-aio і натискаємо Оновлення таблиць плагіна VM.

На цьому оновлення до virtuemart 3 завершено.
Ось так все легко і просто :).
2 крок. оновлення Joomla
Для оновлення до joomla 3 спочатку оновити до останньої версії в лінійки joomla 2.5.
Переходимо в Розширення> Менеджер розширень> Оновлення та натискаємо кнопку Очистити кеш.
Далі переходимо в Сайт> Панель управління> Оновлення Joomla.

У правому верхньому кутку натискаємо кнопку Налаштування в поле Сервер оновлення вибираємо Дистрибутиви Joomla з тривалим періодом підтримки.
Після збереження Joomla запропонує для установки останню доступну версію joomla 2.5.28.

Натискаємо кнопку Встановити оновлення.
Після успішного оновлення переходимо в Розширення> Менеджер розширень> База даних. Якщо після поновлення виникли якісь помилки, натискаємо кнопку Виправити.

Тепер можна оновлюватися до Останнім версії joomla 3. Знову переходимо в Сайт> Панель управління> Оновлення Joomla. натискаємо кнопку Налаштування і вибираємо Дистрибутиви Joomla з короткостроковою підтримкою.

Після збереження обновляємося до joomla 3.

Після успішного оновлення (при необхідності) виправлення помилок в базі даних (Розширення> Менеджер розширень> База даних) адмін панель повністю зміниться. Спочатку, швидше за все, вона здасться не дуже зручною, але звикання настане швидко 🙂

3 крок. оновлення розширень
Складіть список всіх встановлених розширень на сайті.
Якщо розширення поки не підтримує joomla 3 і virtuemart, то видаліть його.
Частина розширень можна оновити автоматично в Розширення> Менеджер розширень> Оновлення.

Якщо розширення не підтримує автоматичне оновлення, то встановіть його стандартно через Менеджер розширень.
4 крок. оновлення шаблону
Якщо шаблон побудований на одному з фреймворків (Warp, T3 Framework, Gantry і т.д.), то його можна автоматично оновити через Менеджер розширень. Головне перед оновленням збережіть змінені файли (файли стилів, фавіконки і т.д.) і перепишіть їх після оновлення.
Якщо сайт працює на безкоштовному або платному шаблоні, який не підтримує автоматичне оновлення, але на сайті розробника скачайте нову версію для joomla 3 (якщо вона є) і встановіть її. Попередньо так само скопіюйте змінені файли і перепишіть їх після оновлення.
5 крок. Виправлення помилок
Якщо після оновлення не з'явилося жодної помилки в роботі сайту - це велика удача і потрібно обов'язково це зазначити 🙂
Якщо вам не так пощастило і сайт перестав працювати (показується порожня сторінка) або працює з помилками, потрібно в System> Загальні налаштування> Сервер активувати показ помилок.

Так само в Virtuemart> Установки> Магазин активуємо показ повідомлень про помилки.

Після цього можна буде дізнатися який файл викликає помилку в роботі сайту.
Тобто я правильно зрозумів, що при перенесенні файлів, в які були внесені зміни в папку шаблону, virtuemart 3 будемо підключатися до них?
Так все правильно
І ще я звернув увагу, що файли в virtuemart 3, що відповідають на стилі трохи відрізняються
Наприклад, в virtuemart 2 файл називається vmsite-ltr, а в virtuemart 3 vm-ltr-site
Це не буде мати значення і якщо файл vmsite-ltr від virtuemart 2 буде знаходитися в папці з шаблоном, то він буде працювати?
vm-ltr в папці з шаблоном буде працювати
Спробуйте додати ще один тестовий товар.
Можливо, після цього "фантомний" пропаде.
Доброго дня.
Після поновлення вискакує "Помилка 500. JHtmlBehavior :: mootools not found."
хто зустрічав як побороти?
В гуглі є варіанти замінити
"JHtml :: _ ( 'behavior.mootools'); і / або JHtmlBehavior :: mootools ();"
на
"JHtml :: _ ( 'behavior.framework');"
але не знайшов у себе таких рядків.
Погано шукав, таки знайшов виявилося по шляху:
"/templates/Ваш_шаблон/layouts/default.php" у мене рядок 103
Оновив до VM 3.0.8, Joomla 3.4.1
У вікні Virtuemart-> Замовлення в поле "Вид для друку" є кнопочки для створення рахунку і накладної в pdf. Якщо їх використовувати з'являється помилка, та ж помилка з'являється при формуванні листи з вкладенням:
Спробуйте в Virtuemart> Замовлення і покупці> Покупці відзначити чекбокс з адміністратором і натиснути кнопку Продавець.
Аналогічно.
/administrator/index.php?option=com_virtuemart - та ж помилка. Є варіант перезаліть? У сенсі СЕО посилання і товари якось витягнути, перевстановити вирт з нуля і занести базу назад? (