Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

OpenCart

Почему в Opencart 3 в шаблонах Twig вместо PHP

DK про то, почему Twig вместо PHP:

https://forum.opencart.com/viewtopic.php?p=678904&sid=1dd5642d452c36914554804520e09de4#p678904
by Daniel » Thu Jul 06, 2017 12:00 am
we needed to switch from php templates otherwise we could not have a theme editor or have php editable code on the cloud.

В общем, всё движется к "опенкарт в облаке" как SaaS: ядро недоступно, снаружи шаблоны и может ещё что-то-там пользовательское. И внутри будет какой-то редактор шаблонов, как и добавленный редактор языковых переводов.

Opencart 3 кажется можно уже начинать смотреть/использовать

А тем временем уже 3.0.1.2. Тихо-мирно, без помпы, анонсов и рассылок.

Похоже, на Opencart 3 уже можно смотреть без риска потонуть под откровенными ошибками и недосмотрами (обычное дело с их x.x.0.0 "релизами").

UPD: только написал, и через день вышел релиз 3.0.2.0.

Ещё ссылки по теме Opencart 3:

Как работает автоматическое определение языка в Опенкарт

Для начала давайте разберёмся, как это всё устроено в браузерах и этих наших интернетах.

  1. Человек в настройках браузера обычно имеет возможность указать один или несколько языков, которые он понимает и предпочитает. Ищите в настройках что-то вроде "Preferred languages" (предпочитаемые языки). В браузерах попроще, с прицелом на чайников и минимумом настроек, локаль может браться системная или быть вшита в локализованный софт (без возможности настройки пользователем).
  2. Браузер отдаёт эту информацию сайтам в HTTP-заголовках Accept-Language при всех запросах. Этим он сообщает сайтам: если есть контент на одном из языков из моего списка - дайте мне его! (Если нет для первого - давайте для следующего по списку; если вообще ничего нет - давайте что там у вас есть по умолчанию). Варианты, которые встречаются у посетителей ваших сайтов, можно найти в Google Analytics, Яндекс.Вебмастер, Awstats, Piwik и других подобных системах веб-аналитики. Что отдаёт ваш браузер сайтам, вы можете увидеть в инструментах разработчика, посмотрев на HTTP-заголовки.
  3. Сайт может анализировать или игнорировать эти заголовки, реагируя на указанные предпочтения или нет.

Теперь Опенкарт. Мне кажется, 9 из 10 пользователей этого движка понятия не имеют, что это за строчка в описании языка в админке со всякими ru, ru-ru, uk, uk_UA и т.п. Теперь догадываетесь?

Это - простой список локалей, которые браузер может передать в заголовках. И на которые мы имеем возможность среагировать. Если у нового пользователя опенкарт язык сайта ещё не выбран (и не записан в куках), то Опенкарт смотрит на HTTP-заголовки Accept-Language. И сравнивает их с тем, что мы понаписали в админке для русского, украинского и других языков.

Поскольку браузеры обычно дают выбирать языки и локали из списка, а не прописывать их вручную, то там чаще всего будет код языка или языка и региона. Например: ru, ru-ru, ru-RU, ru_ru, ru_RU. В Украине бывает uk (украинский язык), ru_UA, uk_UA. Ну и ru-UA, uk-UA до кучи.

Обычно локаль указывается с подчёркиванием "_", но жёстких стандартов по этому поводу кажется нет. И нередко можно встретить минус, тире или как там его правильно называть в типографике: "-". То же самое касается регистра символов в коде страны. Надо прописать все возможные комбинации, так как Опенкарт не приводит их к нижнему регистру при сравнении (смотрел на версии 2.1.0.2 - думаю, в остальных так же).

Итого: у вас в опенкарт админке в настройке языка должен быть список языков/локалей, которые могут запросить браузеры ваших посетителей (смотрите логи и аналитику и подстраивайтесь под своих посетителей). И этой настройкой вы определяете, какой язык им отдать при первом посещении вашего сайта ("угадать" его предпочтения).

Надеюсь, вам стала понятней эта внутренняя кухня автоматического определения языка.

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

Минимальная цена расширений на Opencart.com теперь уже 20USD

