воскресенье, 30 июня 2013 г.

XCN: Нутрянка авторизации

Авторизация пользователя в X-Cart Next заперта в классе \XLite\Core\Auth. Сей класс является синглтоном и вызов его методов выглядит как
\XLite\Core\Auth::getInstance()->methodName();
В классе заперта валидация пароля и пользователя, а также генерация подписи от пароля.

четверг, 27 июня 2013 г.

Git: Изменение последовательности коммитов

Итак, есть некий сайт/магазин и необходимо сделать кустому. Сливаем сайт, заводим в git, коммитаем кустому. А потом оказывается, что сайт за это время изменился. Сливаем сайт и коммитаем изменения в репозитарий. Может так получится, что "затрётся" кустома (в истории коммитов она, конечно, останется).
Задача, перенести кустому поверх изменённого сайта.

среда, 26 июня 2013 г.

XCN: Запрос по HTTP

Для таких запросов из PHP в X-Cart Next используется \PEAR2\HTTP\Request , обернутый в \XLite\Core\HTTP\Request.
Обертка практически пустая. Единственное, что она добавляет - перехват исключений и их логгирование. Ну и позволяет перекрывать этот класс в модулях, добавляя или меняя какой-то функционал. В остальном работа с этим классом не отличается от PEAR2-класса.

воскресенье, 23 июня 2013 г.

XCN : Отложенные задачи

В X-Cart Next есть механизм отложенных событий или отложенных задач, когда событие кидается сейчас, а его обработчик запускается в отдельном процессе позже.

четверг, 20 июня 2013 г.

XC4: Белый экран при заливке апгрейда-пака с XC45х на XC46x

Кратко


перед заливкой апгрейд-пака
*  отключить модуль 'Customer Reviews'
или
* включить опцию 'Use new module initialization routine'
или
* закомментарить вызов func_customer_reviews_init();  в
modules/Customer_Reviews/init.php


Подробнее

Если после заливки апгрейд пака XC4.5.x-XC4.6.0 в директорию X-Cart у вас появился белый экран или 500 (Internal Server Error)

и у вас включен модуль Customer_Reviews и отключена опция
'Use new module initialization routine'

то вы можете решить эту проблему так
1) Временно на время апгрейда закомментиров вызов
//func_customer_reviews_init(); в
файле
modules/Customer_Reviews/init.php


2)или временно отключить модуль Customer_Reviews через восстановленную админку или sql запросом
"update xcart_modules set active='N' where module_name='Customer_Reviews';" (при этом надо почистить кэш директорию var)

3)или временно включить опцию 'Use new module initialization routine' через восстановленную админку или sql запросом
"update xcart_config set value='Y' where name='use_new_module_initialization';"

четверг, 13 июня 2013 г.

XCN: Отладка по-быстрому

Если в X-Cart Next надо поотлаживаться, то лучше всего это делать, используя стандартный логгер, при помощи такой конструкции:

\XLite\Logger::getInstance->logCustom('debug', 'some message');