我向CMS添加了新字段>页面内容 - >修改页面 - >设计标签
$designFieldset->addField('header_image', 'image', array(
'name' => 'header_image',
'label' => Mage::helper('cms')->__('Image'),
'title' => Mage::helper('cms')->__('Image'),
'disabled' => $isElementDisabled
));
然后我将此字段添加到数据库中的cms_page
表中,还将代码添加到saveAction()
函数中,
图片上传和保存工作正常。
但是当我打开要编辑的页面时,函数getData()
不想加载此字段值。
有人面对这个吗?
感谢。
答案 0 :(得分:2)
我的同事给了我这个问题的答案。只需要在数据库中为此(enterprise_cms_page_revision)表添加相同的字段。
答案 1 :(得分:1)
您是如何添加此代码的?我有一个非常类似的问题,但那是因为我使用'adminhtml_cms_page_edit_tab_content_prepare_form'事件。
事实证明,此事件将被调度 - 后期形式值从模型数据设置:
$form->setValues($model->getData());
$this->setForm($form);
Mage::dispatchEvent('adminhtml_cms_page_edit_tab_content_prepare_form', array('form' => $form));
我的解决方案结束了:
class SomeCompany_SomeModule_Block_Cms_Page_Edit_Tab_Content_Observer {
public function someMethod($observer) {
$form = $observer->getEvent()->getForm();
$fieldset = $form->getElement('content_fieldset');
$fieldset->addField('some_field', 'text', array(
'name' => 'some_field',
'label' => Mage::helper('cms')->__('Some Field'),
'title' => Mage::helper('cms')->__('Some Field')
));
/*
* Magento amazingly does this BEFORE firing the event, so it will not
* populate fields added inside the observer, so call it again to populate
* our custom fields.
*/
$form->setValues(Mage::registry('cms_page')->getData());
}
}