我想用两个不同的视图在两个不同的地方显示现有模块。 当然我可以创建另一个模块,但这看起来并不正确,因为逻辑是相同的。 另一方面,我希望能够重用两个视图,但看起来我只能重用模块和硬连线模板,对吗?或者我该怎么做?
答案 0 :(得分:1)
在模块控制器的顶部,您将会遇到以下情况:
<?php
class ControllerModuleMyModule extends Controller {
protected function index($setting) {
如果只是说index()
,则将其更改为index($setting)
$setting['position']
将包含当前实例的位置名称,例如&#34; content_bottom&#34 ;.所以你可以根据这个改变模板。
一个基本的例子:
switch($setting['position']) {
case 'content_top':
$template_name = 'my_module_top.tpl';
break;
case 'column_left':
$template_name = 'my_module_left.tpl';
break;
default:
$template_name = 'my_module.tpl';
break;
}
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/' . $template_name)) {
$this->template = $this->config->get('config_template') . '/template/module' . $template_name;
} else {
$this->template = 'default/template/module/' . $template_name;
}