我有一个 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。
请有人帮我解释为什么无法为管理员/目录用户看到相同的模板。