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

Fotomag.ua - всё?

AIN.UA сообщает о финансовых проблемах Fotomag.ua. Около года назад, когда проект был продан группе украинских бизнесменов, в этом интернет-магазине работало 300 человек. Сейчас уволены все, кроме IT-отдела. И, возможно, проект попробуют переделать в торговую площадку-аукцион наподобие Aukro.ua.

Полагаю, конкурировать "лоб в лоб" с Аукро - затея странная. Но может им удастся предложить покупателям какие-то интересные альтернативы? (Уж кто-кто, а конечные потребители от конкуренции только выиграют.) Впрочем, сильно в этом сомневаюсь, особенно если оглянуться на последние лет 5-10 жизни и "развития" Фотомага. Но посмотрим - вдруг чудеса случаются?

И, к слову, всем тем, кто в темах по юзабилити любит приводить примеры Фотомага и Розетки как бесспорных лидеров рынка -- вот она, отрезвляющая таблетка реальности. Размышляйте.

Opencart разослал продавцам расширений предупреждение о недопустимости ссылок на свои магазины

Opencart.com разослал всем продавцам расширений, которые пользуются для продажи разделом расширений на указанном сайте, письмо с предупреждением о недопустимости рекламирования своих сайтов в описаниях модулей и возможности покупки расширений напрямую, минуя отчисления площадке Opencart.com.

Отчисления в 20% от цены платных модулей идут на поддержку развития Opencart. Поэтому наличие в описаниях ссылок на сайты разработчиков, где модули можно приобрести напрямую или со скидкой (призывы к этому некоторые авторы модулей пишут прямо в описаниях, размещая таким образом их на сайте opencart.com), владельцами Опенкарт категорически не приветствуются.

Разрешаются ссылки на демо-сайты и на сайты техподдержки (саппорт-тикеты). Но озвучено условие, что на этих сайтах не должно быть возможности купить модули. Дополнительно просят использовать target="_blank" для своих ссылок.

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

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

Одно из таких писем я уже видел несколько дней назад - в конце расположен блок с рекламой нескольких (то ли 4, то ли 6) модулей. Выглядит HTML-письмо симпатично, мне понравилось.

Описание этого рекламо-предложения слегка различается (на данный момент я встречал его трижды: в блоге, в описании функции "Promote Extension" в акаунте продавца, теперь вот ещё в письме). В основном пишут о рекламе на главной странице. Но в блоге, если не ошибаюсь, было и про мелькающие блоки вверху страниц категорий и поиска.

Цена такой рекламы - $50 в сутки (по $35 на выходных). В день можно рекламировать до трёх своих модулей. Выбирается модуль и дата.

Похоже, в штате у них появился человек, ответственный за дизайн (заметно и по дизайну v2.0, и по улучшающимся письмам) и развитие продаж.

Новая система модулей OCMOD - Opencart Modification System

Начало появляться описание формата и отличий новой системы расширений OCMOD от использовавшейся ранее разработки: широко известного VQMOD, автором которой является Qphoria.

Суть системы расширений осталась та же самая, но XML форматы VQMOD и OCMOD отличаются, поэтому модули придётся переписывать. OCMOD - упрощённая версия VQMOD. В админке также добавлены удобства для загрузки новых OCMOD-расширений (Extensions / Extension Installer).

Например, основные отличия OCMOD от VQMOD: имеются операторы Replace, Before, After, Regex, Offset, Limit, отсутствуют ignoreif, log.

Отличается и работа offset.

