尝试将自定义字段添加到Magento页面CMS

问题描述:

我正尝试使用this指南向Magento CMS页面编辑器添加自定义字段,但我无法获取要在后端显示的其他字段。尝试将自定义字段添加到Magento页面CMS

这里是我所创建的文件:在/ app/etc/modules中

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

config.xml文件在/ app /代码

ddog_customcms.xml /本地/ 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列添加到cms_page数据库表

observer.php在/ app /代码/本地/ ddog/customcms /型号/

<?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() 
     )); 

    } 
} 

我已清除缓存,但我不能让该字段出现在页面编辑器的任何地方。任何人都可以帮忙吗?

+1

看看这个答案:https://开头的Magento .stackexchange.com/a/53094 – Rushikumar

+0

感谢您的答复,但我已经看过答案并尝试了一些步骤,但仍然没有运气。 –

在这里声明

<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> 

设置方法名称cmsField但在观察你写的方法名addNewCmsField将其更改为cmsField,也将努力

+0

好景点!我已经将方法名称修改为cmsField,但编辑页面时仍然看不到任何新字段。除清除缓存以显示缓存外,还有什么需要做的吗? –

+0

您的班级名称也是错误的 –

+0

代码中没有任何错误我尝试了您的代码并将其工作只是将观察者的类名更改为Ddog_Customcms_Model_Observer –