2013-06-29 4 views
7

私は何をしようとしていますMagentoでcmsページのリストを取得するには?

ユーザーは、ドロップダウンからCMSページを選択する必要がある管理フォームを作成しました。

は私が

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

を試してみましたが、どのようなアイデアは、コードがCMSモデルからオプションの配列を取得しています。しかし、 "toOptionArray"は 'cms/page'モデルのための無効な関数です。

私の質問

は、どのように私はMagentoの中のadminフォームで使用するためのCMSページのオプションの配列を得ることができますか?

答えて

16

コードでは、新しいcmsページモデルを読み込みます。次のコードのコレクションの使用を取得するとtoOptionArray()は、少なくとも何かが返されます:リンクと

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

CMSページの配列を

$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"]; 
} 
関連する問題