12 rue de Blénod, 54700 Maidières +33 6 87 42 95 30 Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. Lun-Ven: 8h/12h 14h/17h

Tutoriels inédits sur le CMS Joomla

Parc Joomla : piloter tous vos sites Joomla avec Claude Desktop

Parc Joomla, extension Claude Desktop pour gérer plusieurs sites Joomla, conçue et vérifiée avec Claude

En avril, je vous ai montré comment connecter Claude Desktop à un site Joomla via MCP. Ça marche très bien… à condition d'installer Node.js, de taper des commandes dans un terminal et de modifier un fichier JSON à la main, site par site. Soyons honnêtes : pour la plupart des intégrateurs et des webmasters que je côtoie, c'est là que l'aventure s'arrête.

J'ai donc transformé ce connecteur en un vrai outil : Parc Joomla. Une extension qui s'installe d'un double-clic dans Claude Desktop, un seul connecteur pour tous vos sites Joomla, et une petite page dans votre navigateur pour ajouter chaque site avec sa clé API. Plus de terminal, plus de fichier de configuration à éditer.

En toute transparence : Parc Joomla et ce tutoriel ont été réalisés avec Claude, l'intelligence artificielle d'Anthropic, dans Claude Desktop. J'ai défini le besoin, les choix et les règles de sécurité ; Claude a écrit le code, les tests et une première version de ce texte ; l'ensemble a été vérifié sur les sites que je gère avant publication. Je vous explique en fin d'article comment.

Ce que fait Parc Joomla

Parc Joomla passe par l'API Web Services native de Joomla : rien à installer sur vos sites. Depuis une conversation avec Claude, vous pouvez :

  • Articles : lister, lire, créer (en brouillon par défaut), modifier, avec la coupure « Lire la suite », la meta description, les mots-clés et les images ;
  • Tags : les poser en langage naturel, sans doublon (« IA Claude » et « claude ia » sont reconnus comme le même tag) ;
  • Catégories : lister, créer, modifier ;
  • Médiathèque : envoyer une image depuis une adresse web ou depuis votre PC, créer des dossiers, supprimer un fichier ;
  • Menus et éléments de menu : lister, créer, modifier, et contrôler qu'aucun lien ne pointe vers un mauvais composant ;
  • Modules : lister, lire leurs paramètres, créer, modifier ;
  • Utilisateurs et extensions : consulter la liste et l'inventaire.

Le tout pour autant de sites que vous voulez : vous nommez simplement le site dans votre demande.

Ce dont vous avez besoin
  • Claude Desktop à jour, sur Windows (testé) ou Mac (prévu, pas encore testé) ;
  • un ou plusieurs sites Joomla 4, 5 ou 6, en https ;
  • un compte Super Utilisateur sur chaque site ;
  • le fichier d'installation parc-joomla-web54-x.y.z.mcpb (voir « Obtenir Parc Joomla » en fin d'article) ;
  • une dizaine de minutes.
Pas besoin d'installer Node.js : Claude Desktop embarque déjà ce qu'il faut pour faire tourner l'extension.

Étape 1 — Préparer chaque site Joomla

L'API Web Services doit être active, et il vous faut un jeton (la « clé API ») par site :

  1. Système → Plugins, filtre token : les deux plugins de jeton API (authentification API et utilisateur) doivent être activés.
  2. Même écran, filtre web services : activez au moins Content, Media, Menus, Modules, Tags, Users et Installer, selon ce que vous voulez piloter.
  3. Utilisateurs → votre compte Super Utilisateur → onglet du jeton API (« Authentification API Joomla » ou « Jeton API Joomla » selon la traduction) : générez le jeton, enregistrez le profil, puis copiez le jeton.
Ce jeton vaut un mot de passe. Il donne à qui le détient les droits du compte, Super Utilisateur compris. Pour un collaborateur, créez-lui son propre compte et son propre jeton : vous pourrez le révoquer sans toucher au vôtre (« Réinitialiser » le jeton, puis enregistrer le profil).
Pare-feu et hébergeurs : Admin Tools, RSFirewall, Tiger Protect ou une règle .htaccess maison peuvent bloquer /api/ : autorisez-le. Certains hébergeurs suppriment l'en-tête Authorization : Parc Joomla envoie aussi le jeton dans l'en-tête X-Joomla-Token, vous n'avez rien à faire. Dans les deux cas, le test de connexion de l'étape 3 vous dira ce qu'il en est.

Étape 2 — Installer l'extension dans Claude Desktop

  1. Double-cliquez sur le fichier parc-joomla-web54-x.y.z.mcpb : Claude Desktop s'ouvre et propose l'installation. Vous pouvez aussi glisser le fichier dans Paramètres → Extensions.
  2. Claude Desktop peut vous prévenir que l'extension n'est pas vérifiée : c'est normal pour un outil distribué en direct, hors de l'annuaire d'Anthropic. Confirmez l'installation.
  3. C'est tout. Au premier lancement, la page de gestion des sites s'ouvre normalement d'elle-même dans votre navigateur. Sinon, demandez à Claude « ouvre la gestion de mes sites Joomla ».

