我正在为我的第一个OpenCart网站逐步构建自定义主题,但是我无法使用自定义模板。我有一些额外的代码,我将构建到一个模板,然后链接到一个特定的页面。这就是我想要实现的目标:
任何人都知道如何做到这一点?我已经进入了模板文件和管理员的“设计/布局”部分并完成了看似合乎逻辑的事情,但它仍然无效。
答案 0 :(得分:0)
您可以通过管理员>创建信息页面目录>信息。但是,您将无法包含任何PHP。
要创建新模板,您需要向项目中添加一些文件。 OpenCart基于MVC架构。如果您不熟悉MVC,请访问此页面。
http://docs.opencart.com/introduction-to-mvc-l
控制器:
创建一个名为calculator.php的文件,并将其添加到目录>控制器>信息。然后添加以下内容。
<?php
class ControllerInformationCalculator extends Controller {
private $error = array();
public function index() {
$this->language->load('information/calculator'); //Optional. This calls for your language file
$this->document->setTitle($this->language->get('heading_title')); //Optional. Set the title of your web page.
$this->data['breadcrumbs'] = array();
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/home'),
'separator' => false
);
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('information/calculator'),
'separator' => $this->language->get('text_separator')
);
$this->data['heading_title'] = $this->language->get('heading_title'); //Get "heading title" from language file.
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/calculator.tpl')) {
$this->template = $this->config->get('config_template') . '/template/information/calculator.tpl'; // If the template exists get it
} else {
$this->template = $this->config->get('config_template') . '/template/error/not-found.tpl'; //Shows an error if template not found
}
$this->children = array(
'common/column_left',
'common/column_right',
'common/content_top',
'common/content_bottom',
'common/footer',
'common/header'
); //Required. The children files for the page.
$this->response->setOutput($this->render());
}
}
?>
模板: 创建一个名为calculator.tpl的文件,并将其添加到目录&gt;视图&gt;主题&gt; (您的主题目录)&gt;模板&gt;信息
将以下内容添加到模板文件中:
<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
<div id="content"><?php echo $content_top; ?>
<div class="breadcrumb">
<?php foreach ($breadcrumbs as $breadcrumb) { ?>
<?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
<?php } ?>
</div>
<h1><?php echo $heading_title; ?></h1>
ADD YOUR CONTENT HERE
<?php echo $content_bottom; ?></div>
<?php echo $footer; ?>
语言: 创建一个名为calculator.php的文件,并将其添加到目录&gt;语言&gt;英语&gt;信息。将以下内容添加到此文件中:
<?php
// Heading
$_['heading_title'] = 'Calculator';
?>
您可以根据需要添加任意数量的语言变量,但请记住您还需要在控制器中添加它们。例如:
在语言文件中:
$_['example'] = 'Example Text';
在控制器中:
$this->data['example'] = $this->language->get('example');
如果您需要调用数据库,还需要一个类似于以下示例的模型。创建一个名为calculator.php的文件并添加到目录&gt; &model;模块。
<?php
class ModelModuleCalculator extends Model {
public function example() {
}
?>
您还需要在调用之前加载模型。在调用之前将此行添加到控制器中。
$this->load->model('module/calculator');
示例模型调用(也在控制器中):
$this->model_module_calculator->example();