以编程方式更改Magento的核心数据

时间:2013-08-27 19:55:20

标签: magento themes

我目前正在开设一个实时网站,但问题是他们想切换主题,所以我想安装新主题,只能通过我的IP地址查看。

麻烦的是我不知道如何以编程方式更改Magento主题和皮肤值。

你们中有谁可以帮助我吗?

3 个答案:

答案 0 :(得分:3)

所以这不是一个直接的答案。最佳实践是备份数据库和系统,并还原到开发环境文件和数据库。

编辑core_config_data表中每个商店的两个条目,将网址从实际网站更改为开发网站网址。

然后在开发站点上开发新的或修改过的主题,并在准备推送更改时将文件部署到实时服务器。

可能有另一种方法可以做到这一点。您可以在Magento安装中创建新商店请参阅How to Make Multiple Stores,然后将主题文件夹复制到您的开发名称目录。最后配置新的/ dev商店以使用您的开发主题。

这两个都是可行的选择。试图欺骗Magento为你的IP服务一个主题,而另一个主题为其他人服务似乎是在寻找麻烦。

答案 1 :(得分:2)

这可以在不修改Magento核心的情况下完成。

它涉及Chrome并将您的用户代理设置为自定义内容。

首先,在Magento中创建一个例外 - 我们将匹配的表达式设置为dev并将包设置为new-theme。如果您的用户代理与new-theme匹配,则会将您的包设置为dev(将提供app/design/frontend/new-theme中的主题:

Magento config

然后第二步也是最后一步是在Chrome中打开您的开发者工具栏,并将您的用户代理设置为dev

Chrome config

采取这两个简单的步骤,您可以自己编程设置主题包,而不会影响其他人。

答案 2 :(得分:1)

你可以用

完成
Mage::getSingleton('core/design_package')->setTheme('default');

对于实现,只需创建一个加载所有页面的块并将其添加到构造函数中。

XML就是这样的:

<layout version="0.1.0">
    <default>
        <reference name="content">
            <block type="kervin/theme" name="kervin.theme"/>
        </reference>
    </default>
</layout>

和theme.php,该块将是:

class My_Kervin_Block_Theme extends Mage_Core_Block_Template
{
    public function __construct()
    {
        if ($_SERVER["REMOTE_ADDR"] == 'xxx') {
            Mage::getSingleton('core/design_package')->setTheme('default');
        }

    }
}