learen more with autoformation

dimanche 17 août 2014

On 07:30 by مشاهير العرب   No comments
Conversion de thèmes Drupal 6.x en thèmes Drupal 7.x
52 modifications pour la création d'un thème sous Drupal 7 (suppressions aussi) ont été apportées.

Elles sont listées sur drupal.org : http://drupal.org/update/theme/6/7
La société Clever Age présente un bon résumé de des changements :
“- Les thèmes à base de design en tableau datant de Drupal 4 sont supprimés du coeur.
- Beaucoup d’éléments composant une page se retrouvent maintenant comme bloc ou région (le
message d’aide, le contenu d’une page : $content de page.tpl.php, le footer message, sont des blocs par
exemple).
- Une remise à niveau de tous les fichiers .tpl.php par défaut a été faite avec des noms de classes CSS
et des identifiants plus sémantiques, une meilleure cohérence, etc.(...)
- $content n’est plus une grande chaine de caractère contenant du xHTML.
$content est maintenant un tableau des composants de la page, qui garde en mémoire ce qui a déjà été affiché.
On peut ainsi via des fonctions hide(), et render() choisir ce que l’on veut afficher et où on veut l’afficher.
En plus de ça, les preprocess sont maintenant étendus aux fonctions theme() (et non plus qu’au fichier tpl.php).
Et, maintenant qu’il y a des champs partout, le support du RDFa est disponible.
- Au niveau du Javascript, passage de jQuery 1.2.6 à jQuery 1.4, et intégration de jQuery Forms 2.2, et
jQuery UI 1.7. La nouvelle fonction drupal_add_library() permet d’ajouter des fichiers javascript et css en rapport
les uns avec les autres, et un nouveau framework AJAX a été intégré dans le coeur. La fonction drupal_add_js()

a été améliorée, et l’API Javascript, souvent sous-exploitée, reste intacte."
Liste des changements :
● Les blocs ont de nouveaux ID CSS plus explicites
La plupart des ID CSS des blocs déclarés par le core Drupal ont été modifiés afin que le but du bloc soit
clairement indiqué.
● Les liens Primaires et Secondaires changent de nom
Dans Drupal 7, les menus Primary links et Secondary links changent et deviennent respectivement Main
menu ($main_menu) et Secondary menu ($secondary_menu).
Les thèmes qui utilisent ces options devront être actualisés avec les nouveaux noms de variables.
● Les liens de taxonomie non formatés (Unrendered) ne sont plus disponibles dans les fichiers
node.tpl.php, en tant que variable distincte.

Dans Drupal 7, tous les liens ont été déplacés dans l'objet $node.
Liste des changements :
● RDFa nécessite des modifications au début de page.tpl.php
Drupal 7 peut afficher du RDFa.
● La classe clear-block a été renommé en clearfix
La classe clear-block était un Drupalisme pour une fonctionnalité connue dans la communauté CSS sous
le nom de classe « clearfix ».
La class CSS .clear-block de D6 devient .clearfix, une nouvelle appellation bien connue des thèmeurs...
● Les "Box" disparaissent
Les templates de "box", utilisés dans D6 dans les commentaires et les résultats de recherche,
disparaissent.
Les résultats de recherches sont désormais mis en forme par la fonction : theme_search_results_listing()
et le formulaire de commentaires est mis en forme par la fonction : theme_comment_form_box() .

Infos : http://drupal.org/node/779002
Liste des changements :
● Une region pour l'affichage des textes d'aides
L'affichage des textes d'aides ne se fait plus dans D7 via la variable $help.
Une region est désormais implantée dans le core pour cela, il vous suffit de déclarer cette region dans
votre .info. A vous ensuite de placer cette region selon votre souhait dans le template de page :
Infos : http://drupal.org/node/448784
Le texte d'aide est maintenant encadré par les balises et classes <div> du fichier gabarit block.tpl.php, les
CSS utilisées pour styliser l'aide doivent donc être modifiées.
● Une région pour l'affichage de la "Mission"
L'affichage de la "Mission du site" doit désormais être propulsée via une région et la variable $mission de
D6 disparaît.
Dans D7, il est conseillé de créer une région nommée Highlighted et de l'utiliser pour afficher la mission
du site.
C'est donc à vous de créer tout ceci et de créer un bloc assigné à cette region. A vous donc de placer
cette region selon votre souhait dans le template de page :

Infos : http://drupal.org/node/779016
Liste des changements :
● Suppression du "Message de pied de page"
Le Message de pied de page, à configurer sur D6 dans admin/settings/site-information est supprimé.
Dans D7, il n'y a donc plus de variable $footer_message.
● Le contenu principal d'une page est propulsé par une region
Le contenu principal d'une page est désormais affiché par une region à part entière
Une fois ceci fait, rendez-vous sur la page de config des blocks admin/structure/block, et assignez le block Main page
content à la region Content :
Vous noterez que le block Main page content est le seul qui doit être obligatoirement assigné à une region.

Info/issue : http://drupal.org/node/428744
Liste des changements :
● La région Content est maintenant obligatoire, le contenu principal de la page devient un bloc
Dans Drupal 7, $content devient une région à part entière et est désormais obligatoire dans tous les
thèmes. Cette nouvelle caractéristique a été paramétrée pour que, lorsqu'on active des nouveaux thèmes,
Drupal sache où placer le contenu principal de la page par défaut.
● Deuxième cycle de fonctions de traitement de variables
Il y a maintenant deux jeux de fonctions de traitement de variables. les premières sont les
fonctions de pré-traitement existantes (voir traduction en français sur kolossaldrupal.org). Les secondes
sont des fonction de « traitement » exécutées après les pré-traitements. Les différents préfixes et suffixes
s'appliquent de la même façon à ce deuxième cycle. Cela s'avère utile lorsque certaines variables

