2017-04-11 81 views
0

我在PrestaShop 1.6.0.14中进行自定义,当员工应答客户线程时,需要提供HTML编辑器。这部分我实现了,并且我正在通过电子邮件发送HTML。PrestaShop将HTML保存在CustomerMessage->消息

我的问题是显示在历史中,我需要显示历史中的HTML(有时员工发送链接等)。为了达到这个目的,我需要能够在customer_message表的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

,你必须使用此设置:

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

的类型应该是TYPE_HTML,因为它检查有关的HTML代码部分不会改变验证isCleanHtml你不要“不想(像JS,脚本的iframe等)

让我知道:)

PS:每次我们做一个覆盖,删除class_index.php存储在cache文件夹中

+0

感谢您的回答。我记得你回答了很多我的问题=]。它没有工作,似乎覆盖不工作,我把一个die()在方法中,它不会停止执行 –

+0

嗯...让我调查... – sarcom

+0

你是否删除了'class_index 。“缓存文件夹中的.php文件?你确定文本没有保存在html中吗?因为在后台,可视化被“清理”了。 – sarcom