block tonen - php code - meerdere voorwaarden
Door schorrie op 27 juli, 2011 - 17:50
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'??
- Login of registreer om te kunnen reageren
Actuele inhoud
20 mei 2012
- , stylen frontpage met views , (Forumonderwerp) , majovdh , Reacties: 1
- , Terugkoppeling gegevens formulier op site , (Forumonderwerp) , Gerritse
- , Afbeelingen niet meer zichtbaar , (Forumonderwerp) , FransR
- , Blijft een website zonder updates altijd online? , (Forumonderwerp) , sjnellejelle , Reacties: 1
- , instal , (Forumonderwerp) , laanie73 , Reacties: 6
- , Nice menu gebruiken , (Forumonderwerp) , H.Schaeks
- , Theming Views: kan fields variabelen niet printen , (Forumonderwerp) , dakke , Reacties: 2
- , Aantal comments klopt niet (meer) , (Forumonderwerp) , nebo , Reacties: 4
- , Betalingsmethode Commerce , (Forumonderwerp) , Tim.T , Reacties: 3
19 mei 2012
- , Gebruikerslijst , (Forumonderwerp) , tuxy
18 mei 2012
- , Gastenboek: goedkeuren berichten , (Forumonderwerp) , Pedroo , Reacties: 2
- , FB Like button niet zichtbaar , (Forumonderwerp) , nebo , Reacties: 1
- , Printen van nodes op aparte pagina's , (Forumonderwerp) , chlee , Reacties: 2
- , Dubbel Home-link op pagina(s)... , (Forumonderwerp) , rikdegraaff , Reacties: 1
17 mei 2012
- , Smoelenboek alfabetisch , (Forumonderwerp) , snellie1972
maartendeblock
31 juli, 2011 - 12:21
Permalink
Als ik het goed begrijp moet
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
schorrie
30 januari, 2012 - 21:55
Permalink
@Maarten, bedankt,
@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;
?>