1

我有一个 Observer 类,我总是用来设置新的 magento 模板。

<?php

class Company_Customadmintheme_Controller_Observer
{ 
    public function overrideAdminTheme()
    {
        //if(Mage::getStoreConfig('design/admin/enable_admin_custom_theme') == 1)
            Mage::getDesign()->setArea('adminhtml')->setTheme('custom');
    }
}

在我的配置 xml

<?xml version="1.0"?>
<config>
  <global>
    <models>
        <comapnycustomadminthemecontroller>
             <class>Comapny_Customadmintheme_Controller</class>
        </comapnycustomadminthemecontroller>
    </models>
    <events>
      <adminhtml_controller_action_predispatch_start>
        <observers>
          <comapny_adminthemeoverride_observer>
            <type>singleton</type>
            <class>Comapny_Customadmintheme_Controller_Observer</class>
            <method>overrideAdminTheme</method>
          </comapny_adminthemeoverride_observer>
        </observers>
      </adminhtml_controller_action_predispatch_start>      
    </events>
  </global>
</config>

我有这个。对于安装时创建的主管理员用户,它工作正常。

现在我们有许多管理员用户将能够登录并只添加产品。但由于某种原因,它仍然显示 magento 默认模板/皮肤并且没有选择自定义模板(它仍然在可以访问所有模块的主管理员用户中工作/配置)。

因此,为了让目录用户也能看到相同的模板,我是否需要在 xml.xml 中指定任何内容。

在观察者类中,当我尝试查看当前模板/皮肤时,我仍然看到两个用户的以下数组。

object(Mage_Core_Model_Design_Package)#92 (8) {
  ["_store:protected"] => NULL
  ["_area:protected"] => string(9) "adminhtml"
  ["_name:protected"] => string(7) "default"
  ["_theme:protected"] => array(4) {
    ["layout"] => string(6) "custom"
    ["template"] => string(6) "custom"
    ["skin"] => string(6) "custom"
    ["locale"] => string(6) "custom"
  }
  ["_rootDir:protected"] => NULL
  ["_callbackFileDir:protected"] => NULL
  ["_config:protected"] => NULL
  ["_shouldFallback:protected"] => bool(true)
}

注意:我的皮肤/文件夹为新的法师管理员修改了 css,模板文件夹只有 page/head.phtml 来加载额外的 css。

请有人帮我解释为什么无法为管理员/目录用户看到相同的模板。

4

2 回答 2

2

这不是为您的后台使用自定义主题的正确方法。

Magento 已经实现了这一点。你只需要把它放在你的任何 config.xml 中(在 app/etc 或任何自定义模块中的那个)。

<?xml version="1.0" encoding="UTF-8"?>
<config>
   <stores>
      <admin>
         <design>
            <theme>
               <default>custom</default>
            </theme>
         </design>
      </admin>
   </stores>
</config> 

有了这个,Magento 将在 app/design/adminhtml/default/custom 中查找您的设计模板,并在 app/design/adminhtml/default/default 上进行故障转移,并在 skin/adminhtml/default/custom 中查找您的设计资源,并在 skin 上进行故障转移/adminhtml/默认/默认

于 2012-04-10T13:50:56.043 回答
0

修复!

问题不在系统 > 配置 > 设计中,但实际上系统 > 设计我发现系统 > 设计为默认/购​​物者设置了它,并且没有时间框架。以下链接帮助我得出结论。

http://www.magentocommerce.com/boards/viewthread/197908/

您应该系统 > 设计临时主题更改,但我的网站设置它没有时间框架,因此总是覆盖我在系统 > 配置 > 设计中的设置

于 2013-11-04T17:16:31.177 回答