2011-09-05 40 views
2
CMS頁面自定義字段

我增添了新的領域,以CMS->頁面內容 - >編輯頁面 - >設計選項卡在Magento的

$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

我的同事給了我這個問題的答案。只需要在數據庫的這個(enterprise_cms_page_revision)表中添加相同的字段。 – Nick

+0

您可能希望將解決方案作爲單獨的答案(而不是評論)發佈,然後接受它。 –

+0

需要等待幾個小時,我的評分不允許這樣做。 – Nick

回答

2

我的同事給了我回答這個問題。只需要在數據庫的這個(enterprise_cms_page_revision)表中添加相同的字段。

1

你是如何添加這段代碼的?我有一個非常類似的問題,但那是因爲我正在使用'adminhtml_cms_page_edit_tab_content_prepare_form'事件。

事實證明,這一事件被分派-after-形式值從模型數據集:

$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()); 
    } 

} 
+0

感謝您的幫助。 – Nick