Я пытаюсь реализовать встроенный виджет. Администраторы смогут настроить этот виджет и встроить его в редактор WYSIWYG. Два из многих параметров конфигурации - это список продуктов, которые должны отображаться в интерфейсе и списке категорий.
Я хочу разрешить этот выбор с помощью adminhtml/catalog_product_widget_chooser "и" adminhtml/catalog_category_widget_chooser ". Я попытался реализовать эти виджеты с разреженной документацией, доступной в Интернете, но все, что мне удалось выполнить, - это реализация для выбора одного продукта или выбора одной категории. Мне нужно многосегментное поведение.
Насколько я могу судить, для текущей реализации не разрешена возможность многократного выбора. Я проверил код для обоих классов и шаблон grid.phtml, и он швы он плохо написан и не расширяется за пределами текущего намерения использования. Например, так вы предположили бы инициализировать вспомогательный блок для параметра виджета, чтобы разрешить множественный выбор:
<helper_block>
<type>adminhtml/catalog_product_widget_chooser</type>
<data>
<button translate="open">
<open>Select Products...</open>
</button>
<use_massaction>1</use_massaction>
</data>
</helper_block>
Но выбор продукта жестко закодирован для использования без массовых действий с этой частью кода:
public function prepareElementHtml(Varien_Data_Form_Element_Abstract $element)
{
$uniqId = Mage::helper('core')->uniqHash($element->getId());
$sourceUrl = $this->getUrl('*/catalog_product_widget/chooser', array(
'uniq_id' => $uniqId,
'use_massaction' => false,
));
...
И шаблон grid.phtml, который должен иметь какую-то кнопку для подтверждения множественного выбора, просто показывает кнопки "Поиск" и "Reset фильтр". И нет необходимости добавлять другую кнопку. Например, здесь используется код по умолчанию для печати кнопки html:
public function getMainButtonsHtml()
{
$html = '';
if($this->getFilterVisibility()){
$html.= $this->getResetFilterButtonHtml();
$html.= $this->getSearchButtonHtml();
}
return $html;
}
По умолчанию будут напечатаны только эти две кнопки.
Итак, я начал свою собственную реализацию на основе двух реализаций, упомянутых выше, и она становится уродливой и может закончиться как незаменимый беспорядок копий-макарон. И я работаю по принципу: если что-то начинает выглядеть уродливо, я делаю что-то неправильно.
Итак, существует ли простой способ реализовать множественный выбор продуктов и нескольких категорий на экране конфигурации виджета с помощью виджета сетки?