2013-06-29 8 views
7

gì tôi đang cố gắng todoCách lấy danh sách các trang cm trong Magento?

Tôi đã tạo ra một hình thức quản trị mà người sử dụng cần để chọn một trang CMS từ một danh sách thả xuống.

gì tôi đã cố gắng

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

Ý tưởng là các mã được mảng một tùy chọn từ mô hình CMS. Tuy nhiên "toOptionArray" là một chức năng không hợp lệ cho mô hình 'cms/page'.

Câu hỏi của tôi

Làm thế nào tôi có thể nhận được một mảng tùy chọn của các trang CMS để sử dụng trong một hình thức quản trị trong Magento?

Trả lời

16

Với mã của bạn, bạn đang tải một mô hình trang cm mới. Để có được một bộ sưu tập sử dụng đoạn mã sau và toOptionArray() sẽ ít nhất là trở lại một cái gì đó:

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

trang CMS mảng với Liên kết

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