Подтвердить что ты не робот

Программно создавая 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 столбец)
  • ключевое слово
  • мета-описание

поля. Эти поля в настоящий момент пусты. Я до сих пор не смог понять эту часть.

Спасибо,

4b9b3361

Ответ 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.