我的Magento奇怪的事。我看不出问题。
我已经创建了一个模块。 (它扩展了CMS页面)
在Observer.php
我得到了:
$fieldset->addField('news_header_image', 'image', array(
'name' => 'news_header_image',
'label' => Mage::helper('cms')->__('News Header image 80x80 pics'),
'title' => Mage::helper('cms')->__('News Header image 80x80 pics'),
'value' => $model['news_header_image']
));
这可以很好,但是......
在我的observer.php public function savePage(Varien_Event_Observer $observer)
中
我可以使用:$_POST['news_header_image']
但 $_FILES['news_header_image']['name']
(甚至var_dump($_FILES)
)完全为空: -S
这里有什么问题?谢谢!
答案 0 :(得分:1)
您需要将enctype添加到cms页面的<form>
/**
* Add enctype to cms page edit form
*
* @param $observer Varien_Event_Observer
*
* @return void
*/
public function adminhtmlBlockHtmlBefore($observer)
{
$block = $observer->getEvent()->getBlock();
if ($block instanceof Mage_Adminhtml_Block_Cms_Page_Edit_Form) {
$block->getForm()->setEnctype('multipart/form-data');
}
}
并将其添加到您的配置中:
<config>
<adminhtml>
<events>
<adminhtml_block_html_before>
<observers>
<threeaart_pagetemplates>
<type>singleton</type>
<class>ThreeAArt_PageTemplates_Model_Observer</class>
<method>adminhtmlBlockHtmlBefore</method>
</threeaart_pagetemplates>
</observers>
</adminhtml_block_html_before>
</events>
</adminhtml>
</config>
答案 1 :(得分:0)
我认为您应该使用observer对象而不是直接通过_POST变量获取事件附加的任何值。
我不熟悉CMS事件,但如果您执行以下调试转储,以查看特定事件中可用的值。
$observer->getEvent()