Christophe Lance marketing internet et web designChristophe Lance marketing internet et web design (Mobile version)Logo Christophe Lance (Mobile)

C'est une question qui fait parfois surface. Lorsque le site a beaucoup de pages, les utilisateurs qui ne connaissent pas bien Joomla peuvent avoir de la peine à trouver comment modifier certaines informations. En effet, les pages sont créées dynamiquement dans une logique de séparation du contenu et de la présentation, ce qui est important si le site comporte de nombreuses pages ou si sa structure doit pouvoir évoluer. Cependant, ce processus peut être complexe en raison de l'intégration de données enregistrées dans des tables de base de données différentes: articles, modules, plugins, champs personnalisés, menus, templates, chaînes de traduction, fichiers, qui peuvent appartenir à différents types de composants et sans compter qu'un CMS est un outil collaboratif avec des permissions qui changent entre les utilisateurs et en plusieurs langues.

Voici donc quelques pistes qui vont vous aider à améliorer votre workflow valable avec les versions 3 à 5 de Joomla et qui démontrent par ailleurs la flexibilité de ce CMS.

Astuces pour localiser les contenus à modifier

1) Tout d'abord, le gestionnaire d'articles de Joomla, ainsi que les composants qui supportent cette syntaxe de recherche standard permettent d'utiliser l'expression content: mots clés pour rechercher dans le corps des textes et pas seulement dans les titres. N'oubliez pas de cliquer sur le bouton d'options pour afficher d'autres filtres comme la catégorie, l'utilisateur, la langue ou le statut (les pages archivées ne sont pas affichées par défaut).

La syntaxe content: mot clé
La syntaxe content: mot clé (Joomla 4)

2) Ensuite, il est possible de modifier tous les contenus enregistrés dans les articles et les modules en zone frontale du site (frontend). Cela simplifie beaucoup les corrections, car il suffit de visualiser la page, puis de cliquer sur les liens "Modifier" qui apparaissent en cliquant sur les menus contextuels identifiés par une roue dentée sous Joomla 3 et un petit crayon sous Joomla 4.

Le lien modifier est affiché après connexion
Le lien Modifier apparaît après connexion à l'administration

Pour cela, il faut disposer des droits d'administration et dans la barre de menu du backend, choisir:

  • Système > configuration et sélectionner "Modules et liens de menu" ou "Modules" dans Icônes d'édition en ligne,
  • Dans l'onglet Système, cocher Sessions partagées, puis enregistrer. Vous allez être déconnecté, c'est normal, car une nouvelle session est créée.
On se connecte en même temps au frontend et au backend
On se connecte en même temps au frontend et au backend

Après (re)connexion, vous pouvez vous rendre sur les pages en zone frontale du site et commencer à modifier les articles et les modules (widgets) du site, mais cela ne concerne pas les descriptions de catégories qui ne sont accessibles qu'en backend. Un avantage supplémentaire est que vous pouvez modifier les pages sans devoir supprimer le cache pour visualiser les changements. En utilisant Google, il devient même possible de rechercher toutes les occurrences d'un mot clé avec la syntaxe courante: site:monsite.com mots clés.

3) Chaque template propose un certain nombre d'emplacements pour les modules que vous pouvez visualiser directement en partie frontale du site. Dans l'administration, choisissez Template > Styles de template, puis activer temporairement la fonction "Prévisualisez la position des modules". De retour en zone frontale, les emplacements de modules deviennent visibles, lorsque l'on rajoute le paramètre ?tp=1 à l'url de la page. Par exemple, https://www.monsite.com/mapage?tp=1

Il devient alors possible d'utiliser l'options outils de recherche du gestionnaire de modules pour filtrer les instances de modules en fonction de critères comme l'emplacement (position), le type de module et le lien de menu qui le fait apparaître.

Filtrer les modules par lien de menu et position
Filtrer les modules par type, langue ou position

En ce qui concerne les modules personnalisés de Joomla, leur identifiant est affiché dans le code HTML, ce qui permet de les retrouver facilement si vous les examinez avec l'outil développeur d'un navigateur.

<div id="mod-custom149" class="mod-custom custom">…</div>

4) Les textes codés en PHP dans le coeur du CMS et de ses extensions sont enregistrés sous forme de chaînes de traduction qu'il est possible de modifier dans le backend de Joomla en ajoutant une nouvelle référence dans Extensions > Langues > Substitutions (Joomla 3) ou Système > Gestion > Substitutions (Joomla 4).

Une paire clé / valeur est créé pour une nouvelle traduction
Une paire clé / valeur est créée pour une nouvelle traduction

Le texte traduit dans la langue courante est référencé par une clé que l'on identifie grâce à un champ de recherche situé dans la page d'administration des substitutions ou en activant le débogage langue dans Système > Configuration > Système. On visite ensuite la zone frontale pour noter la clé qui correspond à la valeur que l'on veut modifier. Ne pas oublier de mettre le site en mode maintenance durant cette étape, sinon vos visiteurs risquent d'avoir mal aux yeux !

Activer le débogage langues
Activer le débogage langues

5) Les articles, les catégories, les éléments de menu et les modules disposent d'un champ Note. N'hésitez pas d'y ajouter une courte explication, par exemple "à relire", "hebdomadaire" ou "fichu module que je ne trouve jamais". Il sera ensuite possible de les retrouver par le filtre de recherche sans que ces commentaires n'apparaissent aux visiteurs.

