有人可以告诉我如何在header.tpl中使用痕迹导航而不是在opencart的product.tpl中?
答案 0 :(得分:3)
我只需要想出一个我们正在建设的新网站,我想出了以下内容;使用风险自负(如果我遇到任何重大问题,我会报告,但我无法预见任何......着名的遗言)
基本上,面包屑是在控制器中构建的,我们需要在头控制器中生成$breadcrumbs
数组。修改system/engine/controller.php
,如下所示:
[...snip...]
protected function render() {
foreach ($this->children as $child) {
$this->data[basename($child)] = $this->getChild($child,array('parent_data'=>&$this->data));
}
[...snip...]
这将在调用render()
之前将父控制器中的所有数据发送到$children
的每个控制器/方法。然后我们只需要在头控制器中选择它,如下所示:
<?php
class ControllerCommonHeader extends Controller {
protected function index($args=array()) {
// parent data
$this->data['parent_data'] = $args['parent_data'];
[...snip...]
我们可以使用$parent_data['whatever']
访问模板中的所有内容。在这种情况下,$parent_data['breadcrumbs']
将是我可以使用已从每个page.tpl
中移除的代码循环的面包屑数组,并添加到我的header.tpl
。
答案 1 :(得分:1)
由于1.5.X的编码方式,您需要重写每个控制器并将方法添加回文档类,以允许从产品控制器传递到标头控制器。你有什么特别的理由要这样做吗?
答案 2 :(得分:1)
如果所有其他方法都失败了,只需破解css,比如
.breadcrumb {
margin-left: -270px;
margin-top: -65px;
}
会将面包屑向上移动到左侧。