1

我正在使用 opencart。我想将幻灯片从“内容顶部”更改为“标题”。这意味着,我想将幻灯片移到顶部菜单上方,并且它还将显示在每个页面中,而不是仅显示在主页中。

我已经完成了以下步骤: 第一:在管理员三个“slideshow.php”文件(控制器、语言和视图文件夹)中添加一个名为“header”的位置。第二:我修改了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();

第三:在 header.tpl 文件中添加代码:仍然,在“//menu”代码块之前。(在视图文件夹中)

    <div>
        <?php foreach ($modules as $module) { ?>
        <?php echo $module; ?>
        <?php } ?>
    </div>

现在,问题是:banner.tpl 中的 javascript 代码将不再运行。然而幸运的是,slideshow.tpl 中的 javascript 代码仍然可以运行。

因此,目前,网站在首页的菜单之前的标题位置显示横幅,但幻灯片效果没有。如果您设置两张照片,它们都将显示在首页。他们不会再彼此改变。

4

2 回答 2

1

首先你不能直接复制过去

你应该明白你会做什么

幻灯片放映是 slidshow.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

您可以使用一个简单的模块来添加这些位置并保持 javascripts 正常工作。

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

您还可以添加无限数量的位置,添加列并更改宽度,它适用于所有主题和模块。

问候

于 2013-11-20T18:03:13.080 回答