Tuesday, March 10, 2009

Restricting Block visibilty to particular taxonamy tagged pages

Hi,here i am going to show how to create a block visible to only those pages that are tagged with same taxonamy terms.As you know drupal is very powerful a little understanding on drupal can make you to do dynamic stuffs in your websites that usually take hours of coding in normal web development enviornment.

Step 1
Go to block page

Step 2
Select the block that you need to change the visibility

Step 3
Select show block on specific pages

Step 4
Choose PHP code

Step 5
Type the following codes in PHP tag

if(arg(0)=='node' && is-numeric (arg(1)))
{
$nid=arg(1);
$node=node_load ($nid);

foreach($node->taxonomy as $term)
{
if($term->name=='video')
{
return TRUE;
}
}
}
return FALSE;



In this case video is my term .Change the video with the appropriate term name from your taxonomy.

Create a Custom Block Area

Hi,here i am going to describe how can we create a custom block area in drupal. As you know most of the templates are comming with header,content,right,left and footer region.We are going to enhance the drupal flexibility with adding more regions so you can add separate CSS for each regions and make your website more flexible.

Step 1
Go to Your theme ".info" file.(You can see this in your theme folder)

Step 2
You will be able to see the existing region over there.
Add -> regions[regionname] = region label
Here regionname is the drupal redable region name and region label is the name of the label you can see in block area.

Step 3
Go to page.tpl and add a 'div' where you want to display the region and print the region name.

Add a div and use php print statement eg:print menuregion

Note: no semicollum after print statement

Step 4
The contents of .info file is cached in database . So you need to clear the database cache inorder to see the changes you made.To clear databse cache
Administer > Site Configuration > Perfomance
Click on empty Cache

or you can achive this by going to database using phpmyadmin and empty the cache tables.
Visit the block page inorder to see the block region you have added.

Good Luck