Attribution de contenu aux régions
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éfinie, 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 ajoute Help comme région par défaut. Par défaut, le contenu texte de cette région est le même qu'était celui de la variable $help dans page.tpl.php de Drupal 6.
Ayez à l'esprit que le nom interne est automatiquement converti en variable region dans le template 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é mais ne peuvent débuter par un chiffre.
Le nom compréhensible mentionné comme valeur est utilisé pour l'intitulé de la région dans la page d'administration des blocs située dans Administrer » Construction du site »Blocs.
Voici la page d'administration des blocs pour Garland :
Quelques remarques :
- Il y a des modèles disponibles pour la mise en page de blocs individuels http://drupal.org/node/190815#block-tpl
- 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 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 5 et antérieurs, les régions étaient déclarées avec ThemeName_regions() ou EngineName_regions(). C'est obsolète dans Drupal 6.
- Si vous mettez à jour votre thème depuis des versions antérieures à Drupal 6 et que les variables regions $sidebar_left et $sidebar_right étaient utilisées, renommez-les en $left et $right.
- La variable région $footer_message dans les versions antérieures à la 6 combinent la région footer avec le message footer (paramétré dans Administrer » Configuration du site » Information sur le site). Assurez-vous de créer une variable $footer séparée, si votre thème en utilise une, car Drupal 6 et postérieurs ne combine plus ces deux éléments.
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 recherchés, et cela se fait par un appel à template_preprocess_page > theme_blocks > drupal_get_content.
Notez que Drupal 7 renomme Left sidebar en Sidebar first et Right sidebar en Sidebar second. Vous pouvez créer un nouveau thème Drupal 6 avec ces nouvelles appellations en vue des mises à jour.
regions[second] = Sidebar second
- Version imprimable
- Ajouter un commentaire
- 2971 lectures
-




Commentaires récents
il y a 2 semaines 2 heures
il y a 3 semaines 5 jours
il y a 3 semaines 6 jours
il y a 4 semaines 5 jours
il y a 5 semaines 5 jours
il y a 6 semaines 3 jours
il y a 7 semaines 2 jours
il y a 8 semaines 5 jours
il y a 12 semaines 3 jours
il y a 13 semaines 3 heures