スライダーやバナーなどのモジュールをヘッダーに配置する方法や、モジュールの追加領域を定義する方法を教えてください。
8 に答える
さて、私はそれに取り組んでいます。
まず、管理ページに新しい役職を追加する必要があります。つまり、3 つのファイルを変更し、それぞれにいくつかの行を追加する必要があります。
たとえば、スライドショーをヘッダーに追加する場合は、新しい位置を追加する必要があります
$this->data['text_header'] = $this->language->get('text_header'); // in admin/controller/slideshow.php
//////////////////////////////////////////////////////////////////////////
$_['text_header'] = 'Header'; // in admin/language/slideshow.php
//////////////////////////////////////////////////////////////////////////
<?php if ($module['position'] == 'header') { ?> // in admin/view/slideshow.tpl
<option value="header" selected="selected"><?php echo $text_header; ?></option>
<?php } else { ?>
<option value="header"><?php echo $text_header; ?></option>
<?php } ?>
次に、スライドショーの新しい位置が定義されました。管理ページで選択できます。
その後、これらのコードをcatalog/view/header.tplに追加する必要があります
<?php foreach ($modules as $module) { ?>
<?php echo $module; ?>
<?php } ?>
次に、catalog/controller/header.php に、content_top.php のようなコードを追加します。 $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();
その後、すべて完了しました。
このコードの唯一の問題は、スライドショーをスライドショーとして表示できず、静止画像または画像として表示できることです。
解決して返信いただければ幸いです。私の質問の投稿: Opencart の開発: スライドショーの位置を変更する
Huawei Chen が書いたことを実行してから、これらをヘッダーに追加します。
<script type="text/javascript" src="catalog/view/javascript/jquery/nivo-slider/jquery.nivo.slider.pack.js"></script>
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/slideshow.css" media="screen" />
スライダーが機能します
ヘッダーとフッターに2つの位置を配置する拡張機能を使用することもできます。やなどcolumn_left
と同じフックを作成します。content_top
opencart1.5xのVQmodで動作します
controller/common/column_right.php から学ぶことができます
モジュールの位置を確認します (50 行目)。「ヘッダー」に適合させることができます。
$module['position'] == 'column_right'
出力を設定します (69 行目)。"header_mod" のようなものに適応させることができます。
$this->data['modules']
追加のモジュール位置を表示するには、admin でモジュールを変更する必要があります。管理ページに「ヘッダー」モジュールの位置オプション
はありません。
この拡張機能により、あなたの人生は非常にシンプルになると思います。http://www.opencart.com/index.php?route=extension/extension/info&token=extension_id=14467
無制限の数の位置をヘッダーに追加したり、列を追加したり、管理者から幅を変更したりできます
よろしく
私はあなたの答えをすべて読みました。すべてを忘れてください。任意のモジュールをヘッダー セクションに呼び出すのは非常に簡単です。
catalog/controller/common/header.php
ファイルを開く
$this->data['YOUR_MODULE_NAME'] = $this->getChild('module/YOUR_MODULE_NAME');
.tpl
ヘッダーのファイルを開きます。これは次の場所にあります
。catalog/view/theme/YOUR_THEME/template/common/header.tpl
次のように、必要なときにいつでも欲望モジュールをエコーします。
<?php echo $YOUR_MODULE_NAME;?>
それでおしまい。あなたは終わった。
あなたの新しい立場が新しい子供であることを知らなければなりません。
file: catalog/controller/common/header.php
$this->children = array(
'module/language',
'module/currency',
'module/cart'
);
次のように、新しい位置を追加します。
$this->children = array(
'common/content_new',
'module/language',
'module/currency',
'module/cart'
);
これで、header.tpl で新しい位置をエコーできるようになりました