Question

I want to create a custom page in opencart.

I know I can put a custom page in the information section using the admin area however what I would like is a controller which points to a few other pages.

I dont fully understand how to do this.

In codeigniter you would create a controller and a view and if needed setup some rules in the routes file but I cannot see anything like this.

Would somebody mind explaining or pointing me to some instructions on how to do this please.

Thank you

Was it helpful?

Solution

It's pretty simple to do to be honest. You need to create a controller for your file, naming based on the folder and filename. For instance common/home.php has

Class ControllerCommonHome extends Controller

This is accessed using index.php?route=common/home and accesses the index() method. If you want to call another method, for instance foo, you would need to define the method as

public function foo() {
    // Code here
}

and would call it using index.php?route=common/home/foo

As for rendering the view, that's a bit trickier. Basically you need to add all of this to the end of your controller method

    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());

Which will render /catalog/view/theme/your-theme-name/template/common/new_template_file.tpl If that file doesn't exist, it will attempt to use the same path in the default theme folder

I'd recommend you take a look at a few controllers and templates to get your head around where everything comes from properly, but that's the basic gist of how it works

OTHER TIPS

Please follow this page i hope more use full.

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

OpenCart is built using the popular programming MVC pattern. There is also one more element added to this pattern named "L" - a language part - so it's called MVC-L pattern in OpenCart. I won't go into the details of the MVC pattern as it's a very popular and familiar design pattern and we've covered it in great detail in other tutorials.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top