2012-02-28 87 views
10

我想在opencart中创建自定义页面。opencart php自定义页面不使用“信息”功能

我知道我可以在信息部分使用管理区域放置自定义页面,但是我想要的是指向其他几个页面的控制器。

我不完全明白如何做到这一点。

在codeigniter中,你可以创建一个控制器和一个视图,如果需要的话在路径文件中设置一些规则,但是我看不到这样的东西。

会有人介意解释或指示我一些指示如何做到这一点请。

谢谢

回答

17

说实话很简单。您需要为您的文件创建一个控制器,根据文件夹和文件名进行命名。例如common/home.php具有

Class ControllerCommonHome extends Controller 

这是使用index.php?route=common/home访问并且访问index()方法。如果你想调用其他方法,例如富,你就需要定义方法

public function foo() { 
    // Code here 
} 

,并会使用的index.php?路径=通用的/ 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()); 

这会使/catalog/view/theme/your-theme-name/template/common/new_template_file.tpl 如果这个文件不存在,它会尝试使用相同的路径在default主题文件夹

我建议你看看几个控制器和模板来解决这里的一切来自于正确你的头,但是这是它是如何工作

+0

可能有些东西缺失,但不知道是什么。标准文件确实有这样的结构,但也许有一个地方需要注册新的扩展或任何需要注册的地方? – 2013-05-28 03:11:29

+1

如果你正在创建全新的页面,那么他们不需要注册。如果他们是模块,基本原理是一样的,但模块需要在管理员中安装并设置为启用他们的职位等 – 2013-05-28 10:43:32

0

请按此页我希望更多的使用完整的基本精神。

http://code.tutsplus.com/tutorials/create-a-custom-page-in-opencart--cms-22054

Opencart的使用流行的编程MVC模式建造。另外还有一个元素被添加到名为“L”的模式 - 语言部分 - 因此在OpenCart中称为MVC-L模式。我不会深入讨论MVC模式的细节,因为它是一种非常流行和熟悉的设计模式,我们在其他教程中详细介绍了它。

相关问题