2016-12-30 127 views
0

有没有一种方法可以创建可访问商店所有(前端)页面的OpenCart模块? 我想要的是用户不必将该模块“绑定”到所有布局,以使其存在于所有页面中。 基本上我想要构建一个模块,向应用程序的每个页面注入一些js代码,并根据后端的一些OpenCart挂钩在前端运行一些额外的js代码或在后端运行一些额外的js代码。 谢谢如何访问opencart模块上的所有前端页面?

+0

您是否尝试通过vQmod或ocmod修改页脚或标题? – DigitCart

回答

0

我不确定你要找的是什么,说你想要一个模块“访问”商店的所有(前端)页面。模块必须放置在布局中,布局可以分配给多个页面。

每个布局可以具有专门指定给您可以指定(和自定义)的区域的元素。例如,您可能想在公共标题中为模块创建一个特殊位置。您只需在自己指定的文件夹中创建控制器,语言和视图文件(在我的示例中,我将使用通用文件夹),然后让这些文件称为“loadjs”。

common/header.php.tpl文件之后的模式。请确保在控制器文件中更改类和文件名以匹配。因此,您将在包含ControllerCommonLoadjs类,language/(your language)/common文件夹中的文件和view/theme/(your theme name)/template/common文件夹中的loadjs.tpl文件的控制器文件夹的公用目录中创建loadjs.php文件。

$data['loadjs'] = $this->load->controller('common/loadjs');添加到您的controller/common/header.php文件中并将<?php echo $loadjs; ?>加入您的view/theme/(your theme name)/template/common/header.tpl文件中。你现在可以创建你的模块。

但是,为了能够将它添加到您的布局中,您需要对某些管理文件进行一些更改。 Add $_['text_loadjs'] = 'Loadjs';到您的admin/language/(your language)/design/layout.php文件和$data['text_loadjs'] = $this->language->get('text_loadjs');到您的admin/controller/design/layout.php文件。

您还需要对admin/view/template/design/layout_form.tpl文件进行更改。查找以下代码:

<option value="content_top" selected="selected"><?php echo $text_content_top; ?></option> 
<?php } else { ?> 
<option value="content_top"><?php echo $text_content_top; ?></option> 
<?php } ?> 
<?php if ($layout_module['position'] == 'content_bottom') { ?> 
<option value="content_bottom" selected="selected"><?php echo $text_content_bottom; ?></option> 
<?php } else { ?> 
<option value="content_bottom"><?php echo $text_content_bottom; ?></option> 
<?php } ?> 

,并添加略低于下面的代码:

<?php if ($layout_module['position'] == 'loadjs') { ?> 
<option value="loadjs" selected="selected"><?php echo $text_loadjs; ?></option> 
<?php } else { ?> 
<option value="loadjs"><?php echo $text_loadjs; ?></option> 
<?php } ?> 

现在,登录到您的Opencart的仪表板和你的模块添加到您的布局loadjs位置。这应该做到这一点。

+0

非常感谢您的评论。我想要的是添加一个JavaScript的标题,无论主题,并没有用户编辑任何文件。那可能吗? – paptom

+0

好吧,你不需要为此添加模块。我假设您的原始请求有权访问网站的“所有”前端页面,您希望在每个页面上放置相同的JavaScript。如果这就是你想要的,并且你的所有页面共享相同的视图/主题/(你的主题名称或默认)/template/common/header.tpl文件,那么你所需要做的就是将JavaScript直接添加到标题中至少这是最简单最直接的方式。)还有其他方法,但是它们逐渐涉及更多。 – JasonF

+0

如果您使用的是默认的header.tpl文件,则无论您选择哪个主题,只需要一次添加javascript。如果您在每个主题中使用自定义的header.tpl文件,则需要将javascript添加到每个主题header.tpl文件中。 – JasonF

相关问题