Добавить HTML-теги в функции продукта - PullRequest
0 голосов
/ 25 октября 2018

Мне нужно сохранить HTML-теги в разделе функций на странице создания / редактирования продукта.

Я изменил TYPE_HTML и isCleanHTML в классах / FeatureValue.php, но проверка по-прежнему игнорирует HTML-теги.

Пример.

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

Спасибо.

См. Пример

1 Ответ

0 голосов
/ 26 октября 2018

Необходимо использовать definition из FeatureValue и изменить его так, чтобы он мог сохранять HTML, а также изменять код в файле, в котором он сохраняет значение пользовательской функции продукта.Вместо того, чтобы вносить изменения в основные файлы , я буду использовать Переопределения .

Выполните следующие шаги.

1) Создайте файл Product.php file по пути 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) To autoload вновь созданные файлы классов переопределения;удалите файл class_index.php из папки var\cache\dev и var\cache\prod.

Надеюсь, он вам поможет!

...