私はopencartで作業しています。スライドショーを「content-top」から「header」に変更したい。つまり、スライドショーをトップメニューの上に移動したいのですが、ホームページだけでなく、すべてのページにも表示されます。
次の手順を実行しました。1つ目:管理者の3つの「slideshow.php」ファイル(コントローラー、言語、およびビューフォルダー)に「header」という名前の位置を追加します。2番目:header.phpを変更しました:(コントローラーフォルダーの "// menu"コードブロックの後にこれらのコードを追加します)
$layout_id = 1;
$module_data = array();
$this->load->model('setting/extension');
$extensions = $this->model_setting_extension->getExtensions('module');
foreach ($extensions as $extension) {
$modules = $this->config->get($extension['code'] . '_module');
if ($modules) {
foreach ($modules as $module) {
if ($module['layout_id'] == $layout_id && $module['position'] == 'header' && $module['status']) {
$module_data[] = array(
'code' => $extension['code'],
'setting' => $module,
'sort_order' => $module['sort_order']
);
}
}
}
}
$sort_order = array();
foreach ($module_data as $key => $value) {
$sort_order[$key] = $value['sort_order'];
}
array_multisort($sort_order, SORT_ASC, $module_data);
$this->data['modules'] = array();
foreach ($module_data as $module) {
$module = $this->getChild('module/' . $module['code'], $module['setting']);
if ($module) {
$this->data['modules'][] = $module;
}
}
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {
$this->template = $this->config->get('config_template') . '/template/common/header.tpl';
} else {
$this->template = 'default/template/common/header.tpl';
}
$this->render();
3番目:header.tplファイルにコードを追加します:それでも、「//menu」コードブロックの前にあります。(ビューフォルダ内)
<div>
<?php foreach ($modules as $module) { ?>
<?php echo $module; ?>
<?php } ?>
</div>
ここで、問題は次のとおりです。banner.tplのjavascriptコードは実行されなくなります。ただし、幸いなことに、slideshow.tplのjavascriptコードは引き続き実行されます。
そのため、現在、Webサイトでは、ホームページのメニューの前のヘッダー位置にバナーが表示されますが、スライドショー効果は表示されません。写真を2枚設定すると、どちらもフロントページに表示されます。彼らはもうお互いに変わることはありません。