如何将完整的tpl文件存储在开放购物车的变量中



我在开放式推车中工作。一些常见的文件,如页眉,页脚等,存储在一个变量是由所有文件语法定义。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.tplcommon/home的.tpl文件,并导航到我们读取<?php echo $footer; ?>的底部。这是在home控制器的$data数组中与索引"footer"相呼应的值。

home控制器文件中的$data['footer'] == home模板/视图文件中的$footer变量

最新更新