我在开放式购物车中工作。存储在变量中的一些常见文件(如页眉,页脚等)由所有文件语法定义。echo $footer
所以我想知道这个变量定义的文件的位置我检查了公共文件夹中的所有控制器文件,但没有找到告诉我变量中存储文件的过程。
答案 0 :(得分:0)
让我们以common / home为例。这将是位于catalog/controller/common/home.php
的控制器文件。
首先,页脚模板文件旨在用作页面组件而不是独立的网页。我们可以通过查看位于catalog/controller/common/footer.php
的页脚控制器文件来判断这一点。如果您查看索引函数的底部,您可以看到,而不是为网页设置输出,页脚控制器只返回footer.tpl
加载的模板/视图文件。
现在回到home.php
控制器文件中,您可以找到一条读取$data['footer'] = $this->load->controller('common/footer');
的行。此行的作用是将页脚模板文件加载到主控制器中的关联$data
数组中。 (正如注意,在OpenCart中,如果加载的控制器没有指定特定的函数,即:common/footer
,则默认调用index()函数)。因此,结果$data['footer']
现在等于common/footer
控制器中index()函数返回的结果。
在OpenCart中,PHP变量传递给.tpl文件的方式是通过控制器文件中形成的$data
数组。您可以查看其工作原理的具体细节,但是可视化的简单方法是在读取$this->response->setOutput($this->load->view('common/home', $data));
的行中查看主控制器index()函数的底部。您可以看到加载了主页的common/home
.tpl / view文件,$this->load->view
函数中的第二个参数是预先形成的关联$data
数组。
因此,让我们跳转到位于common/home
的{{1}}的.tpl文件,然后导航到我们阅读catalog/view/theme/default/template/common/home.tpl
的底部。这回应了家庭控制器的<?php echo $footer; ?>
数组中带有索引&#34;页脚&#34;的值。
$data
<= $data['footer']
变量