标签归档 opencart的MVC结构基础说明

通过清心醉

opencart二次开发之MVC的结构及模板使用规则2

前文作者说了OPENCART的大概思路,今天入手修改了下OPENCART的核心

由于商业机密,只提供部分的代码并加以解释

<?php
date_default_timezone_set(‘Asia/Shanghai’); //设置时区
class ControllerContactContact extends Controller
{    public function index()
{
if(!isset($this->request->get[‘id’])||empty($this->request->get[‘id’]))
{
return false;
}
if (!is_numeric($this->request->get[‘id’]))
{
return false;
}
$id=(int)$this->request->get[‘id’]; //提取产品ID
#$this->load->model(‘contact/contact’); //引用模型文件
$this->load->model(‘catalog/product’); //引用系统模型文件
$this->load->language(‘contact/contact’);//引用语言包文件
$data=$this->model_catalog_product->getProduct($id);
$data[‘ckz1’]=$this->language->get(‘ckz_contact1’);
$data[‘ckz2’]=$this->language->get(‘ckz_contact2’);
$data[‘ckz3’]=$this->language->get(‘ckz_contact3’);
$data[‘ckz4’]=$this->language->get(‘ckz_contact4’);
$data[‘ckz5’]=$this->language->get(‘ckz_contact5’);
$data[‘ckz6’]=$this->language->get(‘ckz_contact6’);
$data[‘ckz7’]=$this->language->get(‘ckz_contact7’);
$data[‘ckz8’]=$this->language->get(‘ckz_contact8’);
$data[‘ckz9’]=$this->language->get(‘ckz_contact9’);
//由于该方法里已经存在了提取产品的信息,所以直接使用该方法就可以了!
//注,必须以数组的形式返回
$this->response->setOutput($this->load->view(‘default/template/contact/contact.tpl’, $data));
//给视图赋值
}

}

控制器的命名方式和ZEND的差不多,都是以目录来作为结构

当然,比如调用其他的控制器或者其他的模型,都是可以的

但使用前必须$this->load->model()来引用

然后直接通过$this->model_文件夹_文件名(文件名就是类名)->index(); //调用的方法