Как вывести php массив в Opencart?
OpenCart 3 использует шаблонизатор Twig
Для вывода массива существует специальная функция dump.
<pre>
{{ dump(categories) }}
</pre>
По умолчанию она отключена!
Вот инструкции как включить функцию dump для 3.х версии, 2.х версии и для 1.х версии
Но ни одна из них не помогла.
Рабочая инструкция для OpenCart 3.0.2.0
В файле
system/library/template/twig.php
Найти строку
$config = array('autoescape' => false);
Заменить на
$config = array('autoescape' => false, 'debug' => true);
Ниже нужно найти строку
$this->twig = new \Twig_Environment($loader, $config);
И ниже добавить строку
$this->twig->addExtension(new \Twig_Extension_Debug());
Всё!
Теперь нужно очистить кеш модификаторов.
Создание модификатора
Теперь давайте автоматизируем эту всё работу.
Создадим файл install.xml и добавим в него следующее содержимое
<?xml version="1.0" encoding="utf-8"?>
<modification>
<name>[OCN] Twig Debug</name>
<code>ocn__twig_debug</code>
<version>3.0.2.0</version>
<author>Ишутин Павел</author>
<link>https://xn--h1aapse3a.xn--p1ai/twig-dump-opencart/</link>
<date>07.04.2021</date>
<file path="system/library/template/twig.php">
<operation>
<search trim="true"><![CDATA[$config = array('autoescape' => false);]]></search>
<add position="replace" trim="true"><![CDATA[
// ocn__twig_debug
$config = array('autoescape' => false, 'debug' => true);
// ocn__twig_debug
]]></add>
</operation>
<operation>
<search trim="true"><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search>
<add position="after" trim="true"><![CDATA[
// ocn__twig_debug
$this->twig->addExtension(new \Twig_Extension_Debug());
// ocn__twig_debug
]]></add>
</operation>
</file>
</modification>
Запакуем именно его, а не папку с ним в архив zip с названием
ocmod-twig-debug-3-0-2-0.ocmod.zip
Скачать ocmod-twig-debug-3-0-2-0.ocmod.zip
Теперь можно установить наш модификатор через меню «Расширения» — «Установка расширений».
Обновить модификаторы в меню «Расширения» — «Модификаторы».
Наш модификатор должно появиться в меню и заработать, т.е. функция {{ dump(categories) }} должна выводить информацию.