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()));
и тогда вы сможете определить свое собственное "значение" в определении конфигурации
Следует отметить, что этот модуль не поддерживает выбор нескольких продуктов для одного поля. Если вы хотите более одного продукта, вам понадобится несколько полей.