Magento: Set/Change page layout, title tag, meta keywords and description

Earlier in this blog, I had written about setting title, keywords, and description from xml layout file.

In this article, I will be showing, how you can set/change title, keywords and description of any page programmatically. I mean, by php code. Here is the layout XML file. I have set title and template in the layout file. I am going to change the title and template of the page from php code. I will also be adding meta keywords and description for the page from php code.


<?xml version="1.0"?>
<layout version="0.1.0">
    <default>
		<reference name="head">
			<action method="setTitle"><title>My Module Page</title></action>
		</reference>
		<reference name="root">
            <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
        </reference>
        <reference name="right">
            <block type="modulename/blockname" name="mymodule.sidebar" template="moduletemplatepath/filename.phtml"/>
        </reference>
    </default>
</layout>

Here is the php code to set template, title tag, meta keywords and description. This code can be kept in any php or phtml file.


$root = $this->getLayout()->getBlock('root');
$template = "page/3columns.phtml";
$root->setTemplate($template);

$head = $this->getLayout()->getBlock('head');
$head->setTitle("Your Title");
$head->setKeywords("your, keywords, anything");
$head->setDescription("Your Description");

Now, the title of the page will be changed from ‘My Module Page’ to ‘Your Title’. The meta keywords and description will be set. And the page layout will be changed from 2 columns with right bar to 3 columns.

Hope this helps. Thanks.