我想在Opencart中创建一个自定义页面。
我知道可以使用管理区域在信息部分中放置自定义页面,但是我想要的是一个控制器,它指向其他几个页面。
我不完全了解如何做这件事。
在CodeIgniter中,您会创建一个控制器和一个视图,并在需要时在路由文件中设置一些规则,但我找不到类似的东西。
请问有人可以解释一下或指导我如何做吗?
谢谢
实际上这很简单。您需要为文件创建一个控制器,命名基于文件夹和文件名。例如,common/home.php
的控制器应该是
Class ControllerCommonHome extends Controller
通过使用index.php?route=common/home
进行访问,并访问index()
方法。如果你想要调用另一个方法,比如说foo,你需要将该方法定义为
public function foo() {
// Code here
}
并且可以使用 index.php?route=common/home/foo 进行调用。
至于渲染视图,这有点棘手。基本上,你需要将所有这些内容添加到控制器方法的末尾。
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/new_template_file.tpl')) {
$this->template = $this->config->get('config_template') . '/template/common/new_template_file.tpl';
} else {
$this->template = 'default/template/common/new_template_file.tpl';
}
$this->children = array(
'common/column_left',
'common/column_right',
'common/content_top',
'common/content_bottom',
'common/footer',
'common/header'
);
$this->response->setOutput($this->render());
如果该文件不存在,它将尝试在default
主题文件夹中使用相同路径。
我建议您查看一些控制器和模板,以便正确理解所有内容的来源,但这就是它的基本要点。
http://code.tutsplus.com/tutorials/create-a-custom-page-in-opencart--cms-22054
OpenCart是使用流行的编程MVC模式构建的。还有一个名为“L”的元素添加到此模式中-语言部分-因此在OpenCart中称为MVC-L模式。我不会详细介绍MVC模式,因为它是一种非常流行和熟悉的设计模式,并且我们已经在其他教程中详细介绍了它。