我正在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。但它不起作用。我这样做是错误的吗?如果是这样,我该如何重新定义这个字段呢?
感谢您的帮助
答案 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