Code PHP et Blocs

Afficher un bloc sur certaines pages seulement

* Pages sur lesquelles ce code PHP renvoie TRUE (recommandés aux experts)

Afficher un bloc sur front page

Seulement les pages listées

<front>

Soit:
x Pages sur lesquelles ce code PHP renvoie TRUE(recommandés aux experts)

<?php
if (drupal_is_front_page()) {
 return TRUE;
}
return FALSE;
?>

Afficher un bloc sur un node

Exemple:
http://mydomain.com/admin/build/blocks/list
arg(0) = "admin", arg(1) = "build" etc

Avec
http://mydomain.com/content/monarticle
arg(0) = "node", arg(1) est un nombre et représente le numéro du node

<?php
if ( arg(0) == 'admin') {
return true; // Affiche seulement si admin
}
return false;

if ( arg(0) == 'node' && is_numeric(arg(1))) {
return true; // Affiche uniquement si la page est de type contenu (node/1234)
}
return false;

if(arg(0) == 'node' && is_numeric(arg(1))) {
  $nid = arg(1);
  if ($nid == 24) {// Affiche uniquement si la page est le node/24
   return TRUE; // node 24
  }
}
return FALSE;

if ( arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
retrun true; // Affiche uniquement si un terme de taxonomy
}
return false;

if ( arg(0) == 'mapage' ) {
return true; // Affiche uniquement si la page est 'mapage'
}
return false;
?>
<?php
if(arg(0) == 'node' && is_numeric(arg(1))){
$node = node_load(arg(1));
if ($node == '24') {
  return TRUE; // node 24
}
}
return FALSE;
?>

Afficher un bloc sur un node avec taxonomie

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
 $node = node_load(arg(1)); //contenu = node
 if (isset( $node->field_dialogue['und'])) {
  return TRUE;  //node avec taxonomy dialogue
 }
}
return FALSE;
?>

Afficher un bloc sur une liste taxonomie

<?php
$tid = arg(2);
if ( is_numeric( $tid)) {
 $term = taxonomy_term_load($tid); //contenu = taxonomy term
 if ($term->vocabulary_machine_name = 'dialogue') {
  return TRUE; //taxonomy dialogue list
 }
}
return FALSE;
?>

Afficher un bloc sur un type de contenu particulier

Pour ajouter dans une combinaison de test, car les blocs possédent une fonction "Afficher le bloc pour des types de contenus spécifiques"

<?php
if(arg(0) == 'node' && is_numeric(arg(1))){
 $node = node_load(arg(1));
 if ($node->type == 'contenttype') {
  return TRUE; //content type list
 }
}
return FALSE;
?>
 

Afficher un bloc sur un node particulier

<?php
$url = request_uri();
$myurl = 'tous-les-dialogues';
if (strlen(stristr($url, $myurl)) >0) {
 return TRUE;
}
return FALSE;
?>

Afficher un bloc sur toutes les pages user

<?php
global $user;
if (arg(0) == 'user' ){
  return TRUE;
}
else {
  return FALSE;
}
?>

Affiche le Titre du Groupe courant

Structure » Blocs

Ajouter un bloc
Titre du bloc <none>
Description du bloc Dialogue Courant

<?php
$dtid = 0;
if (arg(0) == 'node' && is_numeric(arg(1))) {
 $node = node_load(arg(1)); //contenu = node
 if (isset( $node->field_dialogue['und'])) {
  $dtid = $node->field_dialogue['und'][0]['tid']; //node avec taxonomy dialogue
 }
}
$tid = arg(2);
if ( is_numeric( $tid)) {
 $term = taxonomy_term_load($tid); //contenu = taxonomy term
 if ($term->vocabulary_machine_name = 'dialogue') {
  $dtid = $tid; //taxonomy dialogue list
 }
}

if ($dtid) {
 print '<h2>' . l(taxonomy_term_load($dtid)->name, 'taxonomy/term/' . $dtid) . '</h2>';
}
?>

Paramètres de visibilité

Format de texte PHP code
Paramètres de la région Main: Upper
Afficher le bloc sur certaines pages seulement
x Pages sur lesquelles ce code PHP renvoie TRUE (recommandés aux experts)

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
 $node = node_load(arg(1)); //contenu = node
 if (isset( $node->field_dialogue['und'])) {
  return TRUE;  //node avec taxonomy dialogue
 }
}
$tid = arg(2);
if ( is_numeric( $tid)) {
 $term = taxonomy_term_load($tid); //contenu = taxonomy term
 if ($term->vocabulary_machine_name = 'dialogue') {
  return TRUE; //taxonomy dialogue list
 }
}
return FALSE;
?>

Menu PHP Ajouter une page enfant

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
 $node = node_load(arg(1)); //contenu = node
 if (node_access('create', $node)){ //mode create
  if (isset($node->book['bid'])) { //node=book
   $book_new_child = $node->book['mlid']; //ref book parent
   echo '<br />&nbsp;&nbsp;<a href="/node/add/dossier?parent=' .$book_new_child. '">Ajouter une page enfant</a>';
  }
 }
}
?>