1

私は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枚設定すると、どちらもフロントページに表示されます。彼らはもうお互いに変わることはありません。

4

2 に答える 2

1

まず第一に、先に進んで過去をコピーすることはできません

あなたは自分が何をするかを理解する必要があります

スライド ショーは slideshow.tpl と slideshow.php で、javascript を含めるには、/controller/commun/header.php に次のコード行が必要です。

$this->document->addScript('catalog/view/javascript/jquery/nivo-slider/jquery.nivo.slider.pack.js');

javascriptが機能するように

于 2011-11-01T13:34:25.897 に答える
0

これらの位置を追加し、javascript を適切に動作させ続ける単純なモジュールを使用できます。

http://www.opencart.com/index.php?route=extension/extension/info&token=extension_id=14467

また、無制限の数の位置を追加したり、列を追加したり、幅を変更したりでき、すべてのテーマとモジュールで機能します.

よろしく

于 2013-11-20T18:03:13.080 に答える