Display a block on some pages according to the fields content of that page I created a content type called people, where I create personal pages using that type. One of the fields is 'area'. 

Then, I created a view of block called 'software people', where I list all the people who work in software area. I want to show this block only on the pages where the person's area is Software. How can I achieve this?

Thanks
Simplest way is to conditionally output region in node.tpl.php
But there is no $page in node.tpl.php. So you need to make it happen. In your template.php add function

mytheme_preprocess_node(&amp;$variables) { 
  // List of all regions for the current theme
  foreach (system_region_list($GLOBALS['theme']) as $region_key =&gt; $region_name) {
    // Add content to $region variable
    if ($blocks = block_get_blocks_by_region($region_key)) {
      $variables['region'][$region_key] = $blocks;
    }
    else {
      $variables['region'][$region_key] = array();
    }
  }
}


Then in node.tpl.php use:

print render($region['region_name']);


to output your region. Of course wrap it in if, case or any other logic you fancy.