2013-06-29 6 views
7

Was ich versuche, todoWie bekomme ich eine Liste von CMS-Seiten in Magento?

Ich habe ein Admin-Formular erstellt, in dem der Benutzer nach unten einer CMS-Seite aus einem Drop auswählen muss.

Was ich

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

Die Idee versucht haben, ist der Code erhält die Option Array aus dem Modell CMS. "ToOptionArray" ist jedoch eine ungültige Funktion für das "cms/page" -Modell.

Meine Frage

Wie kann ich eine Option Array von CMS-Seiten für die Verwendung in einer Admin Form in Magento bekommen?

Antwort

16

Mit Ihrem Code laden Sie ein neues CMS-Seitenmodell. Um eine Sammlung Verwendung folgender Code zu erhalten und toOptionArray() mindestens zurückgeben etwas:

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

CMS Seiten Array in Verbindung mit Links

$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"]; 
} 
Verwandte Themen