Resolved: http://drupal.org/node/743082

Hello,

I created a module that displays 4 blocks with a single node_load ().

I use the function mymodule_preprocess() to load the node in my 4 blocks.
The problem is that this function works all the time, should it only works when I'm in a node of type "A".

How to achieve this?

The complete module:

<?php
// $Id$

/**
* Permissions du module
* @return array Tableau de permissions valides pour le module helloworld
*/
function modele_2r_perm() {
  return array('access modele_2r content');
} // function mon_module_perm()

/**
* Implémentation de hook_block
*/
function modele_2r_block($op = 'list', $delta = 0, $edit = array ()) {
   switch($op) {
      case 'list':
         return array('modele_2r_presentation_block'=>array('info'=>'Modele 2R: Block Presentation'), 'modele_2r_fiche_technique_block'=>array('info'=>'Modele 2R: Block Fiche Technique'), 'modele_2r_coloris_block'=>array('info'=>'Modele 2R: Block Coloris'), 'modele_2r_galerie_photos_block'=>array('info'=>'Modele 2R: Block Galerie photos'), 'modele_2r_argus_block'=>array('info'=>'Modele 2R: Block Argus'));
      case 'view': {
         if ($delta=='modele_2r_presentation_block') {
               return array(
                    'subject'=>'Presentation du modele',
                    'content'=>theme('modele_2r_presentation_block', $node));
         }
         if ($delta=='modele_2r_fiche_technique_block') {
               return array(
                    'subject'=>'Fiche technique du modele',
                    'content'=>theme('modele_2r_fiche_technique_block', $node));
		 }
         if ($delta=='modele_2r_coloris_block') {
               return array(
                    'subject'=>'Coloris disponible pour ce modele',
                    'content'=>theme('modele_2r_coloris_block', $node));
		 }		 
         if ($delta=='modele_2r_galerie_photos_block') {
               return array(
                    'subject'=>'Galerie photos pour ce modele',
                    'content'=>theme('modele_2r_galerie_photos_block', $node));
		 }
         if ($delta=='modele_2r_argus_block') {
               return array(
                    'subject'=>'Argus pour ce modele',
                    'content'=>theme('modele_2r_argus_block', $node));
		 }
	  }
   }
}

function modele_2r_preprocess(&$variables, $hook) {

			$node = node_load(arg(1));
			$variables['node'] =  $node;
			
			//------------------------------------
			// Debut Simplification de multiples processus en 1

			// Debut incrémentation des variables
			$variables['annee_modele'] = check_plain(date("Y", strtotime($node->field_annee_m_2r[0]['value'])) + 1);
			$variables['type_modele'] = check_plain($node->taxonomy[$node->taxonomy_tid[0]]->name);
			$variables['marque_modele'] = check_plain($node->taxonomy[$node->taxonomy_tid[1]]->name);
			$variables['nom_modele'] = check_plain($node->field_nom_m_2r[0]['value']);
			$variables['nom_complet_modele'] = $variables['marque_modele'] . ' ' . $variables['nom_modele'];
			// Fin incrémentation des variables
			
			// Fin Simplification de multiples processus en 1
}

function modele_2r_theme($existing, $type, $theme, $path) {
   return array(
      'modele_2r_presentation_block' => array(
          'arguments' => array('node'),
          'template' => 'modele_2r_presentation_block'),
      'modele_2r_fiche_technique_block' => array(
          'arguments' => array('node'),
          'template' => 'modele_2r_fiche_technique_block'),
      'modele_2r_coloris_block' => array(
          'arguments' => array('node'),
          'template' => 'modele_2r_coloris_block'),
      'modele_2r_galerie_photos_block' => array(
          'arguments' => array('node'),
          'template' => 'modele_2r_galerie_photos_block'),
      'modele_2r_argus_block' => array(
          'arguments' => array('node'),
          'template' => 'modele_2r_argus_block')
	);
}

Thank you in advance for your help!