我在开放式推车中工作。一些常见的文件,如页眉,页脚等,存储在一个变量是由所有文件语法定义。echo $footer
所以我想知道这个变量定义的文件的位置,我已经检查了公共文件夹中的所有控制器文件,但没有找到,告诉我在变量中存储文件的过程。
让我们以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
数组。您可以查看它是如何工作的具体细节,但是可视化它的简单方法是查看home controller index()函数底部的$this->response->setOutput($this->load->view('common/home', $data));
行。您可以看到主页的common/home
.tpl/view文件已经加载,$this->load->view
函数中的第二个参数是预先形成的关联$data
数组。
那么,让我们跳转到位于catalog/view/theme/default/template/common/home.tpl
的common/home
的.tpl文件,并导航到我们读取<?php echo $footer; ?>
的底部。这是在home控制器的$data
数组中与索引"footer"相呼应的值。
home控制器文件中的$data['footer']
== home模板/视图文件中的$footer
变量