Étape 3 — Ajouter vos sites

Dans la page « Parc Joomla », pour chaque site :

  • Nom du site : court, sans espace. C'est le nom que vous donnerez à Claude (« sur boulangerie-martin, … »).
  • Adresse du site : l'adresse publique, sans /administrator. Si vous collez l'adresse de l'administration, l'outil la corrige.
  • Clé API : le jeton copié à l'étape 1.
  • Langue des nouveaux articles : « Toutes les langues » ou une langue précise (fr-FR, en-GB…).
  • Lecture seule : Claude peut lire le site mais rien modifier. Pratique pour un site client sensible, ou pour découvrir l'outil en douceur.
Formulaire d'ajout d'un site Joomla dans Parc Joomla : nom, adresse, clé API, langue et lecture seule
Ajout d'un site : la clé reste masquée, et la connexion est testée avant l'enregistrement.

Cliquez sur « Tester et enregistrer » : Parc Joomla vérifie la connexion avant d'enregistrer. Si le site ne répond pas correctement, la page explique pourquoi (clé refusée, pare-feu, API désactivée…) et vous propose de corriger, ou d'enregistrer quand même.

Liste des sites Joomla enregistrés dans Parc Joomla, avec le résultat du test de connexion de chacun
Les sites enregistrés, testés d'un clic. Ici, l'hébergeur de migration-joomla supprime l'en-tête Authorization : l'outil le détecte et s'adapte.
La page ne fonctionne que sur votre ordinateur (adresse 127.0.0.1) et s'arrête d'elle-même après 30 minutes sans activité. Pour la rouvrir, demandez simplement à Claude : « ouvre la gestion de mes sites Joomla ». Les sites ajoutés sont utilisables tout de suite, sans redémarrer Claude Desktop.

Vous utilisiez déjà l'ancien connecteur ?

Si vous aviez suivi mon premier tutoriel et ajouté vos sites un par un dans claude_desktop_config.json, la page les retrouve : cochez-les et cliquez sur « Importer la sélection ». Les clés sont recopiées directement, sans jamais s'afficher.

Import des anciens connecteurs Joomla déclarés dans la configuration de Claude Desktop
Les anciens connecteurs repris d'un clic.

Une fois l'import vérifié avec « Tester tous les sites », retirez les anciennes entrées : Paramètres → Développeur → Modifier la configuration, puis redémarrez Claude Desktop. Sinon, Claude verra chaque site en double.

Étape 4 — Piloter vos sites avec Claude

Dans une conversation, nommez le site et demandez ce dont vous avez besoin. Quelques exemples que j'utilise au quotidien :

  • « Teste tous mes sites Joomla »
  • « Sur web54, liste les 10 derniers articles de la catégorie Astuces Joomla »
  • « Sur boulangerie-martin, crée un brouillon "Nos horaires de Noël", avec une coupure Lire la suite après l'introduction »
  • « Envoie C:\Photos\vitrine.jpg dans le dossier articles de boulangerie-martin et mets-la en image d'intro de l'article 42, avec un texte alternatif »
  • « Ajoute les tags Noël et Horaires à l'article 42 »
  • « Quels modules sont publiés en position sidebar-right sur site-client ? »
  • « Contrôle les éléments de menu de tous mes sites »
  • « Liste les extensions désactivées de site-client »
