简体   繁体   English

如何在Magento中获取cms页面列表?

[英]How to get a list of cms pages in Magento?

What i'm trying todo 我正在尝试做什么

I have created an admin form where the user needs to select a CMS page from a drop down. 我创建了一个管理表单,用户需要从下拉列表中选择一个CMS页面。

What i have tried 我试过的

$form->addField('cms_page_id', 'select', array(
'label'     => Mage::helper('custom/data')->__('CMS Page'),
'class'     => 'required-entry',
'required'  => true,
'name'      => 'cms_page_id',
'values'    => Mage::getSingleton('cms/page')->toOptionArray(),
'value'     => $this->getCmsPageId()
));

The idea is the code gets the an option array from the CMS model. 我们的想法是代码从CMS模型中获取一个选项数组。 However "toOptionArray" is an invalid function for the 'cms/page' model. 但是“toOptionArray”是'cms / page'模型的无效函数。

My Question 我的问题

How can I get an option array of CMS pages for use in an admin form in Magento? 如何在Magento的管理表单中获取CMS页面的选项数组?

With your code you are loading a new cms page model. 使用您的代码,您正在加载新的cms页面模型。 To get a collection use following code and toOptionArray() will at least return something: 要获取集合,请使用以下代码和toOptionArray()至少返回一些内容:

Mage::getModel('cms/page')->getCollection()->toOptionArray()

CMS Pages array with Links 带有链接的CMS Pages数组

$cms_arr = Mage::getModel('cms/page')->getCollection()->toOptionArray();   
$cms_pages[""] = "-Select CMS Page-"; 
foreach($cms_arr as $cms){ 
    $url = $this->getUrl($cms["value"]); 
    $cms_pages[$url] = $cms["label"]; 
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM