Проверьте положение модуля в OpenCart 2.0
Я использовал следующий код для проверки положения модуля. Таким образом, он работает нормально в OpenCart 1.5.6. Когда модуль включен в контент левой и правой панели, поэтому я хочу, чтобы скрыть код JavaScript в OpenCart
но он не работает в Opencart 2.0
Как этого добиться в Opencart 2.0?
в файле.tpl
<?php if ($module['position'] == 'content_bottom' || $module['position'] == 'content_top') { ?>
//add your code Here
<?php } ?>
добавить в.php файл
$this->data['module'] = $setting;
2 ответа
Я нашел простое решение. Это работает как шарм.
Шаг 1
в файле.tpl. (Вы хотите, чтобы этот модуль. Featured.tpl и т. Д...)
<?php if ($module['position'] == 'content_bottom' || $module['position'] == 'content_top') { ?>
//add your code Here
<?php } ?>
Шаг 2
добавить в.php файл (вы хотите, чтобы этот модуль. featured.php и т. д...)
$data['module'] = $setting;
Шаг 3 (если вы используете версию OpenCart 2.0.0.0)
каталог / контроллер / общий / {content_top, content_bottom, content_right, content_left}.php,
Найдите код ниже
if (isset($part[1]) && isset($setting[$part[1]])) {
и добавьте следующий код после
$setting[$part[1]]['position'] = basename(__FILE__, '.php');
Шаг 3 (если вы используете OpenCart 2.0.1.x. версия)
каталог / контроллер / общий / {content_top, content_bottom, content_right, content_left}.php,
Найдите код ниже
$setting_info = $this->model_extension_module->getModule($part[1]);
и добавьте следующий код после
$setting_info['position'] = basename(__FILE__, '.php');
OC 2.0 является серьезным обновлением, поэтому многие вещи, работающие на OC 1.5.X, могут не работать на OC 2.X
Например, OC 1.5.x, который мы использовали для добавления макета в модуль, теперь в OC 2.0 мы добавляем модули в макет Итак, в 1.5.x мы использовали для поиска Модуль и связанные с ним позиции, Теперь мы находим Позиции и связанные с ними Модули.
Предположим, вы работаете над \catalog\controller\common\content_top.php
После
$modules = $this->model_design_layout->getLayoutModules($layout_id, 'content_top');
Который выбирает все модули, установленные на content_top
конкретного макета
добавлять
$search_text = 'featured'; // name of the module you want to find
$matched_top = array_filter($modules, function($el) use ($search_text) {
return ( strpos($el['code'], $search_text) !== false );
});
if(!empty($matched_top)){
$data['truevalue'] = 1;
}
Сейчас в content_top.tpl
Вы можете написать сценарий
if(isset($truevalue)){
//here goes script code
}
Точно так же вы можете сделать то же самое для content_bottom
также