【问题标题】:Opencart developement: change slideshow's positionOpencart 开发:更改幻灯片位置
【发布时间】:2011-11-01 12:00:00
【问题描述】:

我正在使用 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();

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

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

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

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

【问题讨论】:

    标签: javascript position slideshow banner opencart


    【解决方案1】:

    首先你不能直接复制过去

    你应该明白你会做什么

    幻灯片是 slidshow.tpl 和 slideshow.php 要包含 javascript,您需要在 /controller/commun/header.php 中添加以下代码

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

    这样javascript就可以工作了

    【讨论】:

    • 给我更多关于你想要达到的目标的信息,我会帮助你;
    • 谢谢你,我也发现了,我还需要在其中添加 slideshow.css 文件。否则幻灯片将以无序的布局运行。
    • 为什么通过 $this-&gt;document-&gt;addXXX() 添加 JS 和 CSS 在 header.php 控制器中有效,而在 header.tpl 中添加 &lt;script src="..."&gt;&lt;/script&gt; 无效???
    • 不知道,如果你检查 header.tpl 你会发现 addXXX() 会做完全一样的,它输出到脚本和 CSS 的链接它只是更干净的方式
    【解决方案2】:

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

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

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

    问候

    【讨论】:

      猜你喜欢
      • 2023-01-10
      • 1970-01-01
      • 2021-12-17
      • 2019-12-06
      • 2017-12-26
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多