Magento: How to change the admin theme

So you want to use Magento for your company and now you have to change the look of the backend. Of course you don’t want to change the default Magento adminhtml theme and kill any chances of upgrading your templates later on. So thats where this post comes into play. ;)

Theres an easy way to add your own theme folder and use it to customize the look of your admin control panel. All files that aren’t included in your theme will fall back to the default Magento theme, thus avoiding any problems with missing templates and making it a lot easier to change only a few files.

Add a new adminhtml theme

Start by adding a new folder inside the app/design/adminhtml/default folder. To start out, the folder should also contain one sub-folders called template.

So, for example, you add a folder called mytheme, and inside it you add another folder called template.

Overriding Magento configuration

All you have to do is add a new config.xml file inside app/code/local/MyCompany/Adminhtml/etc. Add the following code inside the file:

Note: if you created this file by following one of my earlier guides you don’t have to create it again and you would simply add the <stores> section at the appropriate location inside the existing file.
<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <MyCompany_Adminhtml>
            <version>0.1.1</version>
        </MyCompany_Adminhtml>
    </modules>
    <stores>
        <admin>
            <!-- override default admin design package and theme -->
            <design>
                <package>
                    <name>default</name>
                </package>
                <theme>
                    <default>mytheme</default>
                </theme>
            </design>
        </admin>
    </stores>
</config>

You will also have to tell Magento about this new module in an XML file placed inside /app/etc/modules. This file could be called MyCompany.xml and inside you would copy/paste:

Note: if you created this file by following one of my earlier guides you don’t have to create it again.
<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <MyCompany_Adminhtml>
	    <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Adminhtml />
            </depends>
        </MyCompany_Adminhtml>
    </modules>
</config>

Changing template files

Now to change the default Magento templates you basically copy the .phtml files from the app/design/adminhtml/default/default/template folder into your own template folder and change the contents of the .phtml file to suit your needs.

For example, if you want to change the login box and remove the Magento copyright message:

Copy app/design/adminhtml/default/default/template/login.phml into the app/design/adminhtml/default/mytheme/template folder and then change the <p class=”legal”></p> to put your own legal note.

Magento: How to disable update notifications

A short tutorial on how to block the “New Magento Version” notifications in the Magento admin without modifying the core packages.

Create a new package under app/code/local , for this example lets make a “MyCompany” package. If you already have an existing package for your magento mods you can use that one but you will have to change all references to MyCompany in the following code.

Create folder app/code/local/MyCompany

Create a new module called “Adminhtml” containing a “Block” folder and a “etc” folder.

Create folder app/code/local/MyCompany/Adminhtml
Create folder app/code/local/MyCompany/Adminhtml/Block
Create folder app/code/local/MyCompany/Adminhtml/etc

Add a “Notification” folder inside the Block folder.

Create folder app/code/local/MyCompany/Adminhtml/Block/Notification

Create Toolbar.php inside the MyCompany/Block/Notification folder.

<?php
/**
 * Block all notifications
 */
class MyCompany_Adminhtml_Block_Notification_Toolbar extends Mage_Adminhtml_Block_Template
{
    public function isShow()
    {
	return false;
    }

    public function isMessageWindowAvailable()
    {
        return false;
    }
}

Create Window.php inside the MyCompany/Adminhtml/Block/Notification folder.

<?php
/**
 * Prevent popup window
 */
class MyCompany_Adminhtml_Block_Notification_Window extends Mage_Adminhtml_Block_Notification_Window
{
    public function canShow()
    {
        return false;
    }
}

Create config.xml file inside the MyCompany/Adminhtml/etc folder

<?xml version="1.0" encoding="UTF-8"?>

<config>

    <modules>
        <MyCompany_Adminhtml>
            <version>0.1.0</version>
        </MyCompany_Adminhtml>
    </modules>

    <global>

        <blocks>
          <adminhtml>
              <rewrite>
             	  <notification_window>MyCompany_Adminhtml_Block_Notification_Window</notification_window>
		  <notification_toolbar>MyCompany_Adminhtml_Block_Notification_Toolbar</notification_toolbar>
              </rewrite>
          </adminhtml>
        </blocks>

    </global>

</config>

Last but not least, you have to create a new Modules XML file to load your module. Create MyCompany.xml inside the app/etc/modules folder.

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <MyCompany_Adminhtml>
	    <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Adminhtml />
            </depends>
        </MyCompany_Adminhtml>
    </modules>
</config>