我需要将html标签保存在“创建/编辑产品”页面的“功能”部分。
我在class / FeatureValue.php中更改了TYPE_HTML
和isCleanHTML
,但是验证仍然忽略了html标签。
例如
'value' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml', 'required' => true, 'size' => 255),
谢谢。
答案 0 :(得分:0)
您必须使用 FeatureValue 中的definition
进行更改,以便它可以保存HTML以及需要在保存产品的文件中更改代码自定义功能值。而不是更改 核心文件 ,我将使用 替代 。
请遵循以下提到的步骤。
1)在路径Product.php
上创建文件override\classes
,并将其放在下面的代码中。这会将HTML
保存在值字段中。
<?php
/**
* @override Product.php
*/
class Product extends ProductCore
{
/**
* Add new feature to product
*/
public function addFeaturesCustomToDB($id_value, $lang, $cust)
{
$row = array('id_feature_value' => (int)$id_value, 'id_lang' => (int)$lang, 'value' => pSQL($cust, true));
return Db::getInstance()->insert('feature_value_lang', $row);
}
}
2)在路径FeatureValue.php
上创建override\classes
文件,并将其放在代码下面。更改definition
,以便可以验证HTML。
<?php
/**
* @override FeatureValue.php
*/
class FeatureValue extends FeatureValueCore
{
/**
* @see ObjectModel::$definition
*/
public static $definition = array(
'table' => 'feature_value',
'primary' => 'id_feature_value',
'multilang' => true,
'fields' => array(
'id_feature' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
'custom' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
/* Lang fields */
'value' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml', 'required' => true, 'size' => 255),
),
);
}
3)到autoload
个新创建的覆盖类文件;从class_index.php
和var\cache\dev
文件夹中删除var\cache\prod
文件。
希望它将对您有帮助!