Développement d'un composant avec Joomla Builder
- Details Hits: 19
Joomla Builder
C'est un outil de génération de composants pour Joomla développé par Llewellyn van der Merwe.
Il permet sans quasiment écrire une ligne de code de générer l'arborescence de fichiers et le code du composant pour l'administration et le site.
L'outil est téléchargeable sur le JED Joomla ou directement sur son site github ici pkg-component-builder/releases
Une belle présentation est disponible ici sur le magazine Jooma january-2025/tools-to-build-a-component-7-joomla-component-builder
Le sujet
Il s'agit de créer un composant qui permettra de calculer ses impôts en fonction du revenu et de son nombre de parts.
Le calcul est fait en fonction des tranches d'impôts de l'année considérée et d'un coefficient à appliquer pour chaque tranche.
On se contentera d'un calcul simple en déduisant les dons aux associations et les placements du type "PER".
La modélisation
Pour commencer à utiliser "Component Builder", il faut faire une modélisation des données utilisées pour le composants.
Dans notre cas il s'agira des données de calcul , à savoir les tranches d'impôts et coefficients à appliquer pour une année fiscale.
Concernant les données du revenu on utilisera le revenu net fiscal, le mode de déductions de frais (10% ou réel) le nombre de parts, les dons aux associations et le placement sur le PEL.
![]() |
Baptisons notre composant com_jtax |
Pour faire la modélisation, j'utilise l'outil
PlantUML
![]() |
Les 2 "classes" vont être mappées sur 2 tables de la base de données Joomla `#__jtax_impot` et `#__jtax_annee` On créera un lien entre chaque ligne de la table "impot" et une ligne de la table de donnée "annee"
|
La création du composant dans component builder
Aller dans l'interface administrateur sous Components/Component Builder/Joomla Components
Cliquer sur Nouveau
Pour ma part j'ai juste rempli les champs pour "System Name" et "Short Description" et "Company Name" "Author" "Author Email" "Author Website"
Création des champs associés au composant
On crée un champ ("Field") pour chaque ligne et chaque table reflétant la modélisation.
J'ai créé un type de champ ("Fieldtype") de nom "Revenu" pour indiquer les min et max de tous les champs de ce type
Nom | Type |
---|---|
tranche1 à tranche4 | Revenu |
coef1 à coef4 | FLOAT |
revenu | Revenu |
deduction | Revenu |
nom | STRING |
nbparts | FLOAT |
PEL | Revenu |
Exemple pour le champ PEL on lui donne pour type Revenu
On précise le format dans la base de données
Pour le champ nombre de parts j'ai mis un step à 0.5 pour avoir les demi parts
Création des vues administrateur associées au composant
Ce sont les vues (admin views) qui déterminent l'association entre les listes de champs et les tables de la base de données, et la création des contrôleurs/modèles associés
L'association est faite au travers des "Linked Fields", pris par rapport aux "Fields" créés précédemment.
Pour ma part 2 vues:
- la vue Année, (Year dans la configuration) associée aux 2 vues Years (pour la liste d'éléments) et Year pour chaque élément
Impôt - read/write
Edit View: impot
List View: impots
Linked Fields
Field | Admin Behaviour | Order in list views | Tab | Order in Edit |
---|---|---|---|---|
Name (Key - Required) [name - text] | Show in All List Views | 1 | Details | 1 |
Tranche 1 [tranche1 - revenu] | Default | 0 | Details | 2 |
Tranche 2 [tranche2 - revenu] | Default | 0 | Details | 3 |
Tranche 3 [tranche3 - revenu] | Default | 0 | Details | 4 |
Tranche 4 [tranche4 - revenu] | Default | 0 | Details | 5 |
Taux tranche 1 [taux1 - taux] | Default | 0 | Details | 6 |
Taux tranche 2 [taux2 - taux] | Default | 0 | Details | 7 |
Taux tranche 3 [taux3 - taux] | Default | 0 | Details | 8 |
Taux tranche 4 [taux4 - taux] | Default | 0 | Details | 9 |
- la vue impots, associée aux 2 vues Impôts (pour la liste d’éléments) et Impôt pour chaque élément
Year - read/write
Edit View: year
List View: years
Linked Fields
Field | Admin Behaviour | Order in list views | Tab | Order in Edit |
---|---|---|---|---|
Name (not-required) [name - text] | Show in All List Views | 1 | Details | 0 |
Year [year - sql] | Show in All List Views | 2 | Details | 1 |
Revenu [revenu - revenu] | Show in All List Views | 3 | Details | 2 |
Nombre de parts [nbparts - integer] | Show in All List Views | 4 | Details | 3 |
Déduction [deduction - radio] | Show in All List Views | 5 | Details | 4 |
PEL [pel - revenu] | Default | 0 | Details | 6 |
Dons [dons - revenu] | Default | 0 | Details | 7 |
Classes générées par Component Builder
Associer les vues au composant
C'est à fare dans l'edition du composant
J'ai coché les cases pour ajouter les liens au "dashboard" et au menu
Compiler le composant
Cela permet de générer un package installable avec tous les sources associés
Aller dans le Menu Component Builder/Compile
Installer le composant
cliquer sur le bouton "Install com_jtax xxx"
Tester le dashboard
On obtient le "dashboard" suivant:
Et si on clique sur year add
Et si on clique sur Impot add
Mise à jour du composant Weblinks | 2022-11-24 08:11:08 |
Mise à jour de JComments pour Joomla 4.0 | 2013-04-14 12:28:23 |
Mise à jour de Xmap pour Joomla 4.0/Joomla_5.0 | 2013-04-14 12:28:23 |
JComments | 2018-02-01 09:52:46 |
Composants | 2014-06-08 09:52:46 |
Mon premier composant | 2012-07-08 10:23:00 |