Позвольте мне предвосхитить этот вопрос, объявив мой статус новичка, когда дело доходит до разработки интерфейса ...
Я пишу модуль администратора с новым экраном в панели администратора, состоящим из несколькихвкладки.Каждая вкладка добавляется с помощью функции $ this-addTab (...) в файле Tabs.php, например:
$this->addTab('form_products', array(
'label' => Mage::helper('mymodule')->__('All The Products'),
'title' => Mage::helper('mymodule')->__('All The Products'),
'content' => $this->getLayout()->createBlock ('mymodule/adminhtml_something_edit_tab_productsform')->toHtml(),
));
Эта вкладка содержит список продуктов с полем для флажка, заполненным функцией getSelectedProducts ().Файл блока для этой вкладки расширяется Mage_Adminhtml_Block_Widget_Grid
В ядре Magento я вижу, что вы используете что-то вроде следующего для объявления скрытого имени поля и функции обратного вызова данных:
<block type="adminhtml/widget_grid_serializer" name="related_grid_serializer">
<reference name="related_grid_serializer">
<action method="initSerializerBlock">
<grid_block_name>catalog.product.edit.tab.related</grid_block_name>
<data_callback>getSelectedRelatedProducts</data_callback>
<hidden_input_name>links[related]</hidden_input_name>
<reload_param_name>products_related</reload_param_name>
</action>
<action method="addColumnInputName">
<input_name>position</input_name>
</action>
</reference>
</block>
Мой вопросЕсть ли возможность объявить скрытое имя входа и функцию обратного вызова и т. д. во время создания блока в php?
Если нет, то мне нужна помощь с макетом xml .......
В данный момент мой файл layout.xml выглядит следующим образом:
<?xml version="1.0"?>
<layout version="0.1.0">
<mymodule_adminhtml_something_index>
<reference name="content">
<block type="mymodule/adminhtml_something" name="something" />
</reference>
</mymodule_adminhtml_something_index>
</layout>
Я попытался добавить объявление вложенного блока в это, например,
<?xml version="1.0"?>
<layout version="0.1.0">
<mymodule_adminhtml_something_index>
<reference name="content">
<block type="mymodule/adminhtml_something" name="something" />
<block type="mymodule/adminhtml_something_edit_tab_productsform" name="mymodule.adminhtml.something.edit.tab.productsform"/>
<block type="adminhtml/widget_grid_serializer" name="something_grid_serializer">
<reference name="something_grid_serializer">
<action method="initSerializerBlock">
<grid_block_name>mymodule.adminhtml.something.edit.tab.productsform</grid_block_name>
<data_callback>getSelectedProducts</data_callback>
<hidden_input_name>links[selected]</hidden_input_name>
<reload_param_name>products_selected</reload_param_name>
</action>
</reference>
</block>
</reference>
</mymodule_adminhtml_something_index>
</layout>
Вышеуказанные ошибки, так как он загружает мой файл блока одновременно с файлом основного блока (что, очевидно, не правильно).Я возился с вложением блоков выше и объявлением в отдельных тегах, например:
<mymodule_adminhtml_something_edit_form>
Движущей силой этого является попытка получить данные о любых флажках, выбранных в форме продуктов, опубликованных, когда формасохранено, чего на данный момент не происходит.