Я ищу решение в PHP для программной установки домашней страницы CMS в Magento.То, что я ищу, - это то, что вы получаете, когда используете ручной метод выбора заголовка страницы из выпадающего меню в Системе-> Конфигурация-> Веб-> Домашняя страница CMS.
У меня уже есть методычтобы определить, выбрать какой-либо из набора заголовков страниц или я могу выбрать из набора URL-ключей для всех страниц CMS в магазине.Если я знаю либо заголовок страницы, либо URL-ключ, то какие методы PHP Mage необходимы для изменения текущей домашней страницы CMS.
Я уже рассчитал код для создания новой страницы CMS.Я просто хотел бы иметь возможность выбрать его и сделать активным домашнюю страницу, когда я закончу.
Редактировать: 18.02.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();
РЕДАКТИРОВАТЬ: Спасибо за скриншот.У меня не было тех прав.Мой URL при выборе магазина: ... / index.php / admin / system_config / edit / section / general / website / base / store / default /
Что, я предполагаю, означает website = base, store = default
Интернет-магазин http://reefworkshop.com/posts/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();
Но я все еще не показываю изменения выбранной домашней страницы CMS.Я обновляю интерфейс, и он не переключается.Я также попытался очистить кэш без удачи.Есть идеи?Просто к вашему сведению Я использую Magento CE 1.5.1.0
РЕДАКТИРОВАТЬ:
Вот содержимое файла, который я запускаю.Я помещаю файл в корень моей Magento Install.:
<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
РЕДАКТИРОВАТЬ: ОК Итак, я нашел решение(это работает), которое было вдохновлено последним предложенным решением:
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();
Вуаля, это работает.Кеш конфигурации - это действительно все, что нужно было почистить (я подтвердил это вручную).Так что очистка всего кеша немного излишня, но да ладно, работает.