Blog

Enable Template/Block Hints in Admin Panel

Anyone that has developed a theme in Magento knows how helpful template/block hints are. They help quickly identify which files are being loaded for a specific page.

Magento's admin panel uses the exact same design pattern as the frontend (layouts + blocks + templates). If you've ever done any modifications to the Magento admin panel, you've probably tried to turn on template/block hints for the admin panel. The only problem is, Magento doesn't have built-in support for this. I did some digging around and found out how to enable this feature in the admin panel.

Step 1 - Connect to database

Using your favorite database administration tool, connect to your Magento database. These are tools I've used and recommend: Navicat ($129), MySQL Query Browser (Free), Sequel Pro (Mac Only - Free), or phpMyAdmin (free).

Step 2 - Enter values into 'core_config_data' table

Run the following query on the Magento database:

INSERT INTO core_config_data (scope, scope_id, path, value)
VALUES ('default', 0, 'dev/debug/template_hints', 1),
('default', 0, 'dev/debug/template_hints_blocks', 1);

Step 3 - Test in admin panel

Once you make this addition to the core_config_data database, template/block hints should show up in the admin panel. Here is a screenshot of the CMS Page with hints turned on:

[caption id="attachment_10" align="alignnone" width="947" caption="Magento Admin - Hints Turned On"]Magento Admin - Hints Turned On[/caption]

Disabling Hints

When you've finished development want to turn off template hints in the admin panel, open the core_config_data table and change the 'value' column of the two row you inserted to "0".

Why does this work?

For those of you who are like me and want to know the "why" as well as the "how", I'm going to go over why this works. Here is the Magento code that checks to see if template/blocks hints are enabled:

File: /app/code/core/Mage/Core/Block/Template.php (Magento 1.3.2)
public function getShowTemplateHints()
{
    if (is_null(self::$_showTemplateHints)) {
        self::$_showTemplateHints = Mage::getStoreConfig('dev/debug/template_hints')
            && Mage::helper('core')->isDevAllowed();
        self::$_showTemplateHintsBlocks = Mage::getStoreConfig('dev/debug/template_hints_blocks')
            && Mage::helper('core')->isDevAllowed();
    }
    return self::$_showTemplateHints;
}

The "Mage::getStoreConfig" method checks for config values that are set in the current scope (ie, default, website, store, store view). In the admin panel, only values set in the "Default Scope" are loaded.

Magento only allows you to turn on hints when you're in the configuration scope of a Website or Store View. This means that when the code above tries to load the configuration, it returns "null" because that config value isn't set in the "Default Config" scope. Running the MySQL query above adds the hint config values to the "Default Config" scope. Here is a screenshot showing the settings for turning on the hints - notice that the "Main Website" configuration scope is selected.

[caption id="attachment_11" align="alignnone" width="926" caption="Magento Config Scope Selection"]Magento Config Scope Selection[/caption]

Conclusion

I hope this helps you in your development of Magento modules that integrate with the admin panel. I considering writing a module to enable the hints to be turned on in the "Default Scope", but decided against it, due to the simplicity of the method outlined in this post.

Posted on July 10, 2009

Posted by Erik Hansen

Comments

Banning Stuckey's picture

SQL to remove hints INSERT

SQL to remove hints


INSERT INTO core_config_data (scope, scope_id, path, value)
VALUES ('default', 0, 'dev/debug/template_hints', 0),
('default', 0, 'dev/debug/template_hints_blocks', 0)
ON DUPLICATE KEY UPDATE value=values(value)

Zakir Hussain's picture

Regarding Template Hints, I

Regarding Template Hints,

I could enable the Templete Hints in webshop using extension compatible with magento 1.7 and forwarding it for sharing of info.

1)Downloaded Templete Hints extension from http://www.magentocommerce.com/magento-connect/easy-template-path-hints....
2)Using Easy_Template_Path_Hints-0.2.0_ready2paste.zip ,I pasted Module in app/code/local and xml file in app/etc/modules
3)Logged to backend , System >> Configuration >> MagePsycho Extensions >> Easy Template Path Hints and clicked enabled ="YES" and Access Code = "" (means empty).
4)I tried in front end by adding ?tp=1 after any page URL and I could see the hints accordingly.

For instance,http://127.0.0.1/ leads to webshop home page, and http://127.0.0.1/?tp=1 shows the homepage with template hints.

Lee's picture

Hi. Would you happen to know

Hi.

Would you happen to know how to edit the description in the general tap located in the back-end when adding content to a product? I need to add something to the description value but I can't seem to find its location, been trying for so long. :(

Anonymous's picture

Thanks, this is super

Thanks, this is super helpful!

mamaloveu's picture

very useful! thanks

very useful! thanks

bhavana's picture

hi,i like your post.i would

hi,i like your post.i would like to share this on my blog too.thank you

Chris's picture

Thank you!! Very helpful

Thank you!! Very helpful

MagePsycho's picture

Hi Magento Lovers I have

Hi Magento Lovers

I have developed a great extension for enabling template path hints (for frontend & backend) easily just by passing some paramters via url.
Moreover it's like joomla like template path hints.

You can find more details & live demo @
http://www.magepsycho.com/easy-template-path-hints.html

Happy E-Commerce!!

Maha's picture

THANK YOU... This rocks :D

THANK YOU... This rocks :D

Blake's picture

wow, classllama has done it

wow, classllama has done it again! Spectacular work, you guys never cease to amaze me!

internetoutfitters's picture

rather than editing the

rather than editing the database directly, just go with @nate's solution above. edit the system.xml and the options for displaying template hints will show up for the Default config. worked great in 1.4

Superfly's picture

F**ing awesome!!!

F**ing awesome!!!

bigman00's picture

thanks for your work, I did

thanks for your work, I did what you told, changed the default table value to 0, still show little red box, can I ask why?

kuhajeyan's picture

Thanks that is lot of help.

Thanks that is lot of help. for those who are still wondering why admin paths are not showing up once you have done the setup as described in the article. please flush the Magento cache

nate's picture

Thanks! After enabling path

Thanks! After enabling path hints for one of my stores and running your SQL the block hints showed up.

One note, in Magento 1.3.2.4 (and probably others) if you open app/code/core/Mage/Core/etc/system.xml and change the "show_in_default" value to "1" (from 0) for "Template Path Hints" and "Add Block Names to Hints" these options will become available under "Default Config" right in the Admin interface.

Mitch's picture

THANKS! This seriously saved

THANKS! This seriously saved my life! Magento randomly enabled the debugging features on a clients site and no matter how many times I turned them off and updated the updating core_config_data DB table data they still showed up...so I had to comment out a few lines of code to get rid of the debugging features. Thanks again!

Het's picture

Hi, Actually i need to

Hi,

Actually i need to activate template path hints for admin..
& I tried this one.. but couldn't get it...
wat to do???

Please help me out..
It's urgent..

Thanks in advance.
Any help is appriciable..

Igor's picture

Good idea with updating

Good idea with updating core_config_data It's realy save time between switching BACKEND AND FRONTEND.

Shaheer's picture

THANK YOU VERY MUCH

THANK YOU VERY MUCH !!!!!!!!

I cant explain how much I am happy . Its really helpful. I was struggling a lot because of this .

Superb, Simply Outstanding

Mirelon's picture

thank you, it was very

thank you, it was very helpful, i finally found the template i was looking for
but in addition to store config to database i had to turn on template hints in admin > system > configuration > advanced > developer > debug (Step 2.5)

Add comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options