0
我必须创建一个模块,以便动态更改简短说明块。但是这个块在Prestashop 1.5.4中并不存在,如果简短的描述是空的,所以我认为如果它是空的,就做一个触发器来填充它。如何通过PHP表单添加MySQL触发器(Prestashop 1.5.4:安装模块)
这里是我的安装功能:
public function install()
{
if
(
!parent::install()
OR !$this->registerHook('displayProductStatus')
OR !$this->registerHook('displayOverrideTemplate')
) {
return FALSE;
}
$sql = array();
include(dirname(__FILE__) . '/init/install_sql.php');
foreach ($sql as $s)
{
if (!Db::getInstance()->Execute($s))
{
return FALSE;
}
}
return TRUE;
}
这里是我的install_sql.php
<?php
$sql = array();
$sql[] = "DELIMITER $$
CREATE TRIGGER add_short_description
BEFORE INSERT ON ps_product_lang
for each row begin
if (NEW.description_short is NULL OR NEW.description_short = '') THEN
SET NEW.description_short = '.';
END IF;
END$$
DELIMITER ;";
这触发功能相当不错,如果我添加此直接进入PHPMyAdmin中,但安装失败时,我通过模块安装。 我认为这是分隔符的错,但...我不知道如何避免这种情况。
我要修改什么?
(和对不起我的英文不好,我希望它至少是理解的)
它的工作:)谢谢! 我不知道任何其他“轻”的方式来做到这一点。我想过一个方法,当我必须做的时候改变变化描述,但是这会在这个表上执行很多更新。 此外,无法翻译的简短描述(Prestashop与Smarty合作):/ 无论如何,谢谢! – Metalovichinkov 2014-12-13 09:00:33