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