Используйте флажок Веб-сайт/По умолчанию для поля формы виджета Mage Adminhtml Block


У меня есть форма в разделе администратора, которая имеет дело с пользовательской сущностью. У этой сущности есть основная таблица, а затем таблица для хранения параметров на уровне хранилища. Мне интересно, можно ли использовать те же флажки в моей форме, что и на странице редактирования конфигурации или продукта, при изменении области действия.

Моя форма расширяется Mage_Adminhtml_Block_Widget_Form, и я добавляю поля следующим образом.

$fieldSet->addField(
        'field_code',
        'text',
        array(
            'label'    => Mage::helper('myhelper')->__('Field Label'),
            'class'    => '',
            'required' => false,
            'name'     => 'field_code',
        )
    );

Я уже добавил переключатель области через layout.xml и сохраните значения сущностей для область действия в отдельной таблице, которая все хорошо работает.

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

ПРИМЕЧАНИЕ: Я видел, как некоторые люди использовали after_element_html раньше для добавления элементов, но я подумал, что может быть основная функция, которая сделает это.

Author: David Manners, 2014-01-21

1 answers

Не уверен, что это решение вашей проблемы, но это может быть подсказкой в правильном направлении.
Вы можете указать пользовательский элемент, отображаемый на любой из вкладок вашей формы, следующим образом (пример взят из модуля каталога):

protected function _prepareLayout()
{
    Varien_Data_Form::setElementRenderer(
        $this->getLayout()->createBlock('adminhtml/widget_form_renderer_element')
    );
    Varien_Data_Form::setFieldsetRenderer(
        $this->getLayout()->createBlock('adminhtml/widget_form_renderer_fieldset')
    );
    Varien_Data_Form::setFieldsetElementRenderer(
        $this->getLayout()->createBlock('adminhtml/catalog_form_renderer_fieldset_element')
    );
}

Последний метод устанавливает блок визуализации элементов. Вы можете попытаться использовать это, но я думаю, что вы получите некоторые ошибки, потому что это предназначено для объектов подслушивания.
Вы можете создать блок, который расширяет Mage_Adminhtml_Block_Catalog_Form_Renderer_Fieldset_Element, и добавить к нему пользовательский шаблон, аналогичный catalog/form/renderer/fieldset/element.phtml где вы можете добавить свои флажки или что-нибудь еще.

 1
Author: Marius, 2014-01-22 11:15:30