Ouvrir le capot pour vraiment tout trouver

Note: la suite de cet article nécessite de mettre les mains dans le cambouis, alors n'oubliez pas d'enfiler un bleu de travail.

Il est possible que certaines données ne soient pas accessibles en zone frontale, parce qu'elles sont publiées par des extensions ou des templates qui n'offrent pas cette possibilité. Sur Joomla, le gestionnaire de menu contient toutes les informations sur les extensions utilisées, mais il est parfois difficile de savoir à quel élément de menu une page appartient.

L'élément de menu identifie l'extension utilisée
L'élément de menu identifie l'extension utilisée

Dans ce cas, on peut déterminer l'identifiant de menu en consultant le code HTML de la page. Dans le code HTML de chaque page, la balise body contient un attribut class avec de nombreuses valeurs prédéfinies dont une classe nommée itemid-x. Le chiffre x correspond à l'identifiant de l'élément de menu que vous pouvez retrouver dans le gestionnaire de menu de Joomla en tapant id:x dans le champ de recherche.

 <body class="gantry site com_content view-article no-layout no-task dir-ltr itemid-119 outline-14">

En visitant cet élément de menu dans le gestionnaire de menu, on trouvera toutes les informations nécessaires comme le type de composant (ex. com_content / Articles), la vue (Article simple) et même l'identifiant numérique de l'article &id=y affiché dans le champ URL non SEF du lien (exemple ci-dessous). Il y a un bouton pour accéder directement à l'article, mais cet identifiant peut aussi être utilisé dans le gestionnaire d'articles en tapant l'expression id:y dans l'outil de recherche.

index.php?option=com_content&view=article&id=2

Une erreur fréquente est d'oublier que l'élément de menu peut aussi contenir des chaînes de caractères dans l'onglet Paramètres d'affichage de la page qui contient le fameux titre SEO (balise title) ou un texte alternatif pour l'en-tête de page en ce qui concerne le composant principal.

titre SEO

Rechercher dans les tables de la base de données

Une autre méthode est de rechercher directement dans la base de données à l'aide de l'application phpMyAdmin installée sur tous les hébergements ou d'une extension comme DBReplacer que l'on peut installer dans Joomla et qui évitera de faire des bêtises comme supprimer une table par erreur. On peut rechercher par mots clés dans l'ensemble des tables ou de manière plus précise dans certaines tables seulement, par exemple le contenu des articles est réparti entre les colonnes introtext et fulltext de la table "content". Le tableau ci-dessous récapitule les tables les plus importantes pour rechercher des textes dans le coeur du CMS:

Tables BD Colonnes
#_content introtext, fulltext
#_categories description
#_modules content, params
#_menu params
#_template_styles params
#_fields_values (champs personnalisés) value
#_overrider (surcharge des langues) string

Une autre solution est d'exporter la base de données sous forme de fichier texte (dump) avec phpMyAdmin ou depuis l'interface de l'hébergeur et d'effectuer une recherche par mots clés dans le fichier, afin de déterminer l'identifiant et la table où se trouvent les données (même principe que plus haut). Par exemple, en ligne de commande avec l'application Terminal, à partir du dossier courant, grep "mot clé" --color dump.sql.

Rechercher dans les fichiers

S'il n'y a rien dans la base de données, alors les informations peuvent être enregistrées directement dans des fichiers comme le fichier index.php à l'intérieur du dossier template (pas une bonne pratique, mais on voit de tout). Tous les fichiers situés dans le template courant peuvent être modifiés directement depuis Joomla en utilisant l'éditeur CodeMirror accessible dans la rubrique Extensions > Templates > Templates. Il faut aussi noter que des frameworks comme Gantry de Rockettheme ou Pages de JoomlaTools enregistrent leurs données principalement dans des fichiers. Différents logiciels permettent d'effectuer des recherches dans des dossiers multiples comme l'excellent BBEdit, ou en ligne de commande, à partir du dossier courant, grep -r "mot clé" --color .. Si l'on a pas accès au serveur en ligne de commande, il faudra préalablement récupérer les fichiers avec un logiciel SFTP comme FileZilla.

Recourir à l'intelligence artificielle

ChatGPT peut être intégré dans le backend et le frontend de Joomla par l'intermédiaire d'une extension. En effet, les CMS open source comme Joomla ont l'avantage de disposer d'un énorme corpus de documentation et de réponses à des questions techniques qui peut être traité par les outils d'intelligence artificielle. Une question bien posée permet dans certains cas d'avoir une réponse pertinente, par exemple: Comment rechercher un article par identifiant dans le backend de Joomla ?Comment trouver les substitutions de traduction dans le backend de Joomla ? ou Qu'est-ce qui est faux dans ce code HTML ? Il faut cependant tenir compte du fait que les données traitées par les IA ne sont pas forcément actualisées avec les derniers développements.

En fin de compte, la simplicité de mise à jour d'un site créé avec un CMS dépend beaucoup de l'organisation et des choix de conception en amont par le webmaster/développeur, d'où l'importance à accorder à cette étape.

Source: la documentation officielle, plus que Google, est votre amie.

Devis et renseignement gratuits