Un exemple de Custom Attribute

Lors d’un projet d’application Web permettant de gérer les problématiques et contraintes liées au domaine de la sécurité au travail, et après une longue période de développement, une demande a été soulevée par le client visant à permettre de crypter en base de données certaines informations stockées. Dans ce contexte de sécurisation de l’information en base, il a fallu chercher à généraliser le fonctionnement de cryptage pour le développement à effectuer les évolutions à venir.
C’est dans ce contexte que le Custom Attribute s’est révélé être un allié précieux.

Mini-site (un site monopage à onglets) html – css3

Une application web monopage (en anglais single-page application ou SPA) est une application web accessible via une page web unique. Le but est d’éviter le chargement d’une nouvelle page à chaque action demandée, et de fluidifier ainsi l’expérience utilisateur. Deux méthodes existent pour ce faire : soit on charge l’ensemble des éléments de l’application (contenu, images, CSS et JavaScript) dans un unique fichier HTML, soit on récupère et affiche dynamiquement les ressources nécessaires en fonction des actions de l’utilisateur. Le terme a été introduit par Steve Yen en 2005. (Wikipédia)

Nous n’avons qu’une seule page html contenant plusieurs onglets.

Import d’un site existant dans aegir depuis un dépôt git

gdo_aegir

Dans cet article, nous allons voir comment importer un site existant dans aegir depuis un dépôt git, mais tout d’abord, voici un petit préambule pour bien comprendre le vocabulaire d’aegir.

Imaginons que vous ayez un site sur monurl.fr qui pointe sur /var/www/monsite (la plateforme) dans votre vhost avec un sous-répertoire /sites/monurl.fr (le site), le tout géré par votre dépôt git sous gitlab.

Pour faire simple aegir appelle un drupal sans base de données, une plateforme et un drupal avec sa base de données, un site :

  • une plateforme au sens aegir, c’est le dépôt git d’un répetoire drupal avec sa branche courante (qu’on ne peut plus changer à postériori)
  • une site au sens aegir c’est : à l’intérieur d’une plateforme, un répertoire dans sites avec le settings.php (généré par aegir, il ne faut pas y toucher), une base de données, un alias, et un vhost

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.

Création de portail avec Liferay

partners-logos-liferay-v2

Liferay est un portail Open Source Java. Il est compatible avec les portlets (JSR 168 et 286). Une version communautaire CE (gratuite) et une version professionnelle EE sont disponibles.

L’architecture est modulaire et permet d’intégrer de nombreuses technologies en fonction des choix et besoins des projets. Liferay est basé sur JavaEE et inclus depuis la version 7 un container OSGi. Liferay inclut également : spring, elasticsearch, hibernate, ehcache…

Au niveau frontend Liferay imposait alloyUI, les développeurs peuvent maintenant utiliser la librairie de leur choix (angular, react..). De base, la nouvelle version de Liferay (Version 7) contient Bootstrap, SaSS et EcmaScript 2015.

De nombreuses fonctionnalités sont disponibles et peuvent être adaptées au besoin du portail. La solution intègre un CMS pour la gestion de contenu, de nombreuses portlets (applications autonomes) comme wiki, agenda, blog, une GED et un mécanisme de droits et de gestion des utilisateurs.

Utiliser fullcalendar avec Angular 2

logo

Fullcalendar est un plugin jQuery très célèbre pour la gestion des rendez-vous du côté client. Il peut interagir avec des frameworks Javascript. Avec les fonctionnalités fournis par AngularJs 1, nous pouvons facilement interagir avec fullcalendar, enregistrer des dates de rendez-vous via un Web Service en utilisant l’Ajax. Mais dans notre article, nous allons voir comment le faire avec Angular 2. (Télécharger ou cloner les exemples)

Il y a deux approches que nous allons étudier avec le plugin Fullcalendar de jQuery:

  • La séparation de la logique de jQuery et Angular 2
  • L’utilisation d’Angular 2 seulement.