Problème dans le backend Joomla, plus de menu dans l'interface d'administration

  • Imprimer

Quelle mauvaise surprise que de s'apercevoir que le menu de l'interface d'administration de votre site Joomla a disparu et qu'il est donc désormais impossible de l'administrer.

Si je crée un article à ce sujet, c'est tout simplement par ce que ceci vient de m'arriver, procurant au passage en moi une certaine peur, mais au final, tout s'est réglé assez facilement.

Voici ce à quoi ressemble en temps normal l'interface d'administration de Joomla.

 

Et voici ce à quoi elle ressemble lorsque les menus ne s'affichent plus :

Précisons juste, que c'est tout de suite moins pratique pour réaliser des actions depuis le backend, pour ne pas dire que cela devient quasi impossible.

Je ne vais pas m'étendre sur tout ce que j'ai tenté de faire pour corriger le problème, mais dans le cadre de ce problème, le frontend Joomla semblait totalement disponible et ne souffrir d'aucun problème.

Par ailleurs, le backend répondait et affichait les pages souhaitées, mis à part le menu de navigation et d'actions, par exemple, voici la page de gestion des articles :

Le problème est qu'il faut en connaître l'URL pour y accéder, et que les actions possibles sont très limitées, puisque le menu contenant les boutons d'action a disparu.

Mais on se sent déjà rassuré en constatant que le frontend fonctionne et que tous les articles et autres contenus sont toujours présents.

J'ai profité de cet affichage "épuré" mais disponible du backend pour réaliser une sauvegarde de mon site Joomla à l'aide d'Akeeba, mais j'ai également récupéré l'ensemble des fichiers du site en FTP ainsi que la totalité de la base de données. Cela ne m'a servi à rien, mais ayant peur de devoir ré-installer Joomla, j'avais pensé cela utile...

J'ai par ailleurs testé si le problème venait des fichiers stockés sur le serveur Web ou si cela venait de la base de données. Pour cela, c'est très simple, il suffit d'éditer le fichier configuration.php à la racine d'un autre serveur Joomla fonctionnant correctement et de modifier les lignes suivantes pour les faire pointer vers la base de données du Joomla ne fonctionnant plus :

    public $dbtype = 'typedebase';
    public $host = 'adressedelabase';
    public $user = 'utilisateur';
    public $password = 'motdepasse';
    public $db = 'nomdelabase';
    public $dbprefix = 'prefixedestables_';

Une fois cette modification faite, le site qui fonctionnait sans problème se retrouva avec le même problème de menu disparu dans l'interface d'administration, cela permet donc de conclure que le problème se situe au niveau de la base de données.

J'ai donc comparé les tables des deux bases en tentant de repérer une différence anormale (je précise anormale, puisque les deux sites ne sont pas identiques, leur base de données ne sont donc pas les mêmes, il ne sert donc à rien de comparer des tables comme celle des articles ou des catégories).

Bref, mon problème venait en réalité des droits affectés à mon compte admin, j'ai du les changer lors d'une fausse manipulation.

 

Si vous êtes confrontés au même problème, vous pouvez donc vous assurer de certaines valeurs dans la base via phpMyAdmin :

  • Dans la table joomla_users, l'utilsisateur Super User a les paramètres usertype à deprecated et block à 0. On note ici, dans le cas de mon site Joomla, que cet utilisateur a l'ID 971.

                    

  • Dans la table joomla_user_usergroup_map, l'utilisateur Super User, dont l'ID est dans mon cas 971, mais il peut avoir une toute autre valeur sur une autre installation, est bien positionné dans le groupe 8, champ group_id.

 

  • Dans la table joomla_viewlevels, l'entrée Accès Spécial a les bonnes règles, champ rules. Elles doivent être à [6,3,8] alors que chez moi elles étaient à [7] :

  • Avec l'entrée corrigée :

 

Une fois l'entrée corrigée, cela a corrigé mon problème et j'ai de nouveau eu accès à l'affichage complet du backend.

Lors de la correction de la base de données, j'ai été automatiquement déconnecté du backend, ce qui m'a obligé à m'y reconnecter. Si ce n'est pas le cas pour vous n'hésitez pas à vous déconnecter puis reconnecter afin que l'utilisateur connecté récupère bien les nouveaux droits qui lui sont affectés.