+1 голос
от (514 баллов) в категории Отладка
открыт от
Когда магазин в «продакшене» (им пользуются клиенты) не стоит отображать клиентам отладочные сообщения в то время, пока программист исправляет какую-то проблему. Поэтому нужно сделать так, чтобы отладочные сообщения выводились только для программиста.

1 Ответ

+2 голосов
от (514 баллов)
выбран от
 
Лучший ответ

Можно сделать следующую модификацию.

Отредактируем файл «/config/defines.inc.php»:

1 открываем этот файл и перед этим кодом:

/* Debug only */

if (!defined('_PS_MODE_DEV_'))

define('_PS_MODE_DEV_', false);

2 поместим следующий код (первые три строки – комментарий для программистов о модификации):

// may be helpful when the shop on the production but needed debug for a programmer

// enabling debug mode by get-param when _PS_MODE_DEV_ is false

// comment next 3 lines when the debugging has done

if (!defined('_PS_MODE_DEV_') && isset($_GET['debug_me']))

       define('_PS_MODE_DEV_', true);

else

Результат модификации должен выглядеть примерно так:

Чтобы программист смог активировать режим отладки на конкретной странице он должен указать дополнительный параметр в URL, например:

http://localhost/en/tshirts/1-faded-short-sleeve-tshirts.html?debug_me

Или так, если отключена опция 'Дружественный URL':

http://localhost/index.php?id_product=1&controller=product&id_lang=1&debug_me

Когда отладка закончена, то можно деактивировать эту возможность, закомментировав с помощью пары '//' те 3 строки нового кода, следующих после комментария, а можно удалить совсем тот код (если считаете, что больше не понадобится вам эта возможность).

Еще один вариант (более удобный): через установки и проверку cookie.

if (!defined('_PS_MODE_DEV_') && isset($_COOKIE['debug']))
    define('_PS_MODE_DEV_', true);

Устанавливать cookie очень просто стандартным инструментом для разработчика, который есть в каждом браузере.

Добро пожаловать на сайт. Здесь можно задавать вопросы по CMS PrestaShop и получать на них ответы.
...