Deux règles voulues : pour toute modification, le site doit être nommé (sur un parc de trente sites, je ne veux pas qu'un article parte sur le mauvais), et les articles sont créés en brouillon, sauf si vous demandez explicitement de publier. Enfin, ne donnez jamais une clé API dans la conversation : pour ajouter un site, demandez à Claude d'ouvrir la page de gestion. L'outil est d'ailleurs réglé pour ne jamais vous la demander.

Les pièges de l'API Joomla que l'outil gère pour vous

C'est là que l'expérience compte. En faisant tourner l'API REST de Joomla sur nos sites, nous sommes tombés sur des comportements piégeux. Parc Joomla les contourne :

  • Modifier un article efface ses tags si on ne les renvoie pas : les tags existants sont conservés.
  • Modifier un module le remet sur « toutes les pages » : son affectation aux pages est conservée.
  • Modifier un élément de menu supprime ses associations de langue : elles sont conservées.
  • Articles et éléments de menu doivent passer par la corbeille avant suppression, et un module peut être « supprimé »… sans l'être : l'outil met à la corbeille d'abord, supprime définitivement seulement si vous le demandez, puis vérifie que l'élément a bien disparu.
  • Préfixer un chemin média par images/ crée silencieusement un dossier images/images/ : les chemins sont corrigés automatiquement.
  • L'ID du composant d'un lien de menu n'est pas le même partout (com_content vaut 19 sur une installation neuve, 22 sur un site migré depuis Joomla 3) et, en Joomla 5, la liste des éléments de menu ne le donne plus : l'outil va le lire sur le site. Le contrôle des menus a vérifié 275 liens sur 5 sites que je gère, sans anomalie.
  • Sites en http:// refusés (la clé circulerait en clair), redirections refusées, 30 secondes maximum par requête, erreurs expliquées en français.

Les mises à jour

Quand une nouvelle version sort, Claude vous le signale avec le lien de téléchargement. Téléchargez le fichier, double-cliquez dessus : Claude Desktop remplace l'ancienne version, et vos sites sont conservés. Rien ne s'installe tout seul, c'est vous qui décidez.

Pour cela, l'extension consulte au plus une fois par jour un petit fichier sur web54.fr (simple lecture, aucune donnée envoyée). Vous pouvez couper cette vérification dans les réglages de l'extension.

Vos clés, votre ordinateur : sécurité et confidentialité

  • Les clés sont enregistrées uniquement sur votre ordinateur, dans %APPDATA%\web54\parc-joomla\sites.json sous Windows. Elles ne sont envoyées qu'à vos propres sites, jamais à web54.
  • Elles ne passent pas par la conversation avec Claude, et la page ne les réaffiche jamais (seulement les quatre derniers caractères).
  • En revanche, ce que Claude lit sur vos sites (articles, listes, paramètres) transite par Claude, comme tout ce que vous lui confiez dans une conversation. À garder en tête pour des contenus confidentiels.
  • Pour retirer un site : bouton « Retirer ». Pour tout effacer : désinstallez l'extension (Paramètres → Extensions), puis supprimez le fichier sites.json.

Dépannage

La page de gestion ne s'ouvre pas

Demandez à Claude « ouvre la gestion de mes sites Joomla » : il vous donne l'adresse à coller dans votre navigateur.

« Jeton refusé » (erreur 401)

Jeton mal copié, réinitialisé depuis, ou plugins de jeton API désactivés (étape 1).

« Réponse inattendue (pas du JSON) »

Un pare-feu, une page de maintenance ou une extension intercepte /api/. Autorisez ce chemin dans votre pare-feu.

« Introuvable » (erreur 404) au test

L'adresse n'est pas celle du site, ou les plugins Web Services sont désactivés.

Erreur 500 sur la liste des articles

La clé fonctionne (les catégories répondent), le problème est côté site : souvent un article ou un champ personnalisé corrompu. Je l'ai rencontré sur un des sites que je gère ; le journal d'erreurs PHP vous dira lequel.

« Adresse en http:// refusée »

Passez le site en https : c'est de toute façon indispensable aujourd'hui.

Claude utilise encore l'ancien connecteur

Retirez les anciennes entrées de la configuration de Claude Desktop, puis redémarrez-le.

Comment Parc Joomla a été conçu et vérifié avec Claude

Je l'annonçais en introduction : ce projet a été mené avec Claude, dans Claude Desktop, relié à mon ordinateur. Le partage des rôles était clair :

  • De mon côté : le besoin, les priorités (plusieurs sites, zéro ligne de commande, des clés qui ne passent jamais par la conversation), les arbitrages, et la connaissance du terrain. Je pratique Joomla depuis 2009 : je sais où l'API piège et quoi vérifier.
  • Du côté de Claude : l'analyse de mon ancien connecteur, l'écriture du code, la page de gestion, l'emballage en extension, les tests et une première version de ce tutoriel.

Avant de vous le proposer, l'outil a été vérifié :

  • par plus de 140 tests automatiques, joués contre un « faux Joomla » qui reproduit les pièges listés plus haut, dont une partie rejouée sur l'extension une fois emballée ;
  • par une relecture du code confrontée au code source de Joomla ;
  • en conditions réelles : sur web54 (Joomla 5), un article brouillon créé, illustré, référencé, tagué, modifié trois fois (sans que sa date de création bouge), mis à la corbeille puis supprimé, et des fichiers de test supprimés de la médiathèque ; puis le contrôle des menus de 5 sites que je gère ;
  • par l'installation de l'extension et l'import de mes sites sur mon propre PC ;
  • et en vérifiant la page de gestion dans un navigateur, en mode clair, en mode sombre et sur mobile.

Ce tutoriel a été rédigé avec Claude à partir de ce travail, puis relu par mes soins. Les captures d'écran montrent des sites de démonstration : aucune vraie clé n'y figure.

Mon avis, après ce projet : l'IA ne remplace pas l'expérience, elle l'accélère. Savoir quoi tester et reconnaître un comportement anormal de Joomla, ça reste notre métier. La prochaine étape : Parc Joomla est en test chez un confrère, sur ses propres sites. Vos retours sont les bienvenus.

Obtenir Parc Joomla

Parc Joomla est distribué sous licence GNU/GPL. Pour l'instant, je le transmets directement, avec un coup de main pour la mise en route si besoin : écrivez-moi. Et si vous préférez que nous prenions en charge votre parc Joomla (mises à jour, sécurité, contenus), c'est aussi notre métier.

Web54 — intégrateur Joomla depuis 2009, IA Claude et MCP Joomla — Nancy & Lorraine —