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

- Posted in Opencart by

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

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

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

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

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

- Posted in Opencart by

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

  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

- Posted in Opencart by

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

Price must be 20.00 USD or more!

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

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

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

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

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

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

Ковыряюсь в Multimerch

- Posted in Opencart by

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

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

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

- Posted in Opencart by

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

Про версию 2.2

- Posted in Opencart by

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

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

- Posted in Opencart by

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

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

- Posted in Opencart by

Просматривал лог коммитов и случайно заметил появление и потерю папки "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 делает своё дело. Осталось отстранить Даниэля от разработки, и будет всем счастье.

Отправка копий вопроса с сайта всем админам магазина

- Posted in Opencart by

Оказалось, в Opencart 2 на странице обратной связи (information/contact) письмо отсылается только на главный email (владельцу магазина). Если какие-то адреса для дополнительных оповещений в админке заполнены - здесь они всё равно игнорируются.

Это неудивительно, поскольку в опенкарт функционал дублируется. Здесь - тупо забыли про дополнительные адреса.

Чтобы исправить, надо открыть файл catalog/controller/information/contact.php. В самой первой функции этого файла (public function index()) будет виден кусок кода отправки почты:

$mail = new Mail($this->config->get('config_mail'));
$mail->setTo($this->config->get('config_email'));
$mail->setFrom($this->request->post['email']);
$mail->setSender($this->request->post['name']);
$mail->setSubject(sprintf($this->language->get('email_subject'), $this->request->post['name']));
$mail->setText(strip_tags($this->request->post['enquiry']));
$mail->send();

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

// Send additional alert emails
$emails = explode(',', $this->config->get('config_mail_alert'));
foreach ($emails as $email) {
        $email = trim($email);
        if ($email && preg_match('/^[^\@]+@.*.[a-z]{2,15}$/i', $email)) {
                $mail->setTo($email);
                $mail->send();
        }
}

Теперь копии письма будут получать все администраторы магазина, перечисленные в поле дополнительных email-адресов (см. настройки магазина).

Совместимость

Приведённый код - из oc2011.

В oc2101/oc2102 кода чуть больше, но суть остаётся та же: добавлять после $mail->send(); и перед $this->response->....

Соответственно все версии, что между ними (oc2020, oc2031), лечатся аналогично. ocStore тоже.

Ocmod не писал, хотя наверное стоило бы - для тех, кто не хочет лазить по FTP и знает только админку. Если очень надо - напишите в комментарии, постараюсь найти время и выложить.

Русский язык / русский перевод для Opencart v2.0 обновление до версий v201x

- Posted in Opencart by

Информация для покупателей модуля.

Доступен перевод для версий Opencart 2.0.1.0 и 2.0.1.1 (v201x).

По ходу его подготовки были замечены мелкие ошибки и опечатки в переводе для 2.0.0.0. Небольшое обновление для 2.0.0.0 планируется завтра. Завтра же наверняка будут ещё некоторые обновления по 2.0.1.1 (остался список тудушек).

Критичных обновлений не будет: в основном косметические правки и мелкие опечатки. Сегодняшняя версия вполне работоспособна и может использоваться.

Единственное что может быть критично - пользователям версий 2.0.0.x в файле catalog/language/russian/mail/customer.php надо изменить строку:

$_['text_welcome'] = 'Добро пожаловать и благодарим Вас за регистрацию в %s!'; // %s - название магазина

Общий список изменений можно видеть в history.txt.

Page 1 of 2