Drupal

  1. Drupal est OPEN-SOURCE

Drupal est un CMS (Content Management System) libre et open source. Il permet d’avoir un contrôle total sur le contenu d’un site internet sans nécessiter l’intervention d’un quelconque développeur ou programmeur web.

Facile à prendre en main, il peut être gérer aussi bien par des experts que par des débutants ou intermédiaires.

Il a pour finalité de mettre en place différent sites web de types des plus courants. Il opère entre autre dans les sites web de types : blog, e-commerce, intranets, annuaire, discussions et échanges, réseaux sociaux, institutionnels ou encore communautaire.

Drupal est entièrement écrit en PHP et reste fonctionnel sur la plupart des serveurs tels que LAMP, WAMP ou encore MAMP. Cependant il est toujours possible de le personnaliser.

  • Drupal, un bon choix ?

Drupal permet de mettre en place un site fonctionnel et facile à faire évoluer, juste en quelques clics sans recourir au développement de lignes de codes.

Il est aussi possible de développer ses propres fonctionnalités en ajoutant des modules. La communauté active de Drupal propose, sous licence libre GPL, une grande quantité de modules codés par ses membres.

Drupal est aussi définit comme Content Management Framework à cause de son API (interface de programmation), sa robustesse et la qualité visuel de son code. De ce fait Drupal se voit octroyer le « titre »  de Framework PHP.

L’APC (Alternative PHP Cache) et le Memcached sont des modules qui permettent d’augmenter la performance des sites Drupal. APC a tendance à compiler les fichiers PHP et garde en mémoire les résultats. Lorsque les requêtes concernant ces fichiers sont exécutées, le module APC va chercher le résultat dans les mémoires et permettre au système de gagner du temps. Memcached a la même finalité que l’APC. Cependant Memcached permet stocke en mémoire les codes déjà compilés. Memcached utilise les structures client-serveur ce qui permet une meilleure gestion des architectures avancées.

Pour encore augmenter les performances de son site, avec Drupal on peut recourir à Varnish qui fait office de reverse-proxy et se place entre le site et le serveur. Les requêtes ne sont transmises au serveur que lorsqu’elles sont vraiment nécessaires. Sinon Varnish sera le gestionnaire des ressources du site et pourra même gérer les requêtes à lourdes charges.

Cependant la raison qui pousse le plus les professionnels à s’orienter vers Drupal est son extensibilité.

Les interfaces restent très personnalisables avec le système de gestion de modules qui permet de désactiver ou activer les modules et ainsi libérer du champ pour les administrateurs qui n’en ont pas besoin.

Drupal reste en version communautaire à 100% mais certains prestataires proposent des services de support.

  1. Les composants de Drupal et leurs intérêts

 

– Content Construction kit (CCK) : Drupal fournit dans le noyau de sa version 7 l’outil CCK qui permet de personnaliser notre système en ajoutant des champs personnalisés aux types de contenus modifiés aux nœuds à travers un navigateur web.

-Chaos tool suite : Connu aussi sous le nom de ctools, Chaos tool suite est un regroupement d’API qui permet de récolter et d’augmenter l’expérience du développeur. Il contient aussi un module appelé Page Manager qui a pour but de gérer, comme son nom l’indique, les différentes pages du panel. Cependant Page Manager pourrait servir à gérer beaucoup plus de pages que ceux du panel dans les versions à venir.

Ctools regroupe entre autres les outils suivants :

*plugins : outil pour faciliter l’implémentation des plugins par les modules depuis les fichiers .inc

*Exportables : outil qui permet aux modules d’avoir des objets dans la base de données ou dans le code.

*Object caching : outil qui facilite la modification d’objets à travers plusieurs pages et garder l’opération en cache.

On peut également utiliser d’autres outils contenus dans Chaos tool suite. Ctools compte à peu près 9 outils de ce type.

-Justuno : Justuno est le premier outil de marketing social qui permet d’accroitre le conduit social du site. Il permet aussi en quelques sortes de convertir les visiteurs en clients à partir d’une implémentation instantanée du widget. En échange d’un code promo les utilisateurs/clients devront aimer la page Facebook du site, Suivre la page Twitter du site, s’abonner à la newsletter ou plus d’options sans pour autant quitter le site web.

