Pallier les problèmes de sauvegarde des formulaires importants

Lorsque l'on travaille sur un projet Drupal conséquent comportant de nombreuses de fonctionnalités et de nombreuses permissions à contribuer, on observe régulièrement un problème récurrent de sauvegarde sur des formulaires de grande taille. Régulièrement, les changement ne sont pas pris en compte en base de donnés. Des alésa récurrents sur les formulaires de droits /admin/user/permissions et /admin/people/permissions. Comment pallier à ce problème ? C'est le sujet de cet article...

Installation d’aegir pour gérer un parc de sites Drupal

gdo_aegir

Aegir est un outil web qui permet de piloter un parc de sites Drupal. Ce qu'on fait en général via des commandes drush (drush updb, drush fra, etc...), on peut le faire via un site web directement. C'est un site Drupal, qui pilote la gestion d'autres sites Drupal. Bien sûr, on pourrait faire tout ça et même plus via des scripts ou quelques outils de supervision.

L'intérêt, c'est de donner à l'utilisateur (le client) la possibilité de créer des sites à la volé par exemple ou de lancer des opérations sur plusieurs sites à la fois sans "mettre les mains dans le cambouis".

Améliorer Behat pour Drupal avec 3 extensions : screenshot, code coverage, et watchdog

behat-logo

Behat est très puissant pour faire des tests de non régression. Comment le rendre encore plus puissant ? Avec 3 petites extensions très pratiques pour le debug :

  1. En affichant les warning rajoutés dans le watchdog automatiquement à la fin d'un test. Très pratique pour s'assurer qu'il n'y a pas d'erreur cachées pendant l'exécution des tests
  2. En rajoutant un test de couverture du code avec xdebug et phpcov pour voir si tout est bien testé
  3. En prenant un screenshot automatique de l'étape behat si elle plante, afin de pouvoir voir où est le problème sans avoir à passer par un "Then I break"

Démarche d’amélioration des performances Drupal

Améliorer les performances d'un site (Drupal ou non) peut se révéler être une tâche complexe puisque, par définition, tous les niveaux d'architecture matérielle et logicielle sont potentiellement concernés (Apache, PHP, MySQL, infrastructure).

Une démarche rigoureuse et méthodique est impérative afin de ne pas se lancer dans des optimisations en aveugle. En voici les principales étapes :

Constater, Reproduire, Diagnostiquer, Prioriser, Corriger, Mesurer, Itérer

Pour chaque étape, nous mentionnerons certains outils classiquement utilisés, sans être exhaustif. Chacun d'entre eux mériterait un développement à part.

Custom Form Table en Drupal

logo_drupal

Il est très bien d'utiliser Views pour faire des tables de contenu/utilisateurs mais parfois nous n'avons pas de sous-modules ou d'extensions pour générer les tables de submissions de webform très complets. Par défaut nous avons des informations qui ne sont pas très pratiques, comme Sid, Date de submission, Ip de l'autor, ... Pour cet exemple je vais vous expliquer comment créer une table custom dans un formulaire custom Drupal, avec les champs d'un webform.

Migration des contenus Drupal

migrate

La migration des contenus vers Drupal est rendue facile grâce au module « Migrate ». Quelles que soient les sources, le module est très souple, complet et simple d’utilisation. Nous pouvons faire la migration des nœuds, des utilisateurs, des taxonomies, des fichiers, des menus, des commentaires etc. Une interface en Back Office, facile à manipuler, nous guide pour tout type d’action. Importer, annuler l’import, réinitialiser, stopper la migration en cours sont des actions possibles dans cette interface. Il y a même plusieurs modules spécialisés pour des sources précises, comme « drupal_d2d » pour une source Drupal (version 5, 6 ou 7), « commerce_migrate » pour Drupal commerce, « wordpress_migrate » pour wordpress, « g2migrate » pour les photos et données relatives au Gallery package (version 2), « typo3_migrate » pour TYPO3, « phpbb2drupal » pour phpBB2.