How to create a custom admin page in opencart?
e-commerce, opencart, php
Solution
OpenCart 2.x
The path names have changed in OpenCart 2 - you will want to create
`admin/controller/extension/module/hello.php admin/language/en-gb/extension/module/hello.php admin/view/template/extension/module/hello.tpl ` Then the route becomes
`admin/index.php?route=extension/module/hello`
OpenCart 1.x
- Include full MVC flow.
I found out how to do this. OpenCart uses the MVC pattern. I recommend reading about How to be an OpenCart Guru? post about learning how the system works - this Admin workflow should also suffice for customer end.
1) Create a new file in `admin/controller/custom/helloworld.php`
Your filename and controller name should be the same in desc order:
helloworld.php
<?
class ControllerCustomHelloWorld extends Controller{
public function index(){
// VARS
$template="custom/hello.tpl"; // .tpl location and file
$this->load->model('custom/hello');
$this->template = ''.$template.'';
$this->children = array(
'common/header',
'common/footer'
);
$this->response->setOutput($this->render());
}
}
?>
2) Create a new file in `admin/view/template/custom/hello.tpl`
Hello.tpl
<?php echo $header; ?>
<div id="content">
<h1>HelloWorld</h1>
<?php
echo 'I can also run PHP too!';
?>
</div>
<?php echo $footer; ?>
3) Create a new file in `admin/model/custom/hello.php`
<?php
class ModelCustomHello extends Model {
public function HellWorld() {
$sql = "SELECT x FROM `" . DB_PREFIX . "y`)";
$implode = array();
$query = $this->db->query($sql);
return $query->row['total'];
}
}
?>
4) You then need to enable the plugin to avoid permission denied errors:
Opencart > Admin > Users > User Groups > Admin > Edit
Select and Enable the Access Permission.
To visit your page go to
www.yoursite.com/opencart/admin/index.php?route=custom/helloworld
Problem
I want to know how to make a custom admin panel page in opencart. Requires login with the controller - the admin panel does not seem to use the same controller as the normal site. I know how to make custom pages with opencart (but this is not for the admin) A simple Hello World example would be great