I added new field to CMS-> Page Content -> Edit page -> Design tab
$designFieldset->addField('header_image', 'image', array(
'name' => 'header_image',
'label' => Mage::helper('cms')->__('Image'),
'title' => Mage::helper('cms')->__('Image'),
'disabled' => $isElementDisabled
));
then I added this field to cms_page
table in database, also added code to saveAction()
function, image uploading and saving works normally.
But when I open page for edit, function getData()
doesn't want to load this field value. Anyone faced this? Thanks.
My coworker gave me answer for this question. Just need to add the same field to this (enterprise_cms_page_revision) table in database too.
How have you added this code? I had a very similar issue, but that's because I was using the 'adminhtml_cms_page_edit_tab_content_prepare_form' event.
Turns out, this event gets dispatched -after- form values are set from model data:
$form->setValues($model->getData());
$this->setForm($form);
Mage::dispatchEvent('adminhtml_cms_page_edit_tab_content_prepare_form', array('form' => $form));
Solution for me ended being:
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());
}
}