嗨,我是prestashop的新手,我尝试创建一个1.7版的管理模块。我会创建一个新的菜单来显示模板和管理我的数据库。
mymodule.php:
<?php
if (!defined('_PS_VERSION_'))
{
exit;
}
class MyModule extends Module
{
public function __construct()
{
$this->name = 'mymodule';
$this->tab = 'administration';
$this->version = '1.0.0';
$this->author = 'John doe';
$this->bootstrap = true;
parent::__construct();
$this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_);
$this->displayName = $this->l('Mon module');
$this->description = $this->l('On test la creation de module presta.');
}
public function install()
{
// Install Tabs
$tab = new Tab();
$tab->active = 1;
$tab->class_name = "MyModule";
$tab->module = 'mymodule';
$tab->name = array();
$tab->id_parent = (int)Tab::getIdFromClassName('SELL');
$tab->position = 3;
foreach ($lang as $l) {
$tab->name[$l['id_lang']] = $this->l('Mon module');
}
$tab->add();
if (!parent::install())
return false;
return true;
}
public function uninstall()
{
// Uninstall Tabs
$tab = new Tab((int)Tab::getIdFromClassName('Mymodule'));
$tab->delete();
// Uninstall Module
if (!parent::uninstall())
return false;
return true;
}
}
模块/mymodule/controller/admin/MyModuleController。php:
<?php
class MyModuleController extends ModuleAdminController
{
public function renderList() {
$this->content = $this->createTemplate('mymodule.tpl')->fetch();
return $this->content;
}
}
?>
模块/mymodule/views/templates/admin/mymodule。第三方物流:
{block name="page_title"}
{l s='Mon module'}
{/block}
<section >
<div>Hello world !</div>
</section>
我用很多教程1.7/1.6的编译创建了这个,但是安装失败了。Prestashop为我们提供了一个留档来创建第一个模块,但它并没有真正记录下来,我在互联网上找不到任何真正有用的东西。
有什么帮助/建议吗?
谢谢
EDIT1:好的,安装是正确的,我的选项卡被创建了,但是当我点击它时,它调用“controller=MyModule”,并且找不到模块控制器。差不多完成了。
您的模块的install()函数似乎有问题。您正在注册的钩子似乎也错了。请尝试以下代码,它对我们有效:
public function install()
{
if (!parent::install() ||
!$this->registerHook('header')) {
return false;
}
if (Shop::isFeatureActive()) {
Shop::setContext(Shop::CONTEXT_ALL);
}
$lang = Language::getLanguages();
$tab = new Tab();
$tab->class_name = 'AdminTestimonialSetting';
$tab->module = 'testimonial';
$tab->id_parent = 2;
$tab->position = 6;
foreach ($lang as $l) {
$tab->name[$l['id_lang']] = $this->l('Testimonial');
}
$tab->save();
return true;
}
模块的install()
方法必须返回true/false。
对于从ModuleAdminController
$this->createTemplate($template);
尝试查找模板并加载它在其中找到的第一个模板:
因此,如果您使用路径调用createTemplate()
,它将附加到上面两个文件夹中的任何一个,并且它找不到您的模板,这将抛出一个错误。
将模板移动到modules/yourmodule/views/templates/admin/
中,并仅使用模板名称调用create方法。
$this->createTemplate('mymodule.tpl');
本文介绍创建和管理数据表的基本 SQL 操作和规范。 创建和管理表 SQL 语句参阅: CREATE TABLE DROP TABLE FLASHBACK TABLE RENAME TABLE ALTER TABLE RECOVER TABLE 表命名规范 同一业务或者模块的表尽可能使用相同的前缀,表名称尽可能表达含义; 多个单词以下划线分隔,不推荐超过32个字符。 建议对表的用途进行注释说明,以
本文介绍创建和管理数据库的基本 SQL 操作和规范。 创建和管理库 SQL 语句参阅: CREATE DATABASE DROP DATABASE ALTER DATABASE 库命名规范 建议按照业务、产品线或者其它指标进行区分,一般不要超过 20 个字符。如:临时库(tmp_crm)、测试库(test_crm)。
卷是一种块存储设备。我们把卷挂载在实例实例上,从而达到持久化存储的目的。您可以随时将某个卷安装在一个运行中的实例上,或者从实例上卸载卷,再把它安装再另一个实例上。您还可以给卷拍快照,以及删除卷等等。但只有管理员才能指定卷的类别。 创建卷 登录控制台。 在PROJECT选框中选择希望操作的Project。 在PROJECT选项卡种,打开Compute选项卡,然后点击Volumes子项。 点击Crea
仅企业版可用 请求header PUT /v1/account/createActManager Authorization:Bearer {ACCESS TOKEN} 注: 请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 请求payload { "username" : "管理员A", "cost_type" : "1", "cost_limi
本文介绍创建和管理索引的基本 SQL 操作和规范。 创建和管理索引 SQL 语句参阅: CREATE INDEX ADD INDEX DROP INDEX RENAME INDEX SHOW INDEXES [FROM|IN] 索引命名规范 唯一索引:uk_[表名称简写]_[字段名简写] 普通索引:idx_[表名称简写]_[字段名简写] 多单词组成的 column_name,取尽可能代表意义的缩写
在对OpenStack网络进行操作前,请先设置如下环境变量: export OS_USERNAME=admin export OS_PASSWORD=password export OS_TENANT_NAME=admin export OS_AUTH_URL=http://localhost:5000/v2.0 创建网络 列出neutron工具的扩展功能: $ neutron ext-