-Couchbase : Couchbase est composé de méthodes permettant d’instancier des connections couchbase à partir de la variable conf[‘couchbase’]. Le module embarque aussi des méthodes REST qui permettent de gérer les ressources de l’api REST qu’il procure.

-@Todo : @Todo fournit aux développeurs et aux admin un outil léger de sauvegarde de tâches qui permet de remplacer un Framework de mise en place d’outils CLI. Cela peut être utile pour mettre au courant la communauté de nos prochains services à venir mais n’est pas très accessible concernant le suivi de nos tâches. Sa finalité n’est pas de rivaliser avec un outil de suivi de taches.

  1. Drupal : Evolution, histoire

Drupal a été lancé en 2000 par Dries Buytaert. Il le présente comme un assembleur rapide de site web du fait de sa simplicité de mise en place et de sa prise en main.

Drupal 6 sera la première version qui marquera les esprits avec ces 2 différents types de modules :

-bloc : il permet d’afficher en ligne, selon la disposition voulue par le développeur, des informations relativement petites à savoir les derniers posts éjectés sur le site ou les plus visités/lus, le nombre d’utilisateurs actuellement connectés, les utilisateurs dernièrement inscrits sur le site ou forum. Le développeur avait le choix de placer les blocs un peu partout sur la page. Le plus souvent ils sont placés dans les marges.

-nœud : Ce module quant à lui s’occupe de tout ce qui ne se trouve pas dans les marges à savoir les contenus des : blogs, forums, pages, formulaires. Il est associé à quatre fonctions en standard : list, configure, save, view. List indique comment le module doit procéder pour signaler son existence. Configure quant à lui doit indiquer comment configurer le module lister juste avant. Save indiquera comment enregistrer la configuration du module et enfin view permet afficher ses informations.

Drupal 7 met en avant les zones. L’admin du site peut les déplacer comme bon lui semble, il peut aussi définir la taille, la police et la couleur de la zone. Ce qui fait que le contenu d’un nœud peut se retrouver dans les marges. Ce qui représente un atout considérable pour les développeurs qui souhaitent définir des zones de débogages. Les modules avaient la possibilité de renvoyer trois éléments : un code d’erreur, le fameux WSOD (white screen of death) qui représente aussi une erreur et un vecteur ou tableau.

Drupal 8 tournera sur le Framework Symfony 2. Cela serait dut à l’accroissement du nombre de développeurs Symfony 2 et de s’appuyer sur la programmation objet mais aussi sur le namespacing. Cela aiderait le système d’isoler les modules. On notera en plus de Symfony 2, l’intégration de Doctrine, Assetic, Backbone, Twig ou encore Guzzle. Il intégrera le responsive design dans ces Templates. Ce qui représente un atout du web de nos jours avec l’évolution des smartphones, tablettes etc. On pourra aussi noter l’arrivée des web services, le multilinguisme, l’intégration de HTML5, la gestion entière de la configuration. Il est important de dire aussi que de nouveaux champs seront intégrés au back office concernant l’édition de contenu : Email, Date, Link, Entity Reference.

 

  1. Sécurité

Le monde du web évolue chaque jour et devient de plus en plus riche. Cela entraine des failles de sécurité à travers les codes de certaines fonctionnalités ou outils.

Sur Drupal, il existe, à la disposition des utilisateurs, quatre types de formats de texte: le HTML, le texte brut, le HTML filtré et le PHP.

Ces derniers peuvent être accessibles par les utilisateurs sauf si on s’en prémunie. S’en prémunir revient à limiter les accès à ces types de formats de texte. En d’autres termes l’utilisateur non connecté, anonyme, ne devra avoir droit qu’au texte brut et laisser le full accès à l’administrateur. En plus de cela, en fonction du type de site, les droits peuvent être modifiés. Dans certains sites qui requiert une authentification tels que les sites de types blog, institutionnels ou commercial, on peut limiter les accès au type de formats pour les utilisateurs connectés. Les utilisateurs connectés seront limités au format texte brut et HTML filtré. Ceci afin de se prémunir d’une éventuelle mauvaise surprise.

