2011-09-05 2 views
2

CMS에 새 필드 추가 -> 페이지 내용 -> 편집 페이지 -> 디자인 탭Magento의 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

내 동료가 내게이 질문에 대한 답을주었습니다. 데이터베이스의이 (enterprise_cms_page_revision) 테이블에도 동일한 필드를 추가하기 만하면됩니다. – Nick

+0

솔루션을 의견이 아닌 별도의 답변으로 게시하고 동의 할 수 있습니다. –

+0

몇 시간을 기다릴 필요가 있습니다. 내 평점은 지금 할 수 없습니다. – Nick

답변

2

내 동료가 나에게이 질문에 대한 대답했다 : 나를 위해

$form->setValues($model->getData()); 
$this->setForm($form); 

Mage::dispatchEvent('adminhtml_cms_page_edit_tab_content_prepare_form', array('form' => $form)); 

솔루션 인 끝났다 :

이 이벤트는 -after- 형태의 값은 모델 데이터에서 설정되어 발송됩니다, 알고 보니 . 데이터베이스의이 (enterprise_cms_page_revision) 테이블에도 동일한 필드를 추가하기 만하면됩니다. 여기

1

이 코드를 어떻게 추가 했습니까? 매우 비슷한 문제가 있었지만 'adminhtml_cms_page_edit_tab_content_prepare_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

1

어떻게 (이 경우이되는 화상 필드) CMS 페이지에 새 필드를 처리하는 더 많은 정보를 찾을 수 있습니다 : 우리는 2 관찰자가 양식을 편집 할 새로운 필드를 추가 처리 및 저장 처리하기 위해 추가 한 http://blog.flexishore.com/2011/08/add-custom-field-to-cms-page/

을 CMS 페이지를 저장하는 동안 이미지.

관련 문제