Planète

Par Artusamak
Julien Dubois

Rules, pénétrez dans le monde merveilleux des actions automatisées

Comment faire pour déclencher des actions avancées de façon conditionnelles avec Drupal ? Avec trigger et action les modules de core ? Oui pourquoi pas, mais connaissez-vous Rules ?

Rules est un module développé par Wolfgang Ziegler AKA fago et est simplement une pure merveille et ça ne serait pas surprenant qu’il soit intégré à core sur Drupal 8 en remplacement de trigger et action. Rules était puissant sous Drupal 6 et l’est encore plus sous Drupal 7 (enfin là !).

Ensemble nous allons construire quelques rules simples via l’interface de Drupal et une action « custom » en implémentant les hooks à notre disposition.

Définition : Une rule représente une ou plusieurs actions réalisées lorsqu’une ou plusieurs conditions sont remplies suite au déclenchement d’un événement.

Trois termes clés ressortent ici :

Condition
Une condition peut être le test d’une valeur d’un champ CCK, le rôle d’un utilisateur, le type d’un node, la valeur de l’URL, la force de Rules est que chaque module peut étendre les conditions disponibles avec par exemple Organic Groups qui donne la possibilité de tester si l’utilisateur est membre d’un groupe.
Les conditions peuvent être multiples et peuvent être groupées et combinées via des opérateurs logique (ET et OU).

Action
Une action est une opération à executer lorsque les conditions listées précédement sont toutes remplies. Charger un noeud, envoyer un email, afficher un message, attribuer un rôle et dépublier un node sont des exemples d’actions possibles. Les actions pouvant être executées sont elles aussi extensibles par les modules contrib.
Les actions peuvent être multiples.

Evénement
Un événement est une opération qui déclenche l’évaluation des conditions d’une rule. Exemples possibles : un node est visualisé, un commentaire est publié, un utilisateur se connecte, etc. Les événements sont eux aussi extensibles par les modules contrib.

Un exemple complet d’une rule serait donc d’attribuer le rôle contributeur à un utilisateur lorsqu’il soumet un node de type article.

La puissance de Rules réside dans le fait que les actions peuvent se combiner et les conditions peuvent s’additionner pour donner des rules très complexes.

Note : Ceux qui ont déjà travaillé avec Ubercart et les predicats retrouveront des similitudes avec Rules.

Il faut ajouter aux conditions, actions et événements un élément clé supplémentaire, les arguments. Lorsque l’on veut évaluer une condition sur le rôle de l’utilisateur, il est nécessaire d’avoir l’objet utilisateur à disposition. Lorsque l’on veut tester le type d’un node, il fait avoit l’objet node à disposition. L’utilisateur ou le node sont donc les arguments utilisés dans l’évaluation des conditions ou des événements. Les arguments à transmettre dépendent du déclencheur que vous avez configuré pour lancer l’évaluation d’une rule. Lorsqu’une action ou une condition que vous aimeriez utiliser dans votre rule n’est pas disponible, cela signifie que vous n’avez pas à disposition l’argument dont vous avez besoin (exemple : vous voulez tester le type du node alors que vous avez utilisé l’événement de déclenchement de la rule « lorsque l’utilisateur se connecte », vous avez à disposition l’utilisateur alors que vous voulez utiliser le noeud). La solution dans ces cas là est d’utiliser un rules set.

Le rules set est un ensemble de rules à executer. Les rules sets peuvent être utilisés lorsque les actions doivent être programmées dans le temps, exemple : dépublier tous les lundi les articles de la page d’accueil datant de plus d’une semaine. Les rules sets ont l’avantage de pouvoir cumuler les arguments (utilisateur, noeud, taxonomie, etc) et donc d’élargir les conditions et actions pouvant être executées.

Partie 2 sur les rules implémentées programmatiquement à venir.

Par pounard

Des caches Drupal! (et surtout des caches)

Comme promis dans l'article précédent, je vais vous introduire la gestion du cache dans Drupal 7. Dans cet article, je ne vais pas m'étendre sur les politiques de cache d'un point de vue du développeur, mais plutôt du choix du backend approprié en fonction de l'environnement. Cet article a donc vocation de se placer plutôt côté architecte ou administrateur système.

