Version imprimable Version PDF RSS
sam, 24/07/2010 - 16:39 | Yoran   Articles Drupal backport contextual-links Drupal 7
Petit backport de contextual-links (D7) vers Drupal 6

Je regardais hier la dernière béta de Drupal 7, et il faut bien avouer qu'en terme d'utilisabilité, c'est un peu le jour et la nuit. Je ne suis pas fan de tout (genre le module overlay) mais j'ai tout de suite accroché sur les "contextual-links" qui permettent, un peu comme avec Views, de modifier noeuds, menus et blocks, au survol de la souris.

Le module n'étant en lui-même pas bien sorcier, je l'ai backporté sur Drupal 6 au sein d'un module que j'avais déjà (easy_node) et qui faisait à peu prés la même chose mais de bien moins jolie façon (en passant par hook_link). Et voilà ce que cela donne :

Si vous ne voyez rien, clickez-ici pour télécharger la vidéo

Sympa non ? Bon, le backport a un peu été fait à l'arrache, mais on dispose tout de même d'un hook_easy_node_links (qui fonctionne strictement comme hook_link) pour ajouter ses propres liens sur node, mais aussi sur les blocs (oui je sais, faudrait que je change le nom du module..)

Pour les ceux-ce que cela intéresse, le module est dispo ici. Pour que cela fonctionne, vous devez rajouter dans votre template de node, à la classe du div principal, echo $node_classes :

<div class="<?php echo $node_classes?>">
modification de node.tpl.php

Et de même pour le template de block, pour le div principal aussi, un echo $block_classes. Notez que ces deux variables vous évitent de gérer les clasiques "node teaser node-type teaser-type" et "block block-module".

<div class="<?php echo $block_classes ?>" id="<?php print "block-$block->module-$block->delta"; ?>">
modification de block.tpl.php

aiphes , le mar, 27/07/2010 - 09:33

bonjour

j'ai posté sur le forum drupal fr , une demande d'aide sur ton module, car je n'arrive pas à savoir ou et quoi remplacer correctement : http://drupalfr.org/forum/support/support-general/24122-backport-de-cont...

si tu peux y jeter un oeil..

merci

Yoran, le jeu, 29/07/2010 - 08:28

Déjà, tel que je vois le code sur drupalfr.org, il semble que tu ais oublié le

echo $block_classes

dans le template de block. Après il faut que tu vérifies que le code des liens soit bien inséré dans le $block->content, ce qui se fait à l'aide d'un simple var_dump.

Maintenant "le code ne passe pas" est un peu évasif. Il faudrait être un peu plus précis sur ton diagnostique pour que je puisse d'aiguiller.

aiphes , le ven, 30/07/2010 - 12:14

bonjour

je ne l'ai pas oublié, je ne sais pas ou le mettre,d'où ma question..

Publier un nouveau commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement. Si vous avez un compte gravatar, l'utilisez pour afficher votre avatar.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Every instance of custom tags in the input text will be replaced with a specific tool shortcut.
  • To highlight piece of code, just surround them with <code type="language"> Your code &tl;/code>>. Language can be java,c++,bash,etc... Everything Geshi support.
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plus d'informations sur les options de formatage

Êtes-vous humain ?
Cette question est là pour déterminer si vous êtes humain ou pas...