PrestaShop在CustomerMessage->消息中保存HTML

时间:2017-04-11 18:21:44

标签: prestashop prestashop-1.6

我正在PrestaShop 1.6.0.14中进行自定义,当员工回答客户线程时,我需要提供HTML编辑器。这部分我实现了,我将在电子邮件中发送HTML。

我的问题是在历史中显示,我需要在历史中显示HTML(有时员工发送链接等)。为此,我需要能够在message表的customer_message字段中保存HTML。当我转到ObjectModel(classes/CustomerMessage.php)的定义时,我看到了:

'message' =>            array('type' => self::TYPE_STRING, 'validate' => 'isCleanHtml', 'required' => true, 'size' => 65000),

哪个正在清理HMTL。所以我使用以下内容在override/classes/CustomerMessage.php创建了一个新文件:

class CustomerMessage extends CustomerMessageCore
{

    public function __construct($id = null) {
        self::$definition['fields']['message'] = array('type' => self::TYPE_STRING, 'validate' => 'isAnything', 'required' => true, 'size' => 65000);

        parent::__construct($id);
    }

}

我认为这将覆盖该属性,允许我在此字段中保存HTML。但它不起作用。我这样做是错误的吗?如果是这样,我该如何重新定义这个字段呢?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

你必须使用这个设置:

self::$definition['fields']['message'] = array('type' => self::TYPE_HTML, 'validate' => 'isCleanHtml', 'required' => true, 'size' => 65000);

类型应为TYPE_HTML,并且不要更改验证isCleanHtml,因为它会检查您不想要的部分HTML代码(如js,script,iframe等)

让我知道:)。

PS:每次我们进行覆盖,删除class_index.php文件夹中存储的cache