By Clément on
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!