[Résolu] Liste des plugins incomplète !

jibejibe Member
mars 2018 modifié dans Plugins
Salut,

Lorsque je vais dans l'interface d'administration, je vois que ma liste de plugins est maintenant incomplète ! J'ai bien 5 plugins actifs d'indiqués, ce qui est normal, mais je ne vois plus que plxMyContact dans la liste ! Les autres plugins semblent fonctionner normalement, il semble que ce ne soit qu'un problème d'affichage de la liste.

Entre le moment où j'avais cette liste complète et maintenant, la seule différence que je vois est que j'ai changé de place mon serveur (PluXml est sur un serveur d'auto-hébergement sous OpenBSD), que j'avais préparé dans mon réseau personnel et que j'ai mis à sa place définitive sur une autre connexion ADSL. J'accédais sur le serveur avec le nom de domaine actuel (j'ai modifié en conséquence mon DNS local et tout le reste fonctionne normalement).

Que peut-il s'être passé ? Comment puis-je faire pour retrouver la liste complète ?

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour jibe

    As-tu vérifié les droits des fichiers dans le dossier plugins ?
    Est-ce que plxMyContact est bien sur ton serveur avec tous les fichiers dans le dossier (pas qu'il y ait eu un souci lors du transfert et du coup des fichiers absents ?
    Est-ce que plxMyContact est activé (cf le menu des plugins désactivés) ?

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • jibejibe Member
    Quelle réactivité :) Merci pour tes suggestions de recherche.

    PlxMyContact est le seul plugin présent dans la liste et fonctionne normalement. Les autres n'y figurent pas (plxMySearch, plxMyAutoMetaDescription et plxMyPrivateStatic), mais tous leurs fichiers sont bien présents avec les bons droits. Je ne les ai pas tous testés, mais en tous cas plxMySearch fonctionne parfaitement, bien que non listé.

    Par contre, j'ai aussi kzUpload, mais qui ne semble plus opérationnel (pas vu tout à l'heure...) : la page des plugins ne comporte plus que la liste très incomplète et ne me permet plus d'ajouter d'autres plugins, fonctionnalité bien pratique de kzUploader.

    A noter que rien n'a été modifié sur le serveur, qui a simplement été physiquement déménagé, avec bien entendu une mise à jour de la zone DNS du nom de domaine et la reconfigiration de mon DNS local. Bizarre, bizarre...

    J'ai beau réfléchir et me dire que j'ai bien dû faire quelque chose au niveau logiciel, je ne vois pas hormis quelques modifs sur les articles et pages statiques, mais rien d'autre que de la gestion de contenu via l'interface d'administration. Ça fait quelque temps que le serveur a été déménagé, et je ne m'étais aperçu de rien jusqu'à cet après-midi que j'ai voulu inventorier les plugins installés et ceux à prévoir...
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    kzUploader ne s'affiche que dans la page des plugins désactivés et dans la page des thèmes.

    Si tu as tous tes plugins désactivés, essaie de les réactiver et de sauvegarder leur config dans la page adéquate.
    Vérifie qu'un message indique que l'enregistrement s'est effectué avec succès.
    Vérifie avec ton logiciel de ftp les dates des fichiers de config des plugins dans le dossier "data/configuration/plugins/" qui doivent être la date actuelle à quelques minutes près.
  • jibejibe Member
    mars 2018 modifié
    bazooka07 a écrit:
    kzUploader ne s'affiche que dans la page des plugins désactivés et dans la page des thèmes.
    Effectivement ! J'y ai pensé après avoir posté, et ça semble bien fonctionner (testé jusqu'au choix du .zip à installer, je ferai un essai complet plus tard).
    bazooka07 a écrit:
    Si tu as tous tes plugins désactivés,
    Ben non, la page d'administration des plugins m'affiche bien 5 plugins actifs, 0 inactifs, et seulement plxMyContact comme plugin dans la liste...
    bazooka07 a écrit:
    Vérifie avec ton logiciel de ftp les dates des fichiers de config des plugins dans le dossier "data/configuration/plugins/" qui doivent être la date actuelle à quelques minutes près.
    Ben là, ça me semble un peu bizarre. Voilà le contenu complet de mon dossier data/configuration/plugins :
    [== Indéfini ==]
    -rw-r--r-- 1 67 bin  119 18 févr. 21:30 plxMyAutoMetaDescription.xml
    -rw-r--r-- 1 67 bin 1113 18 févr. 18:25 plxMyContact.xml
    -rw-r--r-- 1 67 bin    0 18 févr. 21:39 plxMySearch.admin.css
    -rw-r--r-- 1 67 bin   45 11 mars  17:41 plxMySearch.data.php
    -rw-r--r-- 1 67 bin  301 18 févr. 21:39 plxMySearch.site.css
    -rw-r--r-- 1 67 bin  723 18 févr. 18:23 plxMySearch.xml
    
    Voyant que la date de plxMyContact n'a pas changé, j'ai fait un test complet (je m'étais jusque là contenté d'afficher le formulaire de contact), et tout se passe bien, y compris la page disant que le message a été envoyé... sauf que rien n'arrive à l'adresse mail de destination !

    Mais une question : quand tu parles des fichiers de config, c'est quoi exactement ? Aucun xml n'a changé de date, y compris celui de plxMySearch que j'ai bien testé jusqu'au bout (et qui trouve les mots recherchés !). Par contre, seul plxMySearch a un css et un php, est-ce bien normal que les autres n'aient qu'un xml, et même pas pour plxMyPrivateStatic ?

    Bon, je cherche par curiosité, mais je me demande si je ne devrais pas simplement me contenter de réinstaller mes plugins... Ça sent les fichiers effacés par erreur, non ? Pas trop mon genre de faire ce genre de bêtise sans même m'en apercevoir, mais n'ayant pas d'autres explications...
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    mars 2018 modifié
    Si tu as un plugin qui s'appelle monPlugin, lorsque tu dézippes l'archive, tu dois avoir les fichiers suivants sur ton serveur :
    plugins/monPlugin/monPlugin.php
    plugins/monPlugin/infos.xml

    Si le plugin a un panneau de config, qui n'est pas obligatoire, il y a aussi un fichier
    plugins/monPlugin/config.php

    Et quand on enregistre dans le panneau de config, on crée à chaque fois un fichier
    data/configuration/plugins/monPlugin.xml

    pour le plugin plxMyContact, c'est un peu plus compliqué.
    IL faut vérifier si la fonction mail est activée et si l'adresse d'expéditeur est valide.

    Il faudrait voir les fichiers de log de PHP sur ton serveur. L'accès dépend de ton hébergeur.
  • jibejibe Member
    Ok, merci pour ces explications :)

    Pour plxMyContact, c'est certainement un problème de blocage de port 25 ou de relaying denied, puisque j'ai effectivement changé de connexion Internet. Pas pensé à ça lorsque j'ai mis le serveur en place :mad: Il va probablement falloir que j'aille régler le problème sur place.

    J'en reviens donc à ma question initiale : pourquoi ma liste de plugins dans la page d'admin correspondante (http://jam.opentuxtogether.org/core/admin/parametres_plugins.php?sel=1) m'indique-t-elle 5 plugins actifs et n'en liste-t-elle qu'un seul, alors qu'il n'y a eu qu'un déménagement physique du serveur, avec changement de connexion Internet, mais aucune modification logicielle autre que les quelques adaptations de configuration pour cette nouvelle connexion Internet ?
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    mars 2018 modifié
    Il faudrait regarder les fichiers de log de Apache et voir s'il y a des erreurs.

    Sinon supprime complètement un plugin qui chahute avec Filezilla ou autre par FTP, y compris le fichier de config en xml, et ré-installe le avec kzUploader.
  • jibejibe Member
    Salut,

    Merci pour le suivi ! :)
    bazooka07 a écrit:
    Il faudrait regarder les fichiers de log de Apache et voir s'il y a des erreurs.
    Nginx/OpenBSD :P

    Les deux sont nouveaux pour moi, et j'avoue que je suis surpris par la pauvreté en matière de logs. Rien vu qui puisse me mettre sur une piste...

    Bon, je pense que je vais effectivement faire le ménage et réinstaller tout proprement. OpenBSD a des trucs intéressants et bien foutus, mais en matière de serveur web, je sens que je vais vite me remettre à Apache/Debian !
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    mars 2018 modifié
    A chaque fois que je me suis intéressé à OpenBSD, c'est vite devenu compliqué. L'espace de travail est complétement différent de linux
    Et j'ai toujours la trouille de péter la table de partitions. Cela m'est arrivé une fois, il y a longtemps.

    Sur un petit Odroid C1, j'ai un Ubuntu 16.04LTS version serveur qui ronronne avec NGINX.
    Debian c'est bien pour l'instant qu'il publie une release récemment. Mais les nouvelles versions des logiciels n'arrivent pas vite.
  • jibejibe Member
    Salut,

    Bon, là, il y a vraiment un truc...

    Après suppression de tous les dossiers dans pluxml/plugins et tous les fichiers dans pluxml/data/configuration/plugins plus vidage du fichier pluxml/data/configuration/plugins.xml, il me reste toujours la seule ligne présente avec plxMyContact comme dans les images ci-dessous (sans l'avertissement en rose de l'adresse mail à saisir et sans le mini-formulaire de kzUploader), aussi bien dans la page des plugins actifs que dans celle des inactifs ! Les compteurs, eux, sont bien à zéro.

    Je réinstalle kzUploader, rien ne change dans les affichages sauf que ça m'indique bien 1 plugin inactif. Je coche la case (bien qu'en face, j'aie toujours plxMyContact !) et clique sur Ok, kzUploader s'active normalement (les compteurs de plugins sont mis à jour et j'ai bien le "mini-formulaire" de kzuploader qui apparaît dans la page des plugins inactifs.

    Puis en utilisant kzUploader, j'installe plxMyAutoMetaDescription et plxMyContact. Rien ne change dans les pages des plugins à part les compteurs qui donnent le bon nombre.

    Dans la page des plugins inactifs, je coche la seule case disponible (avec en face plsMyContact), le nombre de plugins inactifs passe à zéro et celui des actifs à 3, et le message demandant de saisir une adresse mail valide apparait, mais je n'ai aucun moyen de saisir cette adresse ! C'est tout ! Et le dossier data/configuration/plugins reste vide...

    Page des plugins actifs
    Page des plugins inactifs

    J'aimerais bien comprendre... Ou au moins savoir comment faire pour remettre tout ça d'aplomb ?
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Ben, c'est tout ce qu'il y a de plus normal.

    Tu recherches le plugin plxMyContact qui n'est pas installé.
    Efface le contenu plxMyContact et la liste de tous tes plugins installés va s'afficher.

    Par contre, c'est un peu dérangeant que PluXml conserve son motif de recherche même si on se déconnecte de PluXml.
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    mars 2018 modifié
    J'ai jeté un coup d'oeil rapide.

    Dans le fichier core/admin/parametres_plugins.php, il serait pertinent de remplacer localStorage par session Storage dans la portion de Javascript vers la ligne n°193

    Au moins quand on ferme le navigateur, on revient à l'état initial.

    Autre souci il peut y avoir un effet de bord de la variable input qui peut interagir avec un plugin.
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Voici une ré-ecriture du script Javascript dans core/admin/parametres_plugins.php qui corrige pas mal d'erreurs:
    [== JavaScript ==]
    (function() {
    	'use strict';
    	const KEY = 'plugins_search';
    	const rows = document.querySelectorAll('#plugins-table tbody tr');
    	const filterInput = document.getElementById('plugins-search');
    
    	function pluginsFilter() {
    		var pattern = (filterInput.value.trim().length != 0) ? new RegExp(filterInput.value, 'i') : null;
    		for(var i=0, iMax=rows.length; i<iMax; i++) {
    			if(pattern == null || pattern.test(rows[i].cells[2].textContent)) {
    				rows[i].classList.remove('hide');
    			} else {
    				rows[i].classList.add('hide');
    			}
    		}
    		if(typeof sessionStorage != 'undefined') {
    			if(pattern != null) {
    				sessionStorage.setItem(KEY, filterInput.value.trim());
    			} else {
    				sessionStorage.removeItem(KEY);
    			}
    		}
    	}
    
    	if(filterInput != null) {
    		filterInput.addEventListener('keyup', function(event) {
    			if(!event.altKey && !event.ctrlKey) {
    				event.preventDefault();
    				pluginsFilter();
    			}
    		});
    
    		if(typeof sessionStorage != 'undefined') {
    			const value = sessionStorage.getItem(KEY);
    			if(value != null) {
    				filterInput.value = value;
    				pluginsFilter()
    			}
    		}
    	}
    })();
    
    A insérer dans les balises <script> et </script>
    Et dans le thead de la table, il faut jeter ce "onkeyup" obsoléte pour avoir ceci :
    [== HTML ==]
    <th><input type="text" id="plugins-search" placeholder="<?php echo L_SEARCH ?>..." title="<?php echo L_SEARCH ?>" /></th>
    

    Sinon
    [== bash ==]
    git clone --depth 1 https://github.com/bazooka07/PluXml.git -b plugins-search-1803
    
  • jibejibe Member
    Salut,

    Désolé de ma lenteur à réagir, je suis pas mal en déplacements en ce moment. J'essaie les modifs asap, probablement ce week-end.
    bazooka07 a écrit:
    Ben, c'est tout ce qu'il y a de plus normal.

    Tu recherches le plugin plxMyContact qui n'est pas installé.
    Efface le contenu plxMyContact et la liste de tous tes plugins installés va s'afficher.

    Par contre, c'est un peu dérangeant que PluXml conserve son motif de recherche même si on se déconnecte de PluXml.
    Ooops ! Désolé, j'ai confondu la recherche de plugins et l'affichage de la liste... Je ne me souviens pas avoir fait de recherche, et ça devait être lors d'une intervention précédente, mais si le motif de recherche est conservé après déconnexion, ça peut expliquer pas mal de choses !

    En tous cas, j'ai retrouvé ma liste en effaçant ce motif :)

    Je reviens dire ce qu'il en est dès que j'ai testé les modifs. Merci en attendant !
  • jibejibe Member
    Salut,

    Une fois encore, désolé de ma lenteur à la réaction...

    Tout semble effectivement aller mieux avec les modifs indiquées. Je n'ai pas eu le temps de faire des tests exhaustifs, mais tout ce qui concerne l'installation/activation/désactivation/recherche de plugins fonctionne bien.

    Merci pour l'aide efficace et rapide :)
Connectez-vous ou Inscrivez-vous pour répondre.