使用magento管理员角色权限中的事件观察者添加网站字段
我正在创建一个模块,允许用户在创建角色权限时选择网站(系统->权限->角色->添加新角色->角色资源)。我正在使用一个观察者来实现这一点,但是我无法获得表单对象 Observer.php使用magento管理员角色权限中的事件观察者添加网站字段,magento,Magento,我正在创建一个模块,允许用户在创建角色权限时选择网站(系统->权限->角色->添加新角色->角色资源)。我正在使用一个观察者来实现这一点,但是我无法获得表单对象 Observer.php class Mymodule_Mycompany_Model_Observer { public function appendCustomRow(Varien_Event_Observer $observer) { $block = $observer->getEve
class Mymodule_Mycompany_Model_Observer
{
public function appendCustomRow(Varien_Event_Observer $observer)
{
$block = $observer->getEvent()->getBlock();
if (!isset($block)) {
return $this;
}
if ($block->getType() == 'adminhtml/permissions_editroles') {
//get form instance
$form = $observer->getEvent()->getForm();
//create new custom fieldset 'website'
$fieldset = $form->addFieldset('website', array(
'legend' => 'Website Extras',
'class' => 'fieldset-wide'
)
);
//add new field
$fieldset->addField('website', 'text', array(
'name' => 'website',
'label' => Mage::helper('adminhtml')->__('Website'),
'title' => Mage::helper('adminhtml')->__('Website'),
'disabled' => false,
));
}
}
}
Mymodule/Mycompany/etc/config.xml
<adminhtml>
<events>
<core_block_abstract_prepare_layout_before>
<observers>
<Event_column_append>
<type>model</type>
<class>Mymodule_Mycompany_Model_Observer</class>
<method>appendCustomColumn</method>
</Event_column_append>
</observers>
</core_block_abstract_prepare_layout_before>
</events>
</adminhtml>
模型
Mymodule\u Mycompany\u Model\u Observer
附加自定义列
我算出来了。下面是一段经过修改的代码
public function appendCustomColumn(Varien_Event_Observer $observer)
{
$block = $observer->getEvent()->getBlock();
if (!isset($block)) {
return $this;
}
if ($block->getType() == 'adminhtml/permissions_tab_roleinfo') {
//get form instance
$form = $block->getForm();
//create new custom fieldset 'website'
$fieldset = $form->addFieldset(
'website_field',
array(
'legend' => 'Website Extras',
'class' => 'fieldset-wide'
)
);
//add new field
$fieldset->addField('website', 'text', array(
'name' => 'website',
'label' => Mage::helper('adminhtml')->__('Website'),
'title' => Mage::helper('adminhtml')->__('Website'),
'disabled' => false,
));
}
}
XML配置:
<events>
<adminhtml_block_html_before>
<observers>
<Event_column_append>
<type>model</type>
<class>Mymodule_Mycompany_Model_Observer</class>
<method>appendCustomColumn</method>
</Event_column_append>
</observers>
</adminhtml_block_html_before>
</events>
模型
Mymodule\u Mycompany\u Model\u Observer
附加自定义列
斯瓦普纳太棒了。这正是我需要的。非常感谢你,朋友:)我以为我在活动名称上有问题。现在还有一件事显示在“角色信息”选项卡中。我需要“角色资源”选项卡中的“网站”字段。我该怎么做?它会自动保存值吗?或者我们需要在事件之前通过_saveBefore进行设置?