我正在尝试为CMS页面添加额外的属性。我可以按照http://blog.flexishore.com/2011/08/add-custom-field-to-cms-page/的帮助添加这些额外的字段。
但是,我无法添加图像,因为CMS页面的表单没有enctype =“multipart / form-data”。为了解决这个问题,我不得不创建原始Magento文件的本地副本。 \应用\代码\本地\法师\ Adminhtml \块\ CMS \页\编辑\ form.php的
理想情况下,我想使用观察者注入enctype。我到处乱窜,没有找到合适的解决方案。
我希望能够添加类似$ form-> setHtmlAttributes('enctype','multipart / form-data')
public function prepareFormMainTab(Varien_Event_Observer $observer)
{
$form = $observer->getEvent()->getForm();
$fieldset = $form->addFieldset('fieldset', array(
'legend' => 'CMS Extras',
'class' => 'fieldset-wide'
)
);
$fieldset->addField('imagefile', 'image', array(
'name' => 'imagefile',
'label' => 'Image',
'title' => 'Image'
));
}
答案 0 :(得分:2)
</global>
</events>
<adminhtml_block_html_before>
<observers>
<event_column_append>
<type>model</type>
<class>observer_class</class>
<method>addFormEnctype</method>
</event_column_append>
</observers>
</adminhtml_block_html_before>
</events>
</global>
观察者方法应如下所示:
public function addFormEnctype($observer){
$block = $observer->getEvent()->getBlock();
if ($block instanceof Class_Where_Form_Is_Instaniated){
$form = $observer->getBlock()->getForm();
$form->setData('enctype', 'multipart/form-data');
//depends of form what you wand modify
$form->setUseContainer(true);
}
}
答案 1 :(得分:-1)
试
$form->setEnctype('multipart/form-data')
或
$form->setData('enctype', 'multipart/form-data')