Программно создавая CMS/страницу в Magento
Я видел следующий ответ на сообщение Где хранятся статические блоки CMS Magento? относительно программного использования PHP, генерирующего cms/blocks в Magento.
Я изменил код на следующий
$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();
... и он работает. Я вижу, что новая страница отображается в области CMS Pages в бэкэнд.
Что мне нужно добавить, так это возможность установить содержимое других полей в CMS/Page. А именно:
- Макет (попытка установить 1 столбец)
- ключевое слово
- мета-описание
поля. Эти поля в настоящий момент пусты. Я до сих пор не смог понять эту часть.
Спасибо,
Ответы
Ответ 1
здесь вы идете:
$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();
Ключи массива - это имя полей таблицы cms_page
(проверьте db). И чтобы знать значение, я вручную создаю страницу cms, которую я хочу, а затем вижу значение для этой записи в db.