meetup drupal nantes: le theming (25/05/2011)
Post on 21-Jun-2015
2.885 Views
Preview:
DESCRIPTION
TRANSCRIPT
Drupal Nantes
Meetup Drupal Nantes - 25 Mai 2011
http://twitter.com/drupalnantes
http://nantes.drupalgardens.com
Drupal Nantes Meetups
Meetup Drupal Nantes - 25 Mai 2011
1 fois par mois, à la Cantine
Sponsors, votre logo ici !
Le Theming
Meetup Drupal Nantes - 25 Mai 2011
Comprendre le fonctionnement d'un theme
● Un peu de théorie
● Une démo
● Échanges et discussions
Le Theming
Meetup Drupal Nantes - 25 Mai 2011
Structure d'un theme
Fichier .info
Les fichiers de template (*.tpl.php)
Fichiers template.php & theme-settings.php
Fonctions hook_preprocessTemplate de views
Attention !
Meetup Drupal Nantes - 25 Mai 2011
Notre theme s'appelera choco jusqu'a la fin de la présentation
Structure d'un theme
Meetup Drupal Nantes - 25 Mai 2011
choco.info : Définition du themeFichiers tpl : templates (html)Fichiers css / js / imagestemplate.php : fonctions du themetheme-settings.php : Configuration du theme
Le dossier du theme doit être placé dans:sites/all/themes/chocoousites/default/themes/choco
Structure d'un theme
Meetup Drupal Nantes - 25 Mai 2011
Fichier .info
Meetup Drupal Nantes - 25 Mai 2011
Documentation: http://drupal.org/node/171205
Infos obligatoires
● name : le nom du theme
● core : version de drupal (6.x ou 7.x)
● engine : moteur de template (généralement phptemplate)
Fichier .info
Meetup Drupal Nantes - 25 Mai 2011
Infos complementaires (1/2)
● description : description du theme
screenshot : aperçu du theme
● base theme : theme parent ('starter theme')
Fichier .info
Meetup Drupal Nantes - 25 Mai 2011
Infos complementaires (2/2)
● regions : regions du theme (header, sidebar, ...)
● stylesheets : Feuilles de styles CSS (screen, print, all)
● scripts : Fichiers Javascript
● features : fonctionnalités du theme (slogan, logo, ...)
Fichiers CSS
Meetup Drupal Nantes - 25 Mai 2011
Autant que vous voulez !
Le fichier.info permet de préciser le media (screen, print, ...)
Exemple:stylesheets[screen][] = css/typography.cssstylesheets[screen][] = css/blocks.cssstylesheet[print][] = css/print.css
CSS Classique, rien de spécifique à Drupal
Fichiers Javascript
Meetup Drupal Nantes - 25 Mai 2011
Drupal embarque jQuery par defaut● Drupal6: 1.2.6 (update vers 1.3.2)● Drupal7: 1.4.4 (update vers 1.5.2)
Exemple:scripts[] = cs/main.js
Utilisation des behaviors (non couvert par ce meetup!)
Documentation:http://www.slideshare.net/mattfarina/intro-to-jquery-in-drupalhttp://mydrupalblog.lhmdesign.com/drupal-theming-jquery-basics-inc-drupal-behaviors
Meetup Drupal Nantes - 25 Mai 2011
PAUSE
Fichiers templates (tpl)
Meetup Drupal Nantes - 25 Mai 2011
Définir la structure <html> de votre theme
Très peu de php ( juste <?php print $ma_variable; ?> )
Syntaxe phptemplate : <?php if(true): print $ma_variable; endif; ?>
Exemples: ● page.tpl.php : balisage global de la page● node.tpl.php : balisage d'un node (full/teaser)● block.tpl.php : balisage d'un block
Fichiers templates (tpl)
Meetup Drupal Nantes - 25 Mai 2011
Fichiers templates (tpl)
Meetup Drupal Nantes - 25 Mai 2011
page.tpl.php (http://bit.ly/d6-page-tpl & http://bit.ly/d7-page-tpl)
Variables importantes (1/2)
● $head : balises <meta> (encodage, RSS, favicon, ...)● $head_title : balise <title>● $styles : CSS● $scripts : Javascript● $messages : Messages d'info/erreur Drupal● $closure : rien ne doit être placé à la suite de cette
variable à part </body></html>
Fichiers templates (tpl)
Meetup Drupal Nantes - 25 Mai 2011
page.tpl.php (http://bit.ly/d6-page-tpl & http://bit.ly/d7-page-tpl)
Variables importantes (2/2)
● $logo : Logo● $site_name : Nom du site● $title : Titre de la page● $content : Contenu de la page (node, view, form, ...)● $sidebar, $header... : Contenu des régions définies
dans choco.info● ...
Fichiers templates (tpl)
Meetup Drupal Nantes - 25 Mai 2011
page.tpl.php
Contenu de la page
Region 'sidebar'Javascript
CSS
Fichiers templates (tpl)
Meetup Drupal Nantes - 25 Mai 2011
node.tpl.php (http://bit.ly/d6-node-tpl & http://bit.ly/d7-node-tpl)
Variables importantes
● $title : titre du node● $content : contenu du node● $submitted : information de publication● $teaser / $page : information d'affichage● $node : l'Objet node
Fichiers templates (tpl)
Meetup Drupal Nantes - 25 Mai 2011
node.tpl.php
Fichiers templates (tpl)
Meetup Drupal Nantes - 25 Mai 2011
Surcharge de templates pour page.tpl (http://drupal.org/node/1089662)
Exemple pour l'affichage du node 132, de type 'article' (monsite.com/node/132)
Drupal6 va rechercher les fichiers tpl suivants:page-node-132.tpl.phppage-node.tpl.phppage.tpl.php
Exemple pour le formulaire de contact (monsite.com/contact)page-contact.tpl.phppage.tpl.php
Fichiers templates (tpl)
Meetup Drupal Nantes - 25 Mai 2011
Surcharge des fichiers de templates pour node.tpl (http://drupal.org/node/1089662)
Exemple pour le node 132, de type 'article'
Drupal va rechercher les fichiers tpl suivants:● node-article.tpl.php (D6) | node--article.tpl.php (D7)● node.tpl.php
Possibilité d'ajouter d'autres suggestions avec le hook_preprocess_node($variables) : dans le tableau $variables['template_files'][ ]
Fichiers templates (tpl)
Meetup Drupal Nantes - 25 Mai 2011
Cas des champs cck
Fichier content-field.tpl.php (sites/all/modules/cck/theme)
Surcharge : copier/coller ce fichier dans votre theme.
Même principe de 'suggestions' que le core de Drupal● content-field-fieldname-contentType.tpl.php● content-field-contentType.tpl.php● content-field-fieldname.tpl.php● content-field.tpl.php
Meetup Drupal Nantes - 25 Mai 2011
PAUSE
theme-settings.php
Meetup Drupal Nantes - 25 Mai 2011
Permet d'écrire une interface de configuration du thème (Construction du site > Themes > Configurer)
Utilisation de la Form API ( = Code!)http://bit.ly/drupal6-form-apihttp://bit.ly/drupal7-form-api
Page de documentation : http://drupal.org/node/177868
template.php
Meetup Drupal Nantes - 25 Mai 2011
Déclaration de fonctions de theme (hook_theme)
Surcharge des fonctions de theme existantes
Implémentation des hooks _preprocess
Surcharge de fonctions
Meetup Drupal Nantes - 25 Mai 2011
Drupal utilise des fonctions de theme, commetheme_node_submitted() pour afficher les informations de publication d'un node.
La surchage sera donc choco_node_submitted(), à placer dans le fichier template.php
Le module devel_themer permet de trouver quelle fonction de theme est utilisée.
Documentation : http://bit.ly/d6-themable
Hooks _preprocess
Meetup Drupal Nantes - 25 Mai 2011
Modifier et préparer les variables présentes dans les tplExemple: Template page.tpl.php => hook_preprocess_page
template.phpfunction choco_preprocess_page(&$variables) { $variables['ma_nouvelle_variable'] = "Hmm, les chocos";}
page.tpl.php<?php print $ma_nouvelle_variable; ?>
( Documentation : http://drupal.org/node/223430 )
Hooks _preprocess
Meetup Drupal Nantes - 25 Mai 2011
( Documentation : http://drupal.org/files/theme_flow_6_1.pdf )
Ordre d’exécution des fonctions des preprocess
● Drupal Core○ template_preprocess○ template_preprocess_hook
● Modules○ NomDuModule_preprocess○ NomDuModule_preprocess_hook
● Themes○ NomDuTheme_preprocess○ NomDuModule_preprocess_hook
Notion de 'base theme'
Meetup Drupal Nantes - 25 Mai 2011
Base theme = framework
Héritage d'une solide base de travail
Exemples● Zen● Omega● Fusion
Meetup Drupal Nantes - 25 Mai 2011
PAUSE
Template de views
Meetup Drupal Nantes - 25 Mai 2011
Meetup Drupal Nantes - 25 Mai 2011
Types de templates views
Meetup Drupal Nantes - 25 Mai 2011
Types de templates views
Même principe de suggestions que le core:
● views-view.tpl.php● views-view--maVue.tpl.php● views-view--displayType.tpl.php● views-view--maVue--displayType.tpl.php
( également valable pour les autres templates de views: views-view--unformated.tpl, views-view--fields.tpl, ...)
Ressources
Meetup Drupal Nantes - 25 Mai 2011
http://drupal.org/documentation/themeCette presentation sur http://nantes.drupalgardens.com
OutilsDevel : http://drupal.org/project/develDevel_themer : http://drupal.org/project/devel_themer
ReflexeVider le cache, vider le cache, vider le cache, vider le cache, vider le cache, vider le cache, vider le cache, vider le cache, vider le cache ...
top related