9

スライダーやバナーなどのモジュールをヘッダーに配置する方法や、モジュールの追加領域を定義する方法を教えてください。

4

8 に答える 8

7

さて、私はそれに取り組んでいます。

まず、管理ページに新しい役職を追加する必要があります。つまり、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 の開発: スライドショーの位置を変更する

于 2011-11-01T12:15:12.737 に答える
2

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" />

スライダーが機能します

于 2012-02-05T17:47:26.807 に答える
1

ヘッダーとフッターに2つの位置を配置する拡張機能を使用することもできます。やなどcolumn_leftと同じフックを作成します。content_top

opencart1.5xのVQmodで動作します

于 2012-06-17T11:17:50.920 に答える
1

controller/common/column_right.php から学ぶことができます

モジュールの位置を確認します (50 行目)。「ヘッダー」に適合させることができます。

$module['position'] == 'column_right'

出力を設定します (69 行目)。"header_mod" のようなものに適応させることができます。

$this->data['modules']

追加のモジュール位置を表示するには、admin でモジュールを変更する必要があります。管理ページに「ヘッダー」モジュールの位置オプション
はありません。

于 2011-09-19T04:18:54.187 に答える
0

この拡張機能により、あなたの人生は非常にシンプルになると思います。http://www.opencart.com/index.php?route=extension/extension/info&token=extension_id=14467

無制限の数の位置をヘッダーに追加したり、列を追加したり、管理者から幅を変更したりできます

よろしく

于 2013-11-20T17:59:39.657 に答える
0

私はあなたの答えをすべて読みました。すべてを忘れてください。任意のモジュールをヘッダー セクションに呼び出すのは非常に簡単です。

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;?>

それでおしまい。あなたは終わった。

于 2014-04-03T10:53:41.903 に答える
0

あなたの新しい立場が新しい子供であることを知らなければなりません。

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 で新しい位置をエコーできるようになりました

于 2015-10-28T07:58:44.033 に答える