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

Перевод Opencart 1.5.x

Русский перевод Opencart: v1.5.0.5 - 1.5.5. Информация о других переводах (русский, украинский язык)

Quickcheckout: one-page simple checkout

Quickcheckout: one-page simple checkout

Ковыряюсь в Multimerch

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

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

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

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

Про версию 2.2

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

Sticky-меню и sticky-footer - кошмар для мобильных пользователей

Что за тренды такие? То делают повсеместно буквы такие громадные, как будто люди без очков на Земле кончились. А те, что остались, обожают листать по 5-10 строчек текста вместо того, чтоб читать. Там, где легко 50 помещалось до того, как дизайнерам не сказали, что теперь это круто. Были палмы с экранами 160x160 и 320x320 - на них комфортно помещалось 20-25 строк текста. Теперь экраны телефонов в 3 раза больше физически, разрешение то 480 на хрен-знает-сколько, то 800x480. А количество строк текста стало не 50, а 20 или и того меньше меньше...

Теперь вот ещё замечаю чуть ли не на каждом сайте то меню, то футер с соц-иконками, которые хотят остаться на экране постоянно.

Алё! Вы вообще представляете, сколько места остаётся на гигантских по вчерашним меркам экранах современных телефонов для полезного текста, за которым приходят пользователи? Мне даже на нетбуке часто очень некомфортно оказывается из-за всех этих стики и тем более поп-апов с подписками и предварительной дружбой в соцсетях.

Желаю всем веб-мастерам поставить на sticky-menu кнопку закрытия. И отслеживать аналитику кликов по убиранию вашего мусора с наших экранов. Не нужно на экране постоянно ни меню, ни футер, ни соцкнопки. Мы прекрасно помним, где они находятся, а время нахождения на сайте эти ухищрения не увеличат. Скорее уменьшат. Видеть кусочек полезного контента сквозь крохотную оставшуюся амбразуру на весьма больших экранах мобильных устройств и одновременно радоваться такому неудобству - задачи несовместимые.

А ещё "радуют" выпрыгивающие на смартфоне поп-апы, которые намного больше экрана телефона и закрыть их невозможно, т.к. изменение масштаба на странице заботливо вырезано и недоступно, а при прокрутке окошко позиционируется посредине.

Лайфхак: как разделять разговоры по темам в Skype

Удалось найти решение давно мучившей проблемы: как разделить разговоры в скайпе по темам, сделать подобие тредов?

Решение - создавать чаты. И если на троих и более это не проблема, то попытка создать групповой чат (Conference Call) на двоих в скайпе приводит к звонку (!). Дятлы.

Решение кроется в скрытых командах скайпа, полный список которых можно увидеть, набрав в сообщении /help. Итак, чтобы создать чат на двоих и обсуждать там вопросы только по определённой теме (проекту), надо сперва из главного меню Скайпа создать групповой чат (Conference Call) на троих участников, а затем третьего убрать командой /kick skypename.

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

How to run rsync via non-standard ssh port

9 февраля 2016 г. Ruslan Brest Linux » Howto » Web developmentОбсудить

Не знали, как запустить rsync через нестандартный порт (при работе через SSH, без ответного Rsync демона на сервере)?

Теперь знайте:

rsync -avz -e "ssh -p 12345" ./public_html/ username@yourserver.com:/var/www/html/

Здесь 12345 - номер порта, username - ваш логин и yourserver.com - доменное имя или IP вашего сервера.

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

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

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

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

Оказалось, в 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 и знает только админку. Если очень надо - напишите в комментарии, постараюсь найти время и выложить.