администратор создает продукт, ограничение на проверку пользовательских атрибутов для выбора числа между


У меня есть пользовательский атрибут продукта под названием Пожертвование , я создал его с помощью

Catelog->Attribute->Manage-Attribute   Add New Attribute.

У них нет проблем, все работает нормально, но мне нужно добавить проверку для этих полей,

При создании продукта администратор должен указывать число от 20 до 100, я упоминаю здесь процент, а 20 - минимальный процент пожертвования,

Я не могу этого сделать, помогите мне, Как это подтвердить? или как я могу ограничить администратора в выборе числа от 20 до 100,? Заранее спасибо:)

Author: Charlie, 2014-07-24

1 answers

Одним из вариантов, который не включал бы никакого пользовательского кода, было бы сделать этот параметр полем выбора, а затем добавить все значения параметров из 20-100. Конечно, это может быть не самый красивый вариант, но он будет хорошо работать.

Если вы не хотите добавлять все параметры к атрибуту, вы можете создать этот атрибут и задать исходную модель. В этой исходной модели вы можете затем заполнить поле выбора и не добавлять все параметры самостоятельно.

Просто настройте свой атрибут в сценарий настройки с исходной моделью

$setup->addAttribute('catalog_product', 'custom_select', array(
    'input' => 'select',
    'type' => 'int',
    'label' => 'Custom Select',
    'visible' => 1,
    'required' => 0,
    'user_defined' => 1,
    'source' => 'mymodule/selectoptions',
    'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));

, А затем добавьте исходный код модели.

class Mypackage_Mymodule_Model_Selectoptions extends Mage_Eav_Model_Entity_Attribute_Source_Abstract {

    public function getAllOptions($withEmpty = true)
    {
        // This code could be done in a for loop :)
        $options = array(
            array('label' => '20', 'value' => 20),
            array('label' => '21', 'value' => 21),
            array('label' => '22', 'value' => 22),
            array('label' => '23', 'value' => 23),
            ....
        );
        if ($withEmpty) {
            array_unshift($options, array('label' => '', 'value' => ''));
        }

        return $options;
    }
}
 1
Author: David Manners, 2014-07-25 07:54:20