0

我的 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

这里有什么问题?谢谢!

4

2 回答 2

1

您需要将 enctype 添加到<form>cms 页面的

/**
 * 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>
于 2013-01-08T21:33:00.983 回答
0

我认为您应该使用观察者对象而不是直接通过 _POST 变量获取事件附加的任何值。

我不熟悉 CMS 事件,但如果您对以下内容进行调试转储,以查看您的特定事件中可用的值..

$observer->getEvent()
于 2013-01-08T14:07:51.620 回答