Ошибка при добавлении кода через vqmod

Я следую этому ответу. Проверьте положение модуля в OpenCart 2.0, и он отлично работает. Когда вы добавляете его прямо в основной файл.

Но, когда этот же код (Шаг 3) добавляет через Vqmod (без файла основного файла). Итак, это не работа. Получить ошибку (Примечание: неопределенный индекс: позиция в ….)

Наш код Vqmod.

<file path="catalog/controller/common/" name="content_top.php,content_bottom.php,content_right.php,content_left.php"> <operation> <search position="after"> <![CDATA[$setting_info = $this->model_extension_module->getModule($part[1]);]]> </search> <add> <![CDATA[$setting_info['position'] = basename(__FILE__, '.php');]]> </add> </operation> </file> 

Я использую OpenCart версии 2.0.1.1

Как это исправить?

=== Обновление ===

изменен код в файле vqcache.

 if (isset($part[1])) { $setting_info = $this->model_extension_module->getModule($part[1]); if(!isset($setting_info['position'])){ $setting_info['position'] = basename(__FILE__, '.php'); } if ($setting_info && $setting_info['status']) { $data['modules'][] = $this->load->controller('module/' . $part[0], $setting_info); } 

Когда модуль включен в левом / правом столбце. Итак, получите ниже ошибки.

 Notice: Undefined index: position in C:\......\template\module\featured.tpl on line 1 

Когда модуль включен в верхнем / нижнем столбце. Итак, ничего не показывайте.

    Хорошо, что я не следил за OpenCart некоторое время, но я думаю, что могу помочь вам с вашим вопросом, поскольку, похоже, я вспоминаю подобную ситуацию.

    Прежде всего, я предлагаю вам всегда проверять папку vqcache для кода, который выводится, чтобы вы могли более внимательно посмотреть.

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

     <![CDATA[$setting_info['position'] = basename(__FILE__, '.php');]]> 

    с:

      <![CDATA[ if(!isset($setting_info['position'])){ $setting_info['position'] = basename(__FILE__, '.php'); } ]]> 

    Общая идея – это проверка переменной, если она существует до того, как рука должна быть решением. Если нет, вы должны отлаживать сгенерированный файл в своей папке vqcache и посмотреть, что представляет собой фактический визуализированный код.

    Хотел бы я помочь вам больше, но я долго не использовал OpenCart (особенно новые версии).