Je suis moi même développeur, architecte n'est pas mon métier, cependant avoir un point de vue éclairé sur les problématiques que rencontrent ces derniers – sans pour autant être un expert – peut amener à se poser des questions sur le code que l'on produit. L'architecture et le design d'une application web (ou d'un sous-ensemble de cette dernière) poussent à se poser la question d'une politique de gestion de cache efficace. Pour mener à bien la conception d'une politique de cache, il faut comprendre les problèmatiques qui se posent derrière.

Cet article va être tourné plus particulièrement à la gestion du cache dans Drupal 7, qui à été grandement améliorée depuis Drupal 6. L'accent sera mis sur les différents backends.

Note de fin de soirée : Terminant cet article, je me suis rendu compte que ma simple introduction à la problématique elle même s'avère être suffisament consistente pour exister en tant qu'article complet. C'est pourquoi je m'arrête ici ce soir. Je vous souhaite une bonne lecture.

Par pounard

Des caches Drupal! (et un peu APC aussi)

Bonjour à tous, comme convenu dans mon premier article, qui était un étalage de benchmark peu revelant significatifs (je finis toujours par retrouver le mot français, déformation professionnelle vous me direz), voici un article concernant les optimisations basiques obligatoires à effectuer pour des sites Drupal. Ces techniques sont issues de presque 3 ans d'expérience avec le framework, mais surtout du travail conjoint de plusieurs personnes, notamment Régis (notre admin système, PHP warrior qui plus est).

Cet article traitera brièvement des options APC, puis s'étendra sur la mise en place de backend de cache multiples sur Drupal 7, comment faire, lesquels choisir, et comment en mesurer l'impact. Je ne m'attarderais pas sur l'optimization du serveur SQL qui est un métier à part entière. De plus le débat ne m'intéresse pas puisque la communauté Drupal préfère toujours utiliser MySQL alors que PostgreSQL est bien supérieur, à tous les niveaux.

Mise à jour du 11/01/2011 : Merci à gagarine de m'avoir signalé que l'option apc.optimization à été supprimée depuis la version 3.0.13 d'APC.

Par juliendubreuil
julien dubreuil
Drupal since 2009

Introduction à Drupal 7

Introduction à Drupal 7

Après de longs mois d’attente et un énorme travail fourni par la communauté nous y sommes enfin, Drupal 7 est sorti hier. Presque 3 années ont été nécessaires pour la réalisation de cette version afin d’améliorer les défauts de la v6. Celle-ci se veut plus simple d’utilisation et plus accessible.

Beaucoup d’évolutions ne sont pas visibles, car elles touchent le coeur de Drupal, néanmoins s’il y a bien une chose que l’on ne peut pas louper c’est la refonte de l’interface utilisateur et de son ergonomie.

Un groupe D7UX a même été crée afin d’améliorer cela. Dans les grande lignes on peut noter l’ajout d’une barre d’administration permanente et une gestion de votre site via des pop-ups permettant l’édition « in-place ». Pour une gestion d’image en D6 il fallait ajouter quelques modules tels que imageAPI, imagecache, et filefield, maintenant c’est en natif.

Côté theming, nous pouvons dire au revoir aux thèmes Bluemarine, Chameleon et Pushbutton qui ont été remplacés par “Bartik” (thème par défaut), “Seven” (thème de l’interface d’admin) et “Stark” (thème minimaliste permettant de commencer un nouveau thème depuis zéro). Notez aussi que JQueryUI 1.8 fait maintenant parti intégrante du CMS et que les librairies Js incluses ont été remises à niveau. Le templating a été complètement revu pour un meilleur markup et le support du RDFa.

Les minimums requis pour faire fonctionner Drupal ont été modifiés, dorénavant vous aurez besoin d’un serveur avec PHP 5.2. Cette nouvelle version prend maintenant en compte MySQL 5.0.15 ou PostgreSQL 8.3.

Côté développeur on peut noter 3 chantiers importants. Le premier c’est l’intégration de SimpleTest, ce qui va vous permettre d’avoir un framework pour faire vos tests sur vos modules. Ensuite un chamboulement coté base de données avec l’intégration de DBTNG pour une meilleur prise en charge des différents types de bases, une gestion maître/esclave et l’utilisation de PDO afin d’avoir une abstraction complète du type de base. Et enfin l’intégration de CCK dans le coeur de Drupal, sous le nom de fieldapi. Ces deux derniers points feront l’objet d’un vrai billet car il y a de quoi en parler.

Le petit plus qui aura son importance pour les développeurs c’est qu’il est maintenant possible de faire des load multiples sur des users ou des nodes et fini les $op sur beaucoup de hook au profit de fonctions bien plus spécifiques.

Ce post n’est qu’une toute petite introduction aux nouveautés de D7, si vous voulez en savoir plus, vous pouvez vous rendre sur le site officiel ou encore sur différents articles que j’ai sélectionnés pour vous :

Et pour finir la présentation officielle en anglais de Drupal 7 par Jeff Robbins – http://vimeo.com/18352872

Au final cette nouvelle version est beaucoup plus flexible, accessible et performante que la précédente, néanmoins les problèmes de staggings n’ont pas encore été résolus (croisons les doigts pour D8). Maintenant il ne vous reste qu’à vous amuser avec afin de découvrir cette nouvelle version en profondeur et me faire un retour :p

Par StephaneQ
Stéphane Quantin
Développeur Drupal chez Yogarik

Sortie de Drupal version 7 : les nouveautés

La version 7 du CMS Drupal est parue hier, après 3 années de développement. Des centaines de développeurs ont travaillé sur cette version, qualifiée de révolutionnaire.

Par StephaneQ
Stéphane Quantin
Développeur Drupal chez Yogarik

Sortie de Drupal version 7 : les nouveautés

La version 7 du CMS Drupal est parue hier, après 3 années de développement. Des centaines de développeurs ont travaillé sur cette version, qualifiée de révolutionnaire.

Par fgm@drupal.org
Adhérent
Frédéric G. Marand

Madame Figaro

Le nouveau site de Madame Figaro, réalisé sur Drupal 6, démontre qu'un site Drupal n'a pas besoin d'avoir "le look Drupal".

en lire plus

Par badgones

Cacher la taxonomy sur un noeud Drupal

Pour ne pas afficher (ou cacher) la taxonomie sur un noeud Drupal, 3 moyens sont à notre disposition :

 - le premier, méthode crade, c'est d'utiliser les CSS. Mais au moins, le moteur de recherche les références

 - le deuxième, c'est d'éditer son template (node.tpl.php par exemple) et de supprimer la ligne suivante :
&nbsp;&nbsp;&nbsp; <span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">&lt;?php </span><span style="color: rgb(0, 119, 0);">if (</span><span style="color: rgb(0, 0, 187);">$taxonomy</span><span style="color: rgb(0, 119, 0);">): </span><span style="color: rgb(0, 0, 187);">?&gt;</span></span>

en lire plus

Par badgones

Thème Drupal et photos libres de droit

Vous cherchez des photos libres de droit pour faire votre thème Drupal, voici quelques liens de site qui en proposent.
Attention de bien lire les obligations avant (publier l'adresse du site, ...)

N'hésitez pas à en donner d'autres!

Par badgones

How to : Ajouter des pub AdSense sur son site Drupal

Vous voulez rentabiliser votre site et vous souhaitez ajouter des pub AdSense sur votre site Drupal, rien de plus simple, voilà un petit tutoriel (pour la version 3 de AdSense).

Tout d'abord, ouvrir un compte chez AdSense : www.google.com/adsense (il faut aussi un compte google, mais si vous en avez pas, vous pourrez le créer lors du processus d'inscription à AdSense).
Attendre le mail de confirmation et le valider.
Ensuite aller sur son compte AdSense (https://www.google.com/adsense/v3/app?hl=fr), onglet "Mes annonces", puis cliquer sur "Nouveau bloc d'annonces".

en lire plus

Par badgones

Partager ses contenus Drupal sur sites communautaires Twitter, Facebook, Digg, Delicious, ...

Pour partager ses contenus Drupal sur les sites communautaires tels que Twitter, Facebook, Digg, Delicious, MySpace, Google et autre, il suffit d'intaller le module AddThis disponible à l'URL suivante :
http://drupal.org/project/addthis

Une fois installé et activé, il faut sélectionner sur quelles pages on souhaite le voir (résulé et/ou noeud complet), puis choisir le boutton qu'on souhaite afficher, et enfin les supports pour lesquels on souhaite activer le module, par exemple :
favorites, email, twitter, digg, facebook, delicious, myspace, google, live, more

D'autres options sont disponibles, telles que le choix des couleurs, arrière-plan, ...

Par kgaut
Kevin Gautreau

Smartbus

Le site de mon projet de Master, j'aurai sûrement l'occasion d'en reparler.

Basé sur un Drupal 7, avec un template bidouillé rapidement.

Merci à Niels pour le logo.

Date de réalisation: 
Décembre 2010
CMS: 
Tags: 

Par kgaut
Kevin Gautreau

Smartbus

Le site de mon projet de Master, j'aurai sûrement l'occasion d'en reparler.

Basé sur un Drupal 7, avec un template bidouillé rapidement.

Merci à Niels pour le logo.

Date de réalisation: 
Décembre 2010
CMS: 
Tags: 

Par kgaut
Kevin Gautreau

Mes liens

Un petit site concept développé rapidement histoire de tester deux-trois trucs.

Mes liens ce veux un agrégateur des différents liens que je trouve intéressants sur le net est que je veux garder sous la main et éventuellement partager.

Ce n'est qu'une première version, ultra simple (et ultra moche) sur laquelle je développerai à l'occasion des nouvelles fonctionnalités, entre autres interfaces avec twitter, google reader...

C'était aussi un gros pretexte pour tester drupal 7!

Date de réalisation: 
Décembre 2010
CMS: 

Par kgaut
Kevin Gautreau

Mes liens

Un petit site concept développé rapidement histoire de tester deux-trois trucs.

Mes liens ce veux un agrégateur des différents liens que je trouve intéressants sur le net est que je veux garder sous la main et éventuellement partager.

Ce n'est qu'une première version, ultra simple (et ultra moche) sur laquelle je développerai à l'occasion des nouvelles fonctionnalités, entre autres interfaces avec twitter, google reader...

C'était aussi un gros pretexte pour tester drupal 7!

Date de réalisation: 
Décembre 2010
CMS: 

Pages