gpt4 book ai didi

web - Magento:设置刚刚创建的网站的配置值?

转载 作者:行者123 更新时间:2023-12-04 22:25:25 24 4
gpt4 key购买 nike

我正在以编程方式创建网站/用户等...

问题是:创建网站时,我无法在之后立即设置配置值。

代码:

<?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();

但是,由于某种原因,这不起作用,但是如果我先创建一个网站(使用相同的代码),然后执行此配置保存功能,它就可以正常工作。好像它需要先加载新页面,然后才能设置/更新配置值。我认为重新初始化会解决这个问题,但它没有......

想法?

最佳答案

您没有提到您使用的是哪个 Magento 版本。我已经在 1.4.1.1 上测试了以下内容并进行了一些更改,因此它是一个正在运行的示例。

主要区别是从

Mage::app()->reinitStores();


Mage::app()->getConfig()->reinit();

它重新加载配置,同时也重新加载缓存。

完整示例:
<?php

require_once 'app' . DIRECTORY_SEPARATOR . 'Mage.php';
Mage::app();

/* Website information */
$website_data = array(
'name' => 'Website Name',
'code' => 'website_company',
'sort_order' => '2',
'is_active' => 1,
);

/* Save website */
$website = Mage::getModel('core/website');
$website->setData($website_data);
$website->save()->load();

/* Save store */
$storeGroup = Mage::getModel('core/store_group');
$storeGroup->setData(
array(
'root_category_id' => '3',
'website_id' => $website->getId(),
'name' => 'Store',
)
);
$storeGroup->save()->load();

$store = Mage::getModel('core/store');
$store->setData(
array(
'website_id' => $website->getId(),
'name' => $storeGroup->getName(),
'code' => 'store_' . $website->load()->getId(),
'group_id' => $storeGroup->getGroupId(),
'is_active' => 1,
)
);
$store->save()->load();

/* Re-init */
Mage::app()->getConfig()->reinit();

/* 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 */
$data = Mage::getModel('adminhtml/config_data')
->setSection('general')
->setWebsite($website->getCode())
->setGroups($groups)
->save();

关于web - Magento:设置刚刚创建的网站的配置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3601643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com