【问题标题】:Set package and theme at run time in magento2在 magento2 运行时设置包和主题
【发布时间】:2013-07-13 01:01:42
【问题描述】:

我的包名称是“company”,主题名称是“web”,我还有另一个包名为“system”,其主题名为“component”。

运行时间来自 Block 文件,但我想从 magento2 的前端设置主题和包。

【问题讨论】:

  • 所以,把你的名字改成一个更个性化的名字

标签: magento2


【解决方案1】:

您可以编写下面的代码来设置动作的包和主题:

Mage::getDesign()->setArea(‘frontend’) //Area (frontend|adminhtml)
    ->setPackageName(‘default’) //Name of Package
    ->setTheme(‘modern’); // Name of theme

您可以在布局处理程序中编写代码来设置主题:

<reference name=”root”>
    <action method=”setTheme”>
        <theme>modern</theme>
    </action>
</reference>

更改页面布局:

<reference name=”root”>
    <action method=”setTemplate”>
        <template>page/1column.phtml</template>
    </action>
</reference>

希望对你有帮助。

【讨论】:

  • 您好,上面的代码是用来设置该动作的主题。并且无论哪个 phtml 文件与该操作相关联,只有该 phtml 文件会受到该主题的影响。我想改变整个主题。有可能吗?
  • 我和 Jen 有同样的问题。模板文件更改,但新主题的布局 xml 未得到处理。 magento.stackexchange.com/questions/17525/…
【解决方案2】:

您可以使用以下代码以编程方式设置主题:

Mage::getDesign()->setArea('frontend') //Area (frontend|adminhtml)
    ->setPackageName('default') //Name of Package
    ->setTheme('modern'); // Name of theme

http://roshanlal.in/magento/magento-programmatically-change-theme/#more-193

【讨论】:

  • 感谢您的帮助。但是,这仅适用于该特定操作。如果我想为所有页面设置该主题,我应该怎么做。
【解决方案3】:

如果你想在 magento 运行时设置包和主题,只需使用这个代码 sn-p。

  1. 创建一个函数,例如。 changeTheme('主题名称');并根据您的要求运行此功能

  2. 在你的 head.phtml 中添加这个函数在 php 启动之后。

     function changeTheme($themeName)
     {
       Mage::getDesign()->setArea('frontend') //Area (frontend|adminhtml)
                        ->setPackageName('default') //Name of Package
                        ->setTheme($themeName); // Name of theme
     }
    

享受:)

【讨论】:

    猜你喜欢
    • 2022-07-05
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 2017-02-21
    • 2021-05-08
    • 1970-01-01
    相关资源
    最近更新 更多