在产品功能中添加HTML标签

时间:2018-10-25 12:43:31

标签: html prestashop

我需要将html标签保存在“创建/编辑产品”页面的“功能”部分。

我在class / FeatureValue.php中更改了TYPE_HTMLisCleanHTML,但是验证仍然忽略了html标签。

例如

'value' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml', 'required' => true, 'size' => 255),

谢谢。

See example

1 个答案:

答案 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.phpvar\cache\dev文件夹中删除var\cache\prod文件。

希望它将对您有帮助!