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

5

Решение

Я нашел простое решение. Это работает как шарм.

Шаг 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');
1

Другие решения

OC 2.0 является серьезным обновлением, поэтому многие вещи, работающие на OC 1.5.X, могут не работать на OC 2.X

Например, OC 1.5.x, который мы использовали для добавления макета в модуль, теперь в OC 2.0 мы добавляем модули в макет. Итак, в 1.5.x мы использовали для поиска Module и связанных с ним позиций. Теперь мы находим
Позиции и связанные с ними модули.

Предположим, вы работаете над \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 также

0

По вопросам рекламы [email protected]