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

E-commerce

Opencart 2.0.1.1 bugfix: default language fallback

14 января 2015 г. Ruslan Brest Howto » Web development » E-commerce » OpenCart2

Если вы пользуетесь не только английским языком, то вам наверняка попадались отсутствующие строки наподобие text_home, button_continue, button_login.

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

Но всё равно не учтён один момент. Далее...

Opencart 2.0.1.1 bugfix: отправление отзывов к товару

12 января 2015 г. Ruslan Brest Howto » Web development » E-commerce » OpenCart9

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

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

Далее...

Opencart 2.0.1.1 bugfix: OCMOD Multiline fix

В OCMOD нами добавлена поддержка атрибута "quote" (bool) в режиме regex. Это позволяет делать замену не строки, а набора строк. С этим переключателем используется функция preg_quote:

preg_quote() takes str and puts a backslash in front of every character that is part of the regular expression syntax. This is useful if you have a run-time string that you need to match in some text and the string may contain special regex characters.
The special regular expression characters are:
. \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

После этого preg позволяет многострочную замену. Обычный режим работы продолжает работать по-старому: просто добавляется опция, с которой становится возможно использовать многострочные замены в ocmod XML.

Рекомендуется всем: стандартный функционал не затрагивается, появляется новый.

Также описано на OpencartJazz: OCJ :: OCMOD Multiline fix. Там прикреплён изменённый файл, но пока его можно скачать только после регистрации и "покупки" за 0.00. Будет время - починю это неудобство.

