Fabrik - Constructeur d'application BDDDe nombreux utilisateurs de bases de données (BDD) ont parfois besoin de mettre à disposition d'autres utilisateurs des applications BDD, pour la saisie ou la consultation, avec des problématiques de délais, de coûts ou de transmission. Le composant Fabriksous le CMS Joomla, permet un usage fin des bases de données, avec une efficacité de déploiement et une grande ergonomie pour les utilisateurs.

Fabrik est un CCK (Construct Content Kit, ou quelque chose comme ça...). Joomla dispose de plusieurs CCK, chacun ayant ses qualités et ses défauts. Certains disent que Fabrik n'est pas celui bénéficiant de la meilleur intégration sur Joomla, lui préférant Seblod par exemple (hum... à discuter). Mais c'est peut-être le plus orienté base de données relationnelles, si vous souhaitez mettre en place un système BDD tel que vous l'avez imaginé, et non pas tel que l'outil l'exige.

Cette souplesse permet d'y voir clair dans votre système, et de concevoir rapidement des outils extensibles, déportables et industrialisables.

Un article plus détaillé est disponible sur ce site.

listes fabrikQualités

  • Interfaces front et back très ergonomiques et personnalisables pour la mise en ligne d'applications BDD.
  • Transparence, possibilité de pointer vers d'autres BDD que celle utilisée par le CMS, multi-BDD, pas d'effet boîte noire.
  • Haute inter-opérabilité avec les composants et plugins Joomla (ACL, recherche avancée, multi-linguisime, multi-sites, tags, metadata, Google Map, Paypal...).
  • Facilité à ajouter son code métier, séparé du code Joomla et du code Fabrik.
  • Utilisation et émission de web-services et de services de téléchargement dynamique.
  • Standardisation naturelle des systèmes. Fabrik est un mini-framework, qui soumet et est soumis à des pratiques standards.
  • Opensource, gratuit, équipe de développement très active (Royaume-Uni).

Défauts

  • Fonctionne sous le CMS Joomla exclusivement (mais est-ce vraiment un défaut ?).
  • Fonctionne sous le SGBD MySQL exclusivement (ça c'est un défaut, libérez Postgres !).
  • Système de charts un peu pénible à mettre en œuvre (Google Chart, via des vues SQL). Mais rien n'empêche d'utiliser un autre système non-intégré, puisqu'avant cela vous aurez créé votre propre BDD.
  • Alourdissement du code des livrables. Fabrik est un mini-framework, qui vient s'ajouter au-dessus de Joomla.

screenshot app carto1Exemples d'utilisation

  • Création de formulaires (enquêtes, saisie en BDD...).
  • Création d'applications (catalogue de produits, agenda, petites annonces...).
  • Personnalisation du formulaire d'inscription du CMS.
  • Visualisation/modification de données selon des droits d'accès.
  • Géocodage/géocodage inversé, récupération des coordonnées géographiques, tagage de photos, récupération de méta-informations...
  • ...

Les grands principes du composant

Parfois critiqués par les dévs, les CCK ont peu de prétentions : révolutionner le développement d'applications BDD. En le mettant à la portée des néophytes, ou en améliorant la productivité des connaisseurs.

elements fabrikFabrik utilise la notion de listes, qui sont des objets BDD. Les listes sont les tables des bases de données ou plutôt : font référence aux tables. Car une table peut être liée à plusieurs listes ; et une liste à plusieurs tables.

De même, les éléments peuvent être vus comme des objets BDD, car s'ils font référence aux champs des tables, ils peuvent exister plusieurs fois s'ils sont dans plusieurs listes, être de types différents, appeler un autre élément, contenir un autre élément, concaténer d'autres éléments... Ils peuvent donc être réglés très différemment selon la page sur laquelle se trouve l'utilisateur, selon les droits de cet utilisateur (ACL) ou d'autres choix logiques (ou arbitraires...).

Un élément est d'ailleurs dupliqué quand une liste est dupliquée, et hérite de ses paramètres. Ce système d'héritage va permettre de modifier rapidement l'affichage des pages (formulaires, listes, intitulés...) et/ou les contenus (les champs) en fonction de vos besoins. Bien sûr cet héritage peut être cassé à tous moment s'il ne vous arrange plus.

Cette gestion très fine de la construction d'objets BDD (types de champs et jointures), de leur accès (ACL) puis de leur visualisation (comportement de pages), permet de construire rapidement et presque sans coder, des applications de bases de données.

De nombreux plugins sont à notre disposition pour paramétrer les champs , gérer les formulaires, sous-formulaires ou rediriger les utilisateurs par exemple, et peuvent contenir nos propres scripts PHP, SQL et JavaScript. On peut aussi aller plus loin et assigner aux objets Fabrik des fichiers de templates dédiés, afin d'attaquer directement leur PHP, JavaScript et CSS. Cette dernière méthode est d'ailleurs obligatoire pour avoir des règles d'affichages complexes et valables dans les exports PDF.

screenshot app carto2Fabrik est si puissant qu'il pourrait construire un CMS dans le CMS. Sa rapidité de déploiement est également impressionnante car de nombreuses tâches de développement nous sont épargnées, l'informaticien peut vite se concentrer sur les besoins métiers. Une application basique peut se construire sans même aller voir le code.

Mais dans le cas d'applications plus fines, le développeur devra rentrer dans la logique du CMS et du CCK, avec l'utilisation des variables Joomla, des sessions, des métadonnées ou des overrides CSS, Javascript et PHP. Des compétences et du temps devront être dédiés au développement et à la maintenance, en particulier quand les besoins incluent des comportements de pages personnalisé(e)s, la génération d'emails ou de PDF customisés, la gestion de pièces jointes sécurisées, ou encore l'utilisation d'API ou de web-services.


Site officiel : http://fabrikar.com/
Téléchargement : http://fabrikar.com/download
Forum : http://fabrikar.com/forums/index.php
Dépôt Git : https://github.com/Fabrik/fabrik
Astuces Fabrik (en français) : http://hg-map.fr/astuces/38-astuces-fabrik