Модули могут состоять из одного файла (должен иметь расширение .ocmod.xml) или нескольких, упакованных в архив с расширением .ocmod.zip. В архиве могут находиться XML, SQL и PHP файлы:

  • upload/*
  • install.sql
  • install.php
  • install.xml

Все файлы из папки `upload` будут скопированы в папку, куда установлен Opencart.

В install.sql можно добавить все необходимые SQL-запросы (create, drop, insert, update), которые должны быть исполнены при установке модуля. Каждый запрос должен заканчиваться символом ;.

Если модуль требует каких-то дополнительных действий для установки, PHP код надо разместить в файле `install.php`.

Остальные подробности можно будет узнать позже -- либо по мере появления новой документации по адресу https://github.com/opencart/opencart/wiki/Modification-System, либо путём изучения появляющихся модулей.

См. также:

  • Override Engine + VQmod for OpenCart 2.0 (J.Neuhoff). Это решение позволяет получить как новую систему Override Engine (OE), так и поддержку всех старых vQmod расширений (OE хорош именно для модулей, а вот для изменения шаблонов способ vQmod пока наиболее подходящий; плюс совместимость). Всё доступно свободно для скачивания и эксперименто. Предлагали Даниэлю. Кстати, автор vQmod (Qphoria) тоже высказался в топике за встраивание этого варианта OE+vQmod в Opencart 2.0. Он сказал: "Согласен. Я хочу, чтобы OE включили в ядро Opencart, а vQmod остался внешним расширением, каким он всегда был. OE или правильная система хуков -- это что-то, что ядро должно предлагать из коробки, тогда как vQmod был создан лишь как костыль, исправляющий отсутствие чего-то подобного в ядре. vQmod до сих пор имеет огромный смысл в Opencart, но я не вижу смысла в добавлении урезанного его варианта вместо того, чтобы сделать правильную систему."

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

Тотальные ограничения для анонимных пользователей ЯД, QIWI и т.д. с 16 мая

Яндекс.Деньги сообщают о новых ограничениях, которые вступят в силу 16 мая, со ссылкой на законы 115-Ф3 и 161-Ф3 (т.е. это касается всех российских платёжных систем).

Анонимным пользователям станет практически вообще ничего недоступно: ни переводы другим пользователям, ни получение переводов от них, ни вывод в банки и на карточки, ни покупка в нероссийских магазинах. У россиян 2 варианта: деанонимизация с помощью небольшой формочки на сайте (ФИО, номер паспорта и дата выдачи) или полная идентификация.

У остальных - только идентификация. В информации об офисах Яндекса (там можно было пройти идентификацию) исчезли Киев, Одесса, Симферополь, а также Екатеринбург, Минск, Новосибирск, Казань, Ростов-на-Дону. Остались только Москва и Питер... И есть ещё вариант по почте и с нотариусом.

В общем, насколько понимаю, в России без паспорта шагу ступить нельзя и гайки закручиваются по всем фронтам. Мобильный? Давай паспорт. Виртуальные деньги даже для какой-то мелочёвки? Давай паспорт. Прослушка? Давно. Уже и скайп признался, что полгода способен хранить все разговоры. GPS? Скоро, наверное, спортивные часы, смартфоны, навигаторы и GPS приёмники тоже будут регистрироваться по паспорту.

Подробнее о всех новых ограничениях Яндекс.Денег:

https://money.yandex.ru/doc.xml?id=526543

Обсуждения:

Opencart 1.5.6.2

12 апреля 2014 г. Ruslan Brest E-commerce » OpenCartОбсудить

Пару дней назад (10 апреля) втихомолку выложен Opencart v1.5.6.2. По ченджлогу - ничего особенного, разве что исправление некоторых ошибок:

Updates to the Paypal Express module to fix some issues during checkout.
Changed UTF-8 helper file to new code and updated the installer to check for iconv function or mbstring extension.
More info including commit links can be found in the change log: https://github.com/opencart/opencart/blob/v1.5.6.x/changelog.md
MySQLi database support available at install.

То есть исправлены какие-то ошибки

  • в email (поля "from" и "mail-to");
  • есть изменения в system/helper/utf8.php (которые, судя по багрепортам, могли приводить к проблемам с изображениями в файл-менеджере - сейчас вроде бы исправлено)
  • в инсталляторе добавлена проверка на наличие на сервере "iconv" и "mbstring".

В изменения не вглядывался. Остальное для рунета мало актуально: Paypal Express, Klarna, OpenBay Pro.

Ещё на гитхабе заметна работа по интеграции созданию "своего vQmod велосипеда". Остальное - какие-то мелочи, в голове не задерживающиеся. Хотя я туда последнее время мало заглядывал. Может есть ещё что-то, приближающее (или наоборот, задерживающее) версию 2.0.

Вот так примерно выглядят метания между встраиванием vQmod и своей реализацией:

  • b81ee97 2012-08-24 16:36:02 (Edgar gabaldi) Named vqmods columns
  • d731ba9 2012-08-24 16:38:29 (Edgar gabaldi) Merge branch 'vqmod'
  • 7a64c34 2013-02-15 23:20:26 (Daniel Kerr) started adding my own version of vqmod.
  • d02ec9b 2013-02-18 12:51:13 (Daniel Kerr) started to add my own version of vqmod. trying to get the code into a single class.
  • 4f64f0d 2014-04-10 14:35:00 (Daniel Kerr) changed the system to use vqmod
  • 7267145 2014-04-10 17:13:32 (Daniel Kerr) more vqmod work done
  • f14c938 2014-04-10 18:28:07 (Daniel Kerr) more vqmod stuff done
  • 4f2498b 2014-04-10 23:46:41 (Daniel Kerr) updated the vqmod code but i'm probably going to undo the vqmod changes and use the system i had before. vqmod seems to have to many features that are just not required.
  • 774ab43 2014-04-10 23:52:16 (Daniel Kerr) vqmod removed, using my own again

"Свой собственный vQmod" (modifications в терминологии Опенкарт) будет с другой реализацией (хоть и похожей на vQmod) - и насколько вижу, речь о совместимости со старыми расширениями там не идёт.

Знакомим `phpcs` (PHP CodeSniffer) и Sublime Text со стандартом оформления кода FuelPHP

UPD: При ближайшем рассмотрении оказалось, что отличий от PSR2 больше, чем табы вместо пробелов. Чтобы сделать автоматическую проверку, надо ещё многое переделать, а где-то и дописать. Так что я поспешил: с опубликованным вариантом проверять синтаксис PHP CodeSniffer'ом на соответствие правилам пока что неудобно.


Самый простой способ - поставить в редакторе/IDE правила автоформатирования PSR-2 и заменить использование пробелов в отступах на табуляцию (этим стандарты оформления кода, принятые в FuelPHP, отличаются от PSR-2). Заодно можно включить отображение пробелов и табуляций.

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

Для автоматизации проверки кода существуют разные инструменты: примеры (и важность с удобством применения этого непосредственно в редакторах/IDE) есть в статье http://philsturgeon.co.uk/blog/2013/08/php-static-analysis-in-sublime-text.

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

Знакомим phpcs и ST3 со стандатами оформления кода FuelPHP

  • sudo apt-get install php-codesniffer
    • phpcs -i - показать список установленных стандартов. Нужен psr2 (PSR-2)
    • Если его нет - обновляем полностью CodeSniffer (просто скопировать оттуда папку с PSR2/1 стандартом недостаточно)

    • Это, конечно, грубовато - обновлять напрямую, в обход apt-get , но он считает, что установлена самая свежая версия и более правильного способа я сейчас не знаю.

      cd ~/Downloads
      wget https://github.com/squizlabs/PHP_CodeSniffer/archive/master.zip
      unzip PHP_CodeSniffer-master.zip
      cd PHP_CodeSniffer-master
      sudo cp -r --parents -t /usr/share/php/PHP/ CodeSniffer CodeSniffer.php scripts
      cd scripts
      sudo mv /usr/bin/phpcs /usr/bin/phpcs.ORIGINAL
      sudo cp -t /usr/bin/ phpcs
    • в PSR-2 используются пробелы вместо табуляций и phpcs на них ругается. Сделаем свой стандарт "FuelPHP", основанный на PSR2. Рядом с папкой PSR2 создаём FuelPHP, в которой достаточно одного файла FuelPHP/ruleset.xml :

    • <?xml version="1.0"?>
      <ruleset name="FuelPHP">
       <description>The FuelPHP coding standard.</description>
       <!-- Include the whole PSR-2 standard -->
       <rule ref="PSR2">
       <!-- Redefine 2.4 Indenting -->
       <!-- Code MUST use an indent of tabs, and MUST NOT use 4 spaces for indenting. -->
       <exclude name="Generic.WhiteSpace.DisallowTabIndent"/>
       </rule>
       <rule ref="Generic.WhiteSpace.DisallowSpaceIndent"/>
      </ruleset>

      Проверяем: phpcs -i

      The installed coding standards are Zend, FuelPHP, PHPCS, PSR2, PSR1, Squiz,
      MySource and PEAR
  • install ST3 plugin "Sublime Phpcs" http://www.soulbroken.co.uk/code/sublimephpcs/
  • check config, see HOWTO: http://philsturgeon.co.uk/blog/2013/08/php-static-analysis-in-sublime-text
    • только мы вместо "psr2" теперь напишем свой "FuelPHP" в юзеркониге:

    • Содержимое /home/rb/.config/sublime-text-3/Packages/User/phpcs.sublime-settings :

      {
          "show_debug": true,
          "phpcs_executable_path": "/usr/bin/phpcs",
          "phpcs_additional_args": {
              "--standard": "FuelPHP",
              "-n": ""
          },
      }

Автоматическая проверка в ST3 тепрь работает.

Также можно использовать отдельно: phpcs --standard=fuelphp home.php .

Opencart, GNU GPL и модули

Opencart использует лицензию GNU GPL v3. Это одна из наиболее жёстких лицензий, накладывающая ограничения на закрытие исходного кода как производных программ, так и расширений (модулей, плагинов).

Ниже несколько цитат из GNU GPL FAQ, касающихся лицензирования и условий распространения модулей и расширений GPL-программ.

Далее...

Вернулся

Я вернулся. Несколько дней буду занят разгребанием накопившихся сообщений и дел. Важные сообщения постараюсь найти и ответить побыстрее.

Отсутствую с 20 до конца сентября

18 августа 2013 г. Ruslan Brest Дневничковое2

С 20-го августа буду отсутствовать. Без средств связи, так что отвечать не смогу.

Вернусь в конце сентября.