Проверьте положение модуля в 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 также

Другие вопросы по тегам