demandent à être examinées sur deux cycles.
Liste des changements :
● La région Content est maintenant obligatoire, le contenu principal de la page devient un bloc
Dans Drupal 7, $content devient une région à part entière et est désormais obligatoire dans tous les
thèmes. Cette nouvelle caractéristique a été paramétrée pour que, lorsqu'on active des nouveaux thèmes,
Drupal sache où placer le contenu principal de la page par défaut.
● Deuxième cycle de fonctions de traitement de variables
Il y a maintenant deux jeux de fonctions de traitement de variables. les premières sont les
fonctions de pré-traitement existantes (voir traduction en français sur kolossaldrupal.org). Les secondes
sont des fonction de « traitement » exécutées après les pré-traitements. Les différents préfixes et suffixes
s'appliquent de la même façon à ce deuxième cycle. Cela s'avère utile lorsque certaines variables

demandent à être examinées sur deux cycles
Liste des changements :
● Une variable $classes pour les classes CSS dynamiques
Dans Drupal 7 on a maintenant une variable $classes disponible dans tous les templates et qui génère
différentes classes CSS produites par les modules core. On va pouvoir, via différents preprocess de notre choix,
"alimenter" cette variable avec des classes custom supplémentaires. On utilisera toujours la même procédure,
D7 se chargeant par la suite de "réorganiser" toutes les classes comme il faut :-).
Tous les gabarits peuvent maintenant fournir $classes à partir d'un gabarit pour mettre en forme des classes
dynamiques construites dans des fonctions de traitement de variables.
● Attributs HTML générés via une variable
Toutes les maquettes de mise en page (maquettes de mise en page = gabarits, = templates. NdK) peuvent
maintenant afficher $attributes, $title_attributes et $content_attributes depuis un gabarit pour mettre en forme
les attributs dynamiques construits dans les fonctions de traitement de variables.
Le module RDF et d'autres modules ajoutent des informations importantes à ces variables, il est donc essentiel

pour les thèmes que ces variables soient correctement transmises à tous les fichiers gabarits surchargés.
Liste des changements :
● Les fonctions de traitements de variable peuvent maintenant être utilisées dans tous les hooks de thème
Dans Drupal 7, les pré-traitements de hooks et les fonctions de traitement peuvent être utilisés pour tous
les hooks de thème, qu'ils soient « rendus » (rendered) par les gabarits ou les fonctions.
Par exemple, un thème peut faire en sorte que tous les liens de menus commençant par http: ou https:
(par opposition à ceux qui se rapportent à un lien interne de Drupal) s'ouvrent dans un nouvel onglet du
navigateur
● Toutes les fonctions de thèmes acceptent maintenant un seul argument, $variables
Dans Drupal 7, toutes les fonctions de thème prennent un seul argument, $variables, un tableau de

variables indicé par clés, et répertorient les clés étendues dans ce tableau dans hook-theme().
● Les noms de fonctions doivent correspondre au nom du thème
Infos : http://drupal.org/node/422116
Dans le fichier template.php, les noms de fonctions doivent maintenant utiliser le nom du thème adéquat. Vous ne
pourrez plus utiliser phptemplate_function. Cette modification a été effectuée dans le patch suivant :
Die, themeEngineName_ prefix, die!.
Pour actualiser votre thème, assurez-vous qu'il n'y ait pas, dans le fichier template.php ou dans d'autres fichiers du
thème, de fonction débutant par le nom du processeur de thème (phptemplate).
● Tous les fichiers CSS et Javascript doivent maintenant être mentionnés dans le fichier .info du thème
Dans Drupal 6, style.css et script.js étaient automatiquement inclus dans votre thème, même s'ils n'étaient pas
mentionnés dans le fichier .info du thème.
Dans Drupal 7, les thèmes doivent mentionner ces fichiers dans le fichier .info pour qu'ils soient ajoutés au thème. Vous
pouvez lire plus d'informations à ce sujet à la page
#351487: Remove default values for stylesheet and scripts includes from system module..
Si votre thème n'utilise pas ces fichiers, ou s'ils sont déjà mentionnés dans votre fichier .info, aucune modification n'est

nécessaire.
● $block->content renommé dans block.tpl.php
Voir cette discussion pour l'historique complet.
● « Granular rendering » dans les gabarits de node et user
(discussion) Les concepteurs de maquettes de mises en page peuvent maintenant afficher des nodes et
des profils comme ils l'entendent tout en conservant une compatibilité avec des modules nouveaux qui
ajouteraient des nouveaux contenus. Pour cela, les concepteurs de gabarits doivent utiliser 2 nouvelles
fonctions - render() et hide().
Quand un concepteur de thème veut afficher une partie du tableau $content, il doit le faire avec quelque
chose qui ressemble à print render($content['links']).
Si l'affichage des liens vient après l'affichage de tout le contenu de $content, il faudra appeler
hide($content['links']) avant d'appeler print render($content). Ensuite les liens peuvent être affichés plus

loin dans le gabarit avec print render($content['links']).

0 commentaires:

Enregistrer un commentaire