Les modules Drupal sont de deux types. Les modules core et les modules complémentaires. Par défaut un administrateur a tous les droits d’administration sur les modules. Cependant il doit limiter les possibilités de gestions de ces modules à l’instar des autres utilisateurs qui ont accès au back-office. Drupal nous rappel grâce à une icône, lors de l’ajout d’un nouveau module, d’octroyer les droits nécessaires aux utilisateurs concernés.

Les champs de commentaires peuvent aussi nuire dans un sens. Si les commentaires ne sont pas gérés, le site peut être spammé de commentaires par des robots.Des fonctionnalités de bases de Drupal permettent de prévenir ces types d’erreur. L’idée serait aussi de les limiter au type de format texte brut. Ces précautions sont à prendre en compte pour tous les sites requérant des données utilisateurs. Tels que contact, inscription, commentaire. Sous peine d’être victime de spam réguliers.

De base, les URLS sur Drupal peuvent faire croire à des possibilités d’une quelconque injection de code. Dans le panneau de configuration on peut activer clean Urls qui permet de simplifier les URLS, les rendre plus lisibles par les visiteurs mais permettrait également d’éradiquer toute pensée négative par rapport aux injections de codes.

  1. Drupal sur la toile
  • Notoriété de Drupal

Les utilisateurs attendent de plus en plus à ce que les sites web soient mis en places aussi vite que possible. Et qu’ils puissent tout gérer sans pour autant disposé de très fortes compétences en développement web. C’est là ou intervient les systèmes de gestion de contenu ou CMS dont l’une leader du marché : Drupal.

Drupal est à la base de plus de 2 millions de sites web et détient une forte notoriété grâce à sa renommée tirée sur la mise en place de sites grands publics. Nous citons entre autres Sony Ericsson, Nokia, Reuters, Fuji film, Sony, Nike, Disney, General Motors.

Drupal peut aussi compter sur les fortes activités de sa communauté composés essentiellement d’experts et qui développent régulièrement des modules permettant de répondre à la demande des utilisateurs. Nous comptons à ce jour plusieurs milliers de modules développés.

  • Indépendance de Drupal

Afin de mettre en place Drupal, il faut s’assurer que notre environnement remplisse les conditions de validations. D’abord dans l’espace disque : un minimum de 60 MB est imposé pour l’installation des thèmes à utiliser ainsi que les différents modules. Ensuite il faut un server web de type Apache, Nginx ou Microsoft IIS. Il faut activer le module de redirection d’apache ‘mod_rewrite’ pour activer clean urls dans Drupal. La configuration des Virtual host d’apache doit contenir la directive AllowOverride All pour permettre au .htaccess de Drupal d’être utiliser. Concernant la gestion de la base de données, Drupal fait varier les conditions de validation en fonction de la version (de Drupal). Drupal 6 exige au minimum MySQL 4.1, PostgreSQL 7.1. Quant à Drupal 7, ce sera au minimum : MySQL 5.0.15, avec PDO, PostgreSQL 8.3, avec PDO ou SQLite 3.3.7.

Drupal a aussi des contraintes sur les versions de PHP. Drupal 6 va avec PHP 5.2 seulement. PHP 4.x n’est plus supporté et PHP 5.1, 5.2, 5.3 peuvent retourner des erreurs ou un comportement inattendu. Drupal 7 exige à minima PHP 5.2. Cependant la version PHP 5.3 est fortement recommandée.

  • Drupal Sur le marché

Drupal a une communauté de plus de 200 000 contributeurs, la plupart remplissant les conditions de validation d’expertise. Sa rapidité, son extensibilité et sa robustesse font de lui un concurrent géant dans le monde des CMS OPEN-SOURCE. D’autant plus que la prochaine version de Drupal, à savoir Drupal 8 intégrera Symfony ce qui simplifiera beaucoup plus son accessibilité.

Donnez votre avis