Magento: использование виджета выбора продукта при создании пользовательской формы в панели администратора

Я занимаюсь разработкой модуля Magento (1.7.0.2), который имеет собственную область управления в панели администратора.

Эта область содержит форму для обновления некоторых параметров, которая включает в себя текстовое поле для ввода идентификатора продукта. Вместо этого текстового поля я хотел бы использовать виджет выбора продукта, потому что проверка правильного идентификатора продукта и последующее ручное введение найденного идентификатора в форму - это боль в a**.

В настоящее время код для упомянутого текстового поля выглядит следующим образом:

$fieldset->addField(
    'product_id', 
    'text', 
    array(
        'label'     => $helper->__('Product'),
        'class'     => 'required-entry',
        'required'  => true,
        'name'      => 'product_id'
    )
);

Есть ли простой способ отобразить виджет выбора продукта вместо текстового поля?

2 ответа

Этот подход может быть одним из вариантов: http://andreitara.com/2012/02/using-magento-product-chooser-widget-in-youre-own-module/

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

Я бы предложил попробовать этот модуль: Extendix_AdminFormChooserButton. Это GitHub здесь. Это немного больше, чем изменение типа поля на "product_chooser", но это намного проще, чем любое другое решение, с которым я сталкивался до сих пор.

У него были проблемы с автоматической установкой моего значения после того, как я его сохранил, и он загружался пустым, когда загружалась страница. Чтобы это исправить, вы можете отредактировать Extendix/AdminFormChooserButton/Helper/Chooser.php и добавить

if (isset($config['value'])){
    $element->setValue($config['value']);
}

после

$element->setValue($dataModel->getData($element->getId()));

и тогда вы сможете определить свое собственное "значение" в определении конфигурации

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

Другие вопросы по тегам