Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Attribution de contenu aux régions

Traduction de la page http://drupal.org/node/171224
publiée/actualisée le 25 Mars 2011 sur Drupal.org.


Les regions sont des zones de votre thème qui recoivent des blocs et du contenu.

Les regions disponibles pour un thème sont indiquées dans le fichier .info. Elles doivent être spécifiées avec la clé regions suivie du nom machine de la région entre crochets et du nom compréhensible comme valeur. Par exemple : regions[theRegion] = Le nom de ma région .

Si aucune region n'est déclarée, ce sont les valeurs par défaut qui sont utilisées.

regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer

Drupal 7 amène avec lui deux régions par défaut : Highlighted et Help. Par défaut, le contenu texte de cette région est le même que celui de la variable $help dans page.tpl.php de Drupal 6.

regions[highlighted] = Highlighted
regions[help] = Help

Le thème Drupal 7 Bartik dispose des régions par défaut suivantes :

regions[header] = Header
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
regions[highlighted] = Highlighted

regions[featured] = Featured
regions[content] = Content
regions[sidebar_first] = Sidebar first
regions[sidebar_second] = Sidebar second

regions[triptych_first] = Triptych first
regions[triptych_middle] = Triptych middle
regions[triptych_last] = Triptych last

regions[footer_firstcolumn] = Footer first column
regions[footer_secondcolumn] = Footer second column
regions[footer_thirdcolumn] = Footer third column
regions[footer_fourthcolumn] = Footer fourth column
regions[footer] = Footer

Ayez à l'esprit que le nom interne est automatiquement converti en variable region dans le fichier gabarit page.tpl.php. Dans l'exemple précédent, la region [left] affichera tous les blocs qui lui sont affectés par le biais de la variable $left. Il y a quelques contraintes pour le nommage des variables PHP, assurez-vous que les noms internes les respectent. Ils doivent seulement contenir des caractères alphanumériques ou le signe souligné et doivent débuter par une lettre.

Le nom compréhensible mentionné comme valeur, à l'extérieur des crochets, est utilisé pour l'intitulé de la région dans la page d'administration des blocs située dans Administrer » Construction du site »Blocs. Dans Drupal 7, la paghe d'administration des blocs est située dans Administer > Structure > Blocks.

Voici la page d'administration des blocs pour Garland :

Drupal 7 - Tableau d'administration de blocs pour Bartik :

Quelques remarques :

  • Des fichiers template (.tpl.php) sont disponibles pour la mise en page individuelle de blocs.
  • Ajouter une région personnalisée désactive les régions par défaut. Si vous voulez conserver les régions par défaut en plus des régions personnalisées, ajoutez-les manuellement.
  • L'ordre dans lequel les régions sont ajoutées est pris en compte dans la page d'administration des blocs. Garland utilise les régions par défaut. Remarquez l'ordre d'affichage des régions dans la page d'administration.
  • Le contenu du fichier .info est mis en cache dans la base de données, sa modification ne sera donc pas remarquée par Drupal (ne pas confondre le cache avec le registre des thèmes http://www.kolossaldrupal.org/docs/la-surcharge-themes#theme-registry).
  • Pour vider le cache, faites l'une des opérations suivantes :

    • Clic sur le bouton Supprimer les données du cache dans la page Administrer » Configuration du site » Performance
    • Si le bloc Devel est actif (livré avec le module Devel), cliquez sur le lien Vider le cache.
    • Ou affichez simplement la page de sélection de thèmes dans Administrer » Construction du site » Thèmes.

Informations de mises à jour :

  • Dans Drupal 7, ces variables sont nommées $sidebar_first et $sidebar_second.
  • La variable région $footer_message a été supprimée dans Drupal 7
regions[first] = Sidebar first
regions[second] = Sidebar second

La région $content

Dans Drupal 6 et avant, la variable $content de page.tpl.php contenait le contenu principal de la page avec les blocs positionnés dans la region contenu (si cette region était déclarée).

Dans Drupal 7, $content est devenu une région à part entière et est désormais obligatoire dans tous les thèmes. Cette nouvelle exigence a été mise en place pour que lorsqu'on active des nouveaux thèmes, Drupal sache où mettre le contenu principal de la page.

Dans Drupal 6, il n'était possible que de mettre les blocs après le contenu principal de la page dans cette région. La seule façon de mettre les blocs avant le contenu principal de la page était de déclarer une région spécifique à cette fin. Drupal 7 crée maintenant son propre bloc pour le contenu principal de la page. Il est ainsi possible de mettre des blocs avant ou après le contenu principal de la page dans la region sans avoir à hacker une nouvelle région.

Attribuer manuellement un contenu aux régions

Un contenu peut être manuellement placé dans une région avec drupal_set_content (http://api.drupal.org/api/function/drupal_set_content). Par exemple : drupal_set_content('header', 'Bienvenue !') affectera le texte « Bienvenue ! » à la région Header.

Voici un exemple plus utile pour la construction d'un résumé de tous les commentaires dans la région Right. Renommez le préfixe « drop » avec le nom de votre thème. Plus d'informations disponibles sur la page consacrée aux pré-traitements (http://www.kolossaldrupal.org/docs/initialisation-variables-pour-leur-utilisation-dans-gabarit-fonctions-de-pre-traitement)

<?php
function drop_preprocess_comment(&$variables) {
 
  
// Initialiser quelques variables.
  
$comment $variables['comment'];
  
$title l(
    
$comment->subject,
    
comment_node_url(),
    array(
'fragment' => "comment-$comment->cid")
  );
  
$new_marker $comment->new t('new') : '';
  
$by_line t('by') .' 'theme('username'$comment);

  
// Placer le balisage.
  
$summary '<div class="comment-sidebar">';
  
$summary .= '<span class="title">' "$title $new_marker</span>";
  
$summary .= '<span class="credit">' "$by_line</span>"
  
$summary .= '</div>';

  
// Placer le commentaire dans la région droite.
  
drupal_set_content('right'$summary);
}
?>

Notez que la création de contenu par le biais de cette fonction doit se faire avant que les blocs des regions ne soient récupérés, et cela se fait par un appel à template_preprocess_page > theme_blocks > drupal_get_content.