我正在编程创建网站/用户等...Magento:设置刚刚创建的网站的配置值?
这是问题:创建网站时,我不能马上设置配置值。
代码:
<?php
/* Website information */
$website_data = array(
'name' => 'Company name',
'code' => 'website_company_1',
'sort_order' => '1',
);
/* Save website */
$website = Mage::getModel('core/website');
$website->setData($website_data);
$website->save();
/* Get website code */
$web_code = $website->getCode();
/* R-int stores */
Mage::app()->reinitStores();
/* Config data array example */
$data = array('name' => 'Company 1', 'phone' => '056 22 33 61')
/* Set config values in array */
$groups = array();
foreach($data as $key => $value){
$groups['store_information']['fields'][$key]['value'] = $value;
}
/* Save config values */
Mage::getModel('adminhtml/config_data')
->setSection('general')
->setWebsite($web_code)
->setStore(NULL)
->setGroups($groups)
->save();
/* Re-init again */
Mage::app()->reinitStores();
然而,这并不能出于某种原因,但如果我先创建一个网站(代码相同),然后执行此之后配置保存功能,它工作正常。就好像它需要首先加载一个新的页面,然后才能设置/更新配置值。我认为重新启动会解决这个问题,但它不会...
想法?
的更多细节将有助于人们调试此。具体来说,$ website_data和$ data中的内容以及它们从哪里填充。 – 2010-08-30 20:38:49
增加了一些示例代码,因为实际的代码是很重要的。这两个都只是关联数组,可以正常工作,但已经创建的网站只是不在上,这是在同一个脚本中创建的... – Rakward 2010-08-31 06:36:54
我怀疑这里有一些索引。尝试开启SQL日志记录(参考http://www.magentocommerce。com/boards/viewreply/77655 /)在创建网站后捕获任何索引或其他活动,然后追踪负责该代码的代码,并将其复制到代码中。 – 2010-08-31 06:41:39