block tonen - php code - meerdere voorwaarden

Forums: 
Drupalversie: 

Ik maak gebruik van de php code om een block te tonen, namelijk volgende code

<?php

$match = FALSE;

$types = array('page_prov_ant' => 1);

   if (arg(0) == 'node' && is_numeric(arg(1))) {

   $nid = arg(1);

   $node = node_load(array('nid' => $nid));

   $type = $node->type;

   if (isset($types[$type])) {

$match = TRUE;

}

}

 

if ( $node->field_menucode[0]['value'] == 'prov_ant' )

   { $match = TRUE; }

else { $match = FALSE; }

 

return $match;

?>

 

eerste if then toont block op basis van inhoudstype van de pagina

tweede if then, toont block op basis van de eventuele waarde van een menucode veld

 

probleem is dat ik slechts één van de twee voorwaarden werkend krijg,

 

is er mogelijkheid om te werken met 'case'??

 

Als ik het goed begrijp moet het blok getoond worden als er een node van het juiste content type aanwezig is, of als de node in een bepaald menu zit? Als het zo is, dan is de nesting van je if structuur gewoon verkeerd.

Probeer dit eens:
<?php
$match = FALSE;

$types = array('page_prov_ant' => 1);

if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset($types[$type])) {
$match = TRUE;
}
elseif ( $node->field_menucode[0]['value'] == 'prov_ant' ) {
$match = TRUE;
}
else {
$match = FALSE;
}
}

return $match;
?>

Mvg,
Maarten De Block
Drupal Freelancer
http://www.maartendeblock.be

@Maarten, bedankt,

ondertussen nieuw probleem,

Ik tracht dus, een menu blok te laten verschijnen op 3 pagina's met elk een andere menucode (field_mc). Slechts met één voorwaarde ( =='prov_nam') werkt het perfect.

Ik probeerde te werken met de OR operator, maar het resultaat is dat mijn menublok op iedere pagina zichtbaar is.

De code betreft

<?php
$match = FALSE;

if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset($types[$type])) {
$match = TRUE;
}
elseif ( $node->field_mc[0]['value'] == 'prov_nam' ) or ( $node->field_mc[0]['value'] == 'prov_nam_pil_loc' ) or ( $node->field_mc[0]['value'] == 'prov_nam_pil_fed' ) or ( $node->field_mc[0]['value'] == 'prov_nam_pil_cal' ) {
$match = TRUE;
}
else {
$match = FALSE;
}
}

return $match;
?>

Actuele inhoud

20 mei 2012

19 mei 2012

18 mei 2012

17 mei 2012