Программно установить текущую домашнюю CMS / страницу в Magento в PHP

Я ищу решение на PHP, чтобы программно установить домашнюю страницу CMS в Magento. То, что я ищу, – это то, что вы получаете, когда используете ручной метод выбора заголовка страницы из раскрывающегося списка в разделе Домашняя страница системы-> Конфигурация-> Веб-> CMS.

У меня уже есть методы для определения любого из наборов титров страниц, или я могу выбрать из набора URL-адресов для всех страниц CMS в магазине. Если я знаю либо название страницы, либо URL-адрес, какие методы PHP Mage необходимы для изменения текущей домашней страницы CMS.

Я уже понял код для создания новой страницы CMS. Я бы просто хотел, чтобы я смог выбрать его и активно активировать домашнюю страницу, когда закончите.

Редактировать: 02/18/2012

пробовал следующее без успеха:

$groups['default']['fields']['cms_home_page']['value'] = 'city-grips-handle-bar-covers'; Mage::getModel('adminhtml/config_data') ->setSection('web') ->setWebsite('Main Website') ->setStore('My Store Name') // Hid Actual Store name here ->setGroups($groups) ->save(); 

EDIT: Спасибо за скриншот. У меня не было таких прав. Мой url при выборе магазина … / index.php / admin / system_config / edit / section / general / website / base / store / default /

Я предполагаю, что означает веб-сайт = base, store = default

веб-сайт http://img.ruphp.com/webpage/website_store_url.png

Я изменил код на:

  $groups['default']['fields']['cms_home_page']['value'] = 'city-grips-handle-bar-covers'; Mage::getModel('adminhtml/config_data') ->setSection('web') ->setWebsite('base') ->setStore('default') ->setGroups($groups) ->save(); по  $groups['default']['fields']['cms_home_page']['value'] = 'city-grips-handle-bar-covers'; Mage::getModel('adminhtml/config_data') ->setSection('web') ->setWebsite('base') ->setStore('default') ->setGroups($groups) ->save(); 

Но я все еще не показываю выбранное изменение CMS. Я обновляю передний конец, и он не переключается. Я также попытался очистить кеш без везения. Есть идеи? просто FYI Я запускаю Magento CE 1.5.1.0

РЕДАКТИРОВАТЬ:

Вот содержимое файла, которое я запускаю. Я помещаю файл в корень моей установки Magento:

 <html> <head> </head> <body> <?php require_once('app/Mage.php'); //Path to Magento umask(0); Mage::app(); // Change default to whatever store you want to run print('CMS 1<br>'); $groups['default']['fields']['cms_home_page']['value'] = 'city-grips-handle-bar-covers'; print('CMS 2<br>'); Mage::getModel('adminhtml/config_data') ->setSection('web') ->setWebsite('base') // Code is the field name ->setStore('default') ->setGroups($groups) ->save(); print('CMS 3<br>'); ?> </body> </html> по <html> <head> </head> <body> <?php require_once('app/Mage.php'); //Path to Magento umask(0); Mage::app(); // Change default to whatever store you want to run print('CMS 1<br>'); $groups['default']['fields']['cms_home_page']['value'] = 'city-grips-handle-bar-covers'; print('CMS 2<br>'); Mage::getModel('adminhtml/config_data') ->setSection('web') ->setWebsite('base') // Code is the field name ->setStore('default') ->setGroups($groups) ->save(); print('CMS 3<br>'); ?> </body> </html> 

Когда я запускаю его, он отображается в окне браузера:

 CMS 1 CMS 2 CMS 3 

EDIT: OK Итак, я нашел решение (это работает), вдохновленное последним предлагаемым решением:

 require_once('app/Mage.php'); //Path to Magento umask(0); Mage::app(); // Change default to whatever store you want to run $Config = new Mage_Core_Model_Config(); $Config ->saveConfig('web/default/cms_home_page', "city-grips-handle-bar-covers"); Mage::app()->cleanCache(); 

Вуала работает. Кэш конфигурации – это все, что нужно было очистить (я подтвердил это вручную). Таким образом, очистка всего кеша немного переборщила, но хорошо, что это работает.