有没有办法可以创建一个可以访问商店所有(前端)页面的OpenCart模块? 我想要的是用户不必将此模块“绑定”到所有布局,以使其存在于所有页面中。 基本上我想构建一个模块,为应用程序的每个页面注入一些js代码,并根据后端的一些OpenCart挂钩在前端运行一些额外的js代码或在后端运行一些api请求。 感谢
答案 0 :(得分:0)
我不确定你想要的是一个模块有"访问"到商店的所有(前端)页面。模块必须放在布局中,布局可以分配给多个页面。
每个布局都可以包含专门分配给您可以指定(和自定义)区域的元素。例如,您可能希望在公共标题中为模块创建一个特殊位置。您只需在您自己指定的文件夹中创建控制器,语言和视图文件(在我的示例中,我将使用公共文件夹),并让我们调用这些文件&#34; loadjs&#34;。< / p>
在common/header.php
和.tpl
文件之后对这些进行模式化。只需确保更改控制器文件中的类和文件名即可。因此,您将在控制器文件夹的公共目录中创建一个loadjs.php
文件,该文件包含ControllerCommonLoadjs
类,loadjs.php
文件夹中的language/(your language)/common
文件以及{{1}在loadjs.tpl
文件夹中的文件。
在view/theme/(your theme name)/template/common
文件中添加$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位置。这应该做到。