Что нового в OpenCart 4?
Итак, только что я решил протестить новую версию OpenCart 4, которая кстати на момент начала написания статьи (18.12.2020) еще не вышла.
Итак, мое первое впечателние такое: если OpenCart 3 был версией чисто ради смены технологии и ничем не мог порадовать пользователей, то в OpenCart 4 уже имеются действительно полезные нововведения по функционалу.
Изменения в OpenCart 4 для пользователей
Встроенное мультиязычие
Добавлена метка языка в ссылках сайта. Причем языковая метка есть как в системных сслках, так и при использовании ЧПУ. С моей личной точки зрения это крайне важное изменение. Раньше приходилось ставить специальный модуль, чтобы обеспечить наличие разных ссылок для разных языковых версий сайта. Теперь это есть из коробки. И это здорово!
Появились встроенные Cron-задачи
wget "http://opencart-4000b.loc/admin/index.php?route=common/cron" --read-timeout=5400
Варианты товара в OpenCart 4
Также сразу бросилось в глаза появление вариантов товара. Пока что я не знаю точно, как это работает. Но, знаю, что по требованию той же Розетки, каждый цвет товара надо загружать как отдельный товар. И люди мучаются, придумывая, как под каждую опцию создать псевдотовар. Теперь, теоретически с этим должно быть меньше проблем
Текстовый редактор CKEditor вместо Summernote
Summernote не самый удобный редактор. Большинство ставят модификаторы, его заменяющие на TinyMCE или CKEditor (кстати, в сборке ocStore изначально была возможность переключения на CKEditor).
Единственное, что, хотель бы изменить в этом редакторе, так это высоту области для ввода текста. Уж как-то неудобно писать текст, когда надо прокручивать текстовое поле.
Другие изменения в OpenCart 4
- Теперь товар совсем не сохраняется, если не вписать ЧПУ (SEO URL).
- Немного изменился менеджер изображений. Ничего существенного, просто на 1 клик меньше за счет того, что иконка отображаются под фото.
- В списке товаров в админке Статус товара отображается зеленым или красным прямо в стоблце с Названием товара. Это чуточку более приятно, чем серая надпись в отдельном столбце.
- Добавлен колокольчик уведомлений
Изменения в OpenCart 4 для разработчиков
---
В OpenCart 4 больше не будет OCMOD. Теперь все изменения делаются исключительно через События. Этот факт приводил в недоумение разработчиков вот в этом обсуждении - https://opencartforum.com/topic/169300-opencart-4x-is-coming/
Вполне может быть, что OCMOD до свидания, да здравствует vQmod ( вернемся к истокам :) ).
---
Изменен адрес для размещения файлов расширений
- Было: admin/controller/module/account.php
- Стало: extension/opencart/admin/controller/module/account.php
---
Используется Bootstrap 4.5.3. А это до свидание кривым рядам с товарами, которые встречаются даже в очень продаваемых шаблонах.
---
Используется Font Awesome Free 5.15.1
---
Добавлены неймспейсы. Видимо, решили привлечь на свою сторону программистов, которые начали свой путь с PHP 7 и просто не понимают, как так может быть, чтобы в файле не надо было прописывать заветное слово namespace.
---
Добавлен один общий контроллер для управления внешним видом превьюшки товаров в любых списках товаров (категория, производитель, похожие товары и тд)
$data['products'][] = $this->load->controller('product/thumb', $product_data);
Это означает, что вся верстка превьюшек товаров для всех списков товаров теперь находится в одном файле catalog/view/template/product/thumb.twig
Но это касается только оформления. Обработка данных для формирования списка все еще происходит в каждом отдельно взятом контроллере в коде:
foreach ($products as $product) {
...
---
Все SQL-запросы теперь принято писать с использованием грависов (`). К примеру:
$query = $this->db->query("SELECT `filter_id` FROM `" . DB_PREFIX . "category_filter` WHERE `category_id` = '" . (int)$category_id . "'");