2012-02-17 25 views
17

Tôi thấy câu trả lời sau cho bài đăng Where are Magento static CMS blocks stored? về lập trình sử dụng PHP tạo các cm/khối trong Magento.Lập trình tạo CMS/Trang trong Magento

tôi đã thay đổi mã như sau

$newBlock = Mage::getModel('cms/page') 
     ->setTitle('Test CMS Page Title') 
     ->setContent('Hello I\'m a new cms page.') 
     ->setIdentifier('this-is-the-page-url') 
     ->setIsActive(true) 
     ->save(); 

... và nó hoạt động. Tôi thấy một trang mới hiển thị trong khu vực Trang CMS trong phần cuối.

Điều tôi cần thêm vào đây là khả năng đặt nội dung của các trường khác trong CMS/Trang. Cụ thể:

  • Layout (cố gắng để thiết lập để 1 cột)
  • từ khóa meta
  • mô tả meta

lĩnh vực. Các trường này trống. Tôi cho đến nay đã không thể tìm ra phần này.

Cảm ơn,

+0

bạn là câu hỏi khá thú vị. . Mặc dù tôi muốn biết yêu cầu nào bạn đã kết luận với câu hỏi này. . . đang chờ 4 trả lời –

Trả lời

37

đây bạn đi:

$cmsPageData = array(
    'title' => 'Test CMS Page Title', 
    'root_template' => 'one_column', 
    'meta_keywords' => 'meta,keywords', 
    'meta_description' => 'meta description', 
    'identifier' => 'this-is-the-page-url', 
    'content_heading' => 'content heading', 
    'stores' => array(0),//available for all store views 
    'content' => "Hello I'm a new cms page." 
); 

Mage::getModel('cms/page')->setData($cmsPageData)->save(); 

Các phím của mảng là tên của các trường của bảng cms_page (đánh dấu vào db). Và để biết giá trị, tôi tự tạo trang cms mà tôi muốn và sau đó xem giá trị của mục nhập này trong db.

+0

Tuyệt vời! Làm việc hoàn hảo, tuy nhiên tôi phải thay đổi 'one_columns' thành 'one_column'. Chỉ là một lỗi đánh máy. Vì vậy, tôi nhận được nó -> tạo một mảng với các cặp khóa giá trị và sau đó gán nó làm dữ liệu Trang CMS. Có ý nghĩa. Làm thế nào để bạn biết những gì các phím và các giá trị cho các phím? – KyleDugger

+0

@ user1215510 Tôi đã sửa lỗi đánh máy, thx để chỉ ra. Tôi cũng mở rộng câu trả lời giải thích cách tôi nhận dữ liệu. – OSdave