magento中cms块选择器的source_model是什么?

时间:2013-07-09 09:04:29

标签: magento model magento-1.12

我想在我的magento实例中添加config字段。你应该能够在其中存储一个cms块。

<block translate="label">
    <label>Cms block</label>
    <frontend_type>select</frontend_type>
    <source_model>???</source_model>
    <sort_order>30</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>1</show_in_store>
</block>

但我只找到了cms pages adminhtml/system_config_source_cms_page)的模型。

cms 的对应source_model是什么?

4 个答案:

答案 0 :(得分:8)

我认为课程Mage_Cms_Model_Resource_Block_Collection对此非常有用:

                    <cms_block translate="label">
                      <label>Left template CMS block</label>
                      <frontend_type>select</frontend_type>
                      <source_model>cms/resource_block_collection</source_model>
                      <sort_order>0</sort_order>     
                      <show_in_default>1</show_in_default>
                      <show_in_website>0</show_in_website>
                      <show_in_store>0</show_in_store>
                    </cms_block>   

答案 1 :(得分:4)

没有,但你可以制作你的:

class Your_Module_Model_System_Config_Source_Cms_Block
{
    protected $_options;

    public function toOptionArray()
    {
        if (!$this->_options) {
            $this->_options = Mage::getResourceModel('cms/block_collection')
                ->load()
                ->toOptionArray();
        }
        return $this->_options;
    }
}

答案 2 :(得分:2)

创建自己的源模型 -

class Namespace_Modulename_Model_System_Config_Source_Cmsblock
{
    protected $_options;

    public function toOptionArray()
    {
        if (!$this->_options) {
            $this->_options = Mage::getResourceModel('cms/block_collection')
                ->load()
                ->toOptionArray();
        }
        return $this->_options;
    }
}

将其包含在您的系统xml:

<block translate="label">
  <label>Cms block</label>
  <frontend_type>select</frontend_type>
  <source_model>modulename/system_config_source_cmsblock</source_model>
  <sort_order>30</sort_order>
  <show_in_default>1</show_in_default>
  <show_in_website>1</show_in_website>
  <show_in_store>1</show_in_store>
</block>

答案 3 :(得分:2)

您可以使用与类别静态块字段相同的模型:Catalog_Model_Category_Attribute_Source_Page又名catalog/category_attribute_source_page

<block translate="label">
  <label>Cms block</label>
  <frontend_type>select</frontend_type>
  <source_model>catalog/category_attribute_source_page</source_model>
  <sort_order>30</sort_order>
  <show_in_default>1</show_in_default>
  <show_in_website>1</show_in_website>
  <show_in_store>1</show_in_store>
</block>