На опенкарт.ком нововведение:

Price must be 20.00 USD or more!

Раньше нижняя планка была 10$.

И фиг теперь отредактируешь описание - вместе с этим надо и цену поднимать.

Ещё там после переделки есть чудесатое поле "License period" (от 1 до 12 месяцев). Которое в админке имеет один смысл, а в магазине расширений - другой.

В админке у продавцов это поле расположено в одной строке с ценой на модуль. И логика получается такая: за N баксов модуль продается и доступен 1-12 месяцев. Дальше покупай повторно. Это когда-то обсуждалось на англоязычном форуме и оттуда я помню логику работы нововведения.

Но! Самое интересное, что в пользовательском интерфейсе (в магазине расширений) это поле невменяемо названо не сроком лиценции, а сроком бесплатной поддержки! Офигеть. Не бесплатных обновлений (если будут появляться), не сроком доступности модуля для скачивания, а вот так в лоб: 12 Months Free Support (ну, например). То есть купил кто-то модуль на нестандартный шаблон - и ты ему целый год должен все допилы бесплатно, не говоря уже о бесплатной адаптации под нестандартный шаблон. Потому что "у тебя на сайте так написано".

Consistency в очередной раз в пролёте. Опенкарт такой опенкарт...

Ковыряюсь в Multimerch

Ковыряюсь в Multimerch. Той версии, которая ещё бесплатной была - 6.какая-то, если правильно помню.

Люди, вы меня улыбаете. Я думал, Даниэль - один такой уникум, который даже индексы в БД расставить не может. Нет, не один.

Шаблоны в Опенкарт 2.3 переводят с PHP на движок Twig

Начиная с версии 2.3, Опенкарт переключит стандартный шаблонный движок с PHP на формат Twig-препроцессора. Обычный PHP обещают тоже оставить: если у файлов шаблонов расширение .tpl - используется PHP для рендеринга, если .twig - то шаблонный движок Twig.

Про версию 2.2

Мы начали адаптировать модули под эту версию, но стали натыкаться на кучи изменений, которые теперь возвращаются авторами опенкарт назад, на исходные позиции. Мы боремся-боремся с нововведением и глюками, а потом заглядываем в репозиторий и видим, что там это тоже обнаружили и вернули как было в 2.1.x... То есть это какая-то экспериментальная версия-выброс, решения из которой дальше не пойдут. В итоге мы решили заморозить все работы по адаптации для 2.2 в надежде дождаться нормальной версии.

Первые обзоры Opencart 2.2

Оперативненько! Появились первые годные обзоры Opencart v2.2.0.0:

С версии 2.2 опенкарт будет использовать Composer

18 января 2016 г. Ruslan Brest E-commerce » OpenCartОбсудить

Просматривал лог коммитов и случайно заметил появление и потерю папки "vendor".

Штоооооооооо? Composer в опенкарте????

И таки да, в корне есть `composer.json`:

{
    "name": "opencart/opencart",
    "type": "project",
    "description": "OpenCart",
    "keywords": ["opencart", "ecommerce", "framework", "opensource"],
    "homepage": "http://www.opencart.com",
    "license": "GPL-3.0+",
    "require": {
        "cardinity/cardinity-sdk-php": "^1.0",
        "braintree/braintree_php" : "3.2.0",
        "leafo/scssphp": "0.0.12",
        "php": ">=5.4.0"
    }
}

В `install.txt`:

COMPOSER OR NOT TO COMPOSER
From version 2.2 composer has been added to aid developers who want to use composer libraries. 2 versions of OpenCart
will become available, one compiled and one non-compiled (composer.json only - no files in vendor folder).
We STRONGLY advise leaving the vendor folder outside of the webroot - so files cannot be accessed directly.
Composer installing is extremely simple - https://getcomposer.org

Что в переводе на русский значит: начиная с версии 2.2, в опенкарт добавлен Composer для тех, кто понимает. Будет доступно 2 версии Опенкарт: одна скомпиленная (со всеми нужными либами), другая - только с composer.json (для тех, кто пользуется composer-ом).

Поразительно.

James Allsup делает своё дело. Осталось отстранить Даниэля от разработки, и будет всем счастье.