2017-07-07 2 views
1

Ich versuche, dem Magento CMS-Seiteneditor ein benutzerdefiniertes Feld hinzuzufügen, indem ich this führe, aber ich bin nicht in der Lage, das zusätzliche Feld im Backend anzuzeigen.Versuchen, ein benutzerdefiniertes Feld zur Magento-Seite hinzuzufügen CMS

Hier sind die Dateien, die ich erstellt haben:

ddog_customcms.xml in/app/etc/modules

<config> 
    <modules> 
     <ddog_customcms> 
      <active>true</active> 
      <codePool>local</codePool> 
      <depends/> 
     </ddog_customcms> 
    </modules> 
</config> 

config.xml in/app/code/local/ddog/customcms/etc

<?xml version="1.0"?> 
<config> 
    <modules> 
     <ddog_customcms> 
      <version>1.0.0</version> 
     </ddog_customcms> 
    </modules> 
    <global> 
     <models> 
      <ddog_customcms> 
       <class>ddog_customcms_Model</class> 
      </ddog_customcms> 
     </models> 
     <events> 
      <adminhtml_cms_page_edit_tab_content_prepare_form> 
       <observers> 
        <ddog_customcms_page_edit_tab_content> 
         <type>singleton</type> 
         <class>ddog_customcms_Model_Observer</class> 
         <method>cmsField</method> 
        </ddog_customcms_page_edit_tab_content> 
       </observers> 
      </adminhtml_cms_page_edit_tab_content_prepare_form> 
     </events> 
     <resources> 
      <ddog_customcms_setup> 
       <setup> 
        <module>ddog_customcms</module> 
       </setup> 
      </ddog_customcms_setup> 
     </resources> 
    </global> 
</config> 

content_custom Spalte hinzugefügt Datenbanktabelle

observer.php in/app/code/local/ddog/customcms/Model/

<?php 

class ddog_customcms_observer 
{ 
    public function addNewCmsField($observer) 
    { 
     //get CMS model with data 
     $model = Mage::registry('cms_page'); 
     //get form instance 
     $form = $observer->getForm(); 
     //create new custom fieldset 'ddog_customcms_content_fieldset' 
     $fieldset = $form->addFieldset('ddog_customcms_content_fieldset', array('legend'=>Mage::helper('cms')->__('Custom'),'class'=>'fieldset-wide')); 
     //add new field 
     $fieldset->addField('content_custom', 'text', array(
      'name'  => 'content_custom', 
      'label'  => Mage::helper('cms')->__('Content Custom'), 
      'title'  => Mage::helper('cms')->__('Content Custom'), 
      'disabled' => false, 
      //set field value 
      'value'  => $model->getContentCustom() 
     )); 

    } 
} 

ich den Cache gelöscht haben cms_page aber ich kann nicht bekommen das Feld, das irgendwo im Seiteneditor erscheinen soll. Kann jemand helfen?

+1

bei dieser Antwort einen Blick: https: // magento .stackexchange.com/a/53094 – Rushikumar

+0

Danke für die Antwort, aber ich habe mir diese Antwort schon angesehen und die Schritte versucht, aber immer noch kein Glück. –

Antwort

0

hier in Erklärung

<events> 
    <adminhtml_cms_page_edit_tab_content_prepare_form> 
     <observers> 
      <ddog_customcms_page_edit_tab_content> 
       <type>singleton</type> 
       <class>ddog_customcms_Model_Observer</class> 
       <method>cmsField</method> 
      </ddog_customcms_page_edit_tab_content> 
     </observers> 
    </adminhtml_cms_page_edit_tab_content_prepare_form> 
</events> 

setzen Sie Methodennamen cmsField aber in Beobachter schreiben Sie Methodennamen addNewCmsField ändern es zu cmsField und es wird funktionieren

+0

Guter Ort! Ich habe den Methodennamen in cmsField geändert, aber beim Bearbeiten einer Seite kann ich immer noch keine neuen Felder sehen. Gibt es etwas, was ich tun muss, außer den Cache zu löschen, damit er angezeigt wird? –

+0

Ihr Klassenname ist auch falsch –

+0

Es gibt keinen Fehler im Code Ich habe versucht, den Code und seine Arbeit ändern nur den Klassennamen des Beobachters zu Ddog_Customcms_Model_Observer –

Verwandte Themen