diff --git a/admin/controller/extension/modification.php b/admin/controller/extension/modification.php
index 086a65c..7159ffb 100644
--- a/admin/controller/extension/modification.php
+++ b/admin/controller/extension/modification.php
@@ -307,12 +307,18 @@ class ControllerExtensionModification extends Controller {
 } else {									
 	$search = $operation->getElementsByTagName('search')->item(0)->textContent;
 	$limit = $operation->getElementsByTagName('search')->item(0)->getAttribute('limit');
+	$quote = $operation->getElementsByTagName('search')->item(0)->getAttribute('quote');
 	$replace = $operation->getElementsByTagName('add')->item(0)->textContent;
 										
 	// Limit
 	if (!$limit) {
 		$limit = -1;
 	}
+
+	// Quote
+	if ($quote=='true') {
+		$search = preg_quote($search);
+	}
 
 	// Log
 	$match = array();

Opencart 2.0.1.1 bugfix: OC2 extension installer

26 декабря 2014 г. Ruslan Brest Howto » Web development » E-commerce » OpenCart1

Подарок тем пользователям OC2, которые ловят ошибки JSON Error при попытках использовать стандартный установщик расширений в OC2 (при правильно прописанных параметрах в настройках магазина на вкладке FTP).

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

  • Исправлена ошибка "PHP Warning: Invalid argument supplied for foreach() ... on line 333";
  • Подавление вывода предупреждений "PHP Warning: ftp_mkdir(): Create directory operation failed ... on line 338" (возникает всегда - при попытках создания существующих каталогов, таких как catalog, admin, admin/controller и т.д.);
  • включение пассивного режима FTP для устранения ошибки "PHP Warning: ftp_put(): Illegal PORT command ... on line 345"

Далее...

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

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

Доступен перевод для версий 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.

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

Выпущен русский перевод для Опенкарт версий v2.0.

Из интересного - есть автоматическая установка средствами Opencart Extension Installer (новый инструмент в версии 2.0). Вроде и работает, но местами у некоторых клиентов встречаются грабли и проще поставить по-старинке, вручную. Одно можно сказать точно: если вы этой фишкой пользуетесь и настроили себе, установка других ocmod-модулей происходит без проблем, -- то и с установкой нашего модуля русского перевода проблем не будет: установка происходит буквально в один-два шага (выбрать архив и подтвердить установку).

Также сделали модуль, который помогает переводить ресурсы в базе на русский и обратно на английский, если потребуется. Это все статусы и география, которые устанавливаются с демо-данными.

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

Ветка поддержки модуля на форуме здесь - пишите об ошибках.

4 года экспериментов с сообществом - поддержка бесплатного русского перевода для Опенкарт 1.5.x, считаю законченным. Интерес (в смысле дай) велик, а поддержка и совместная работа - практически на полном нуле. Поэтому перевод для версии 2.0 решено сделать платным, за символическую цену в $2 (WMZ, WMU, П24, Paypal, карточки). Владельцам QIWI и Yandex-Денег - тоже в оплату картами VISA/MC мгновенного выпуска.

Перевод для v15x оставлен на гитхабе, а ветки версии v2.0 перенесены в приватный репозиторий.

Модуль также можно купить на opencart.com: Russian language translation v2.0.x / русский перевод, там цена $10 по техническим причинам.

[opencart][BUG] Возможно назначить для категории родителя из своей же подветки

Ой, вэй! Наткнулись на фееричный косяк. Родителем категории можно назначить какой-то из подчинённых узлов той же ветки. Например, перенести `Category` с верхнего уровня в `Category > Monitors > test1`.

Баг присутствует в oc1564 и ocs15512. Другие версии и сборки не проверялись.

(oc - Opencart, ocs - ocStore, как обычно.)

Думаю, чтобы пофиксить по-быстрому, достаточно в GUI админки исключить из списка автодополнения в поле родительской категории все подчинённые узлы ветки.

Будет время - допишу здесь рецепт.

CKeditor в Opencart 2.0 заменили на Summernote

13 августа 2014 г. Ruslan Brest Web development » E-commerce » OpenCart2

В Opencart 2.0 в админ-части заменили WYSIWYG редактор: CKeditor убрали, вместо него теперь используется Summernote.

http://hackerwins.github.io/summernote/

Появился в доступе релиз Opencart v2.0 ALPHA

8 августа 2014 г. Ruslan Brest E-commerce » OpenCartОбсудить

Доступен релиз Opencart v2.0 ALPHA.

Скачать можно здесь: https://github.com/opencart/opencart/releases

Либо берёте последнее состояние проекта из ветки master - там могут быть ещё какие-то изменения, не отмеченные тегом следующей альфы или релиза.

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

Также оказалось, что у Opencart появился ещё один багрекер помимо Github-а: https://opencart.atlassian.net/

Красивенький, конечно. Но решение странное - лучше бы они разобрались и обустроили свой Github Issues раздел (метки, milestones), и начали наконец-то там вести нормальную работу, связывая коммиты с номерами задач и багов. Хотя, конечно, они вполне могут связать гитхаб со своим атлассианом и с ним коммиты связывать через номера задач. Но думаю, это из области несбыточных надежд - увидеть нормальный процесс по более-менее общепринятым практикам.

Зарегистрировавшись в новом багтрекере, появится возможность

  • создавать задачи (багрепорты)
  • комментировать
  • голосовать за задачи

С плагином "Jira Capture" можно облегчить создание багрепортов: сделать скриншот, откомментирвоать проблему и даже включить информацию об окружении (операционная система, версия броузера, размер окна, экрана, плагины и т.п.)

Фичреквесты (предложения) в этом багтрекере не приветствуются, только ошибки. Для запросов на новые идеи Opencart планирует сделать ещё один сайт, где наверное будет система голосования за то или иное предложение. Подробностей не сообщают, пишут лишь, что это будет сделано после выпуска релиза версии 2.0, чтобы сделать роадмап для v2.1.

vQmod, ocmod

Qphoria написал, что сейчас будет рассматривать и сравнивать ocmod" со своим vQmod. OCMOD - это новый встроенный механизм модификаций опенкарт, аналог vQmod. Если "ocmod" окажется достаточно хорош, vQmod вряд ли будут портировать на v2.0:

We are looking at ocmod and vQmod to see what has changed and if it is worthwhile to port vQmod to 2.0 or not or if ocmod is good enough.

Также напомню, что разработчик JNeuhoff уже предлагал Даниэлю готовое решение, которое интегрировало vQmod в Opencart. Было это несколько месяцев назад. Но здесь вечное "мы пойдём своим путём" - сначала декларировалось, что "ocmod" будет сильно упрощённой версией синтаксиса vQmod (синтаксис несовместим при этом). Потом постепенно по мере натыкания на разные ситуации и вопросы от разработчиков возможности "ocmod" всё болше и больше подтягивались к vQmod... Бред, в общем. То же самое, но с другими колсами, где преимущества и зачем убирать работающий инструмент, заменяя его на тот, под который все расширения переписывать придётся, -- вопрос открытый. Я смысла таких решений не понимаю.

На форуме пока предостерегают от бурного использования OCMOD, поскольку он ещё будет подвергаться модификациям.

Немного о новой системе модификаций написано в Github's Opencart Wiki: