PluXml 5.9.0

135

Réponses

  • Slt,
    Je pense avoir débusqué un vieux bogue, le fait que le dernier commentaire envoyé n'est jamais affiché après son envoi et l'ancre donné par PluXml ne nous y amène pas car il n'est pas là.

    Je l'ai solutionné ici #764

    Et une explication est là #pullrequestreview-1885896940

    Notre temps est la seule monnaie vraie ;)

    Site, Dépôt, framagit, MyShop, Factux

    #mozinor président

  • SudwebdesignSudwebdesign Member
    21 févr. modifié

    Slt, un petit bogue de printf manquant c'est glissé sur la page parametres_edittpl.php
    Télécharger d'autres thèmes sur %s.
    parametres_edittpl.php#L79

    C'est correct sur parametres_themes.php
    parametres_themes.php#L31
    parametres_themes.php#L38

    Notre temps est la seule monnaie vraie ;)

    Site, Dépôt, framagit, MyShop, Factux

    #mozinor président

  • kameakamea Member
    25 févr. modifié

    Bonjour,

    Avec la rc6 :

    Plus possible de créer des vignettes ou de supprimer des images.
    Par contre on peut ajouter des images.

    Merci à tous, à très vite :)

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    @kamea,
    Dans le fichier core/admin/medias.php, corrige la ligne n°230 comme suit ( caractère = absent devant $v['name'] ) :

    <td><input type="checkbox" name="idFile[]" value="<?= $v['name'] ?>" /></td>
    

    Sinon voir PR #774

  • kameakamea Member

    @bazooka07 Je n'avais pas vu le PR merci pour le suivi :)

  • 3 mars modifié

    Bonjour,
    Dans le thème par défaut , un clear:both serait manquant pour .footer qui reste positionner dans la colonne sous le contenu de Aside , voir se positionne sur une troisième colonne si il a de la place :)

    le fichier favicon.ico est aussi manquant.


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • 3 mars modifié

    Bogue ou pas bogue ? :)
    ( une suggestion/proposition pour un hook supplémentaire dans plxMotor.)

    Dans PluXml, lorsqu'une URL inconnue est tapé dans la barre d'adresse, Il y a deux cas de figure:
    1. Sans urlrewriting configurée, on a en retour une 404 du serveur : Not Found The requested URL was not found on this server.
    2. Avec l'urlrewriting configurée à OUI, on a en retour la page d’accueil avec un code 200 ce qui fait potentiellement un nombre infinis d'URLs pour afficher la page d’accueil :(

    Ce comportement de Pluxml a été introduit avec le FIX #302 sur la version 5.7 suite à des redirections non voulues comme celle évoquée dans ce fil : https://forum.pluxml.org/discussion/6336/rediriger-404-vers-index/p1

    Pourtant , les 404 ont aussi leurs utilités . Mais le choix de redirection vers une 200 ou une 404 implique un comportement qui ne sera pas forcément celui attendu par le webmaster .

    Pour palier à ceci, je me suis fait un plugin (que j'ai ensuite intégré à extra_SEO) . Celui-ci permet de rediriger les URL inconnues vers la 404 et aussi de filtrer certaines URL/requetes pour qu'elles se redirigent vers la page d’accueil. Cela fonctionne bien , mais (encore un mais non pas des moindres) impose de remplacer entièrement la fonction prechauffage() de plxMotor qui ne dispose que de deux hooks. alors que l'intervention se situe en tout debut de script sur le premier if(!empty($this->get) and .... Le gros défaut est bien sur que cette fonction devient par la suite imperméable aux mises à jours de PluXml. c'est un défaut que ne devrait pas avoir un plugin.

    L'ajout d'un hook juste entre les deux premier if de cette fonction (autour de la ligne 167) permettrait dans un premier temps, à qui le souhaite, de modifier cette redirection par le biais d'un plugin sans devoir recopier/coller toute la fonction pour modifier une simple variable. Par exemple en modifiant le $this->get=''; en $this->get=' '; un simple espace vide , renvoi vers la page d'erreur de pluxml "page non trouvée"

    je propose alors ce nouveau hook pour plxMotor : if(eval($this->plxPlugins->callHook('plxMotorPreChauffageGetMode'))) return;

        public function prechauffage() {
    
            # Hook plugins
            if(eval($this->plxPlugins->callHook('plxMotorPreChauffageBegin'))) return;
    
            if(!empty($this->get) and !preg_match('#^(?:blog|article\d{1,4}/|static\d{1,3}/|categorie\d{1,3}/|user\d{1,3}|archives/\d{4}(?:/\d{2})?|tag/\w|page\d+|preview|telechargement|download)#', $this->get)) {
                $this->get = '';
            }
            # Hook plugins
            if(eval($this->plxPlugins->callHook('plxMotorPreChauffageGetMode'))) return;
    
            if(
                empty($this->get) AND  // suite de la fonction 
    

    Je met à disposition un plugin faisant seulement le switch et fonctionnant avec le hook proposé à des fins de tests pour démontrer l'utilité de ce nouveau hook et qu'il n'est pas dangereux. https://pluxopolis.net/data/documents/Gestion404.zip

    Si ce switch (avec la possibilité de configurer certaines requêtes vers la page d’accueil pour le completer) s’avère une option nécessaire, il est peut-être envisageable de voir cela comme une évolution futur ;)
    Voir pullrequest pour une option native : https://github.com/pluxml/PluXml/pull/782

    Cdt


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Avec la modif sur le regex de plxMotor::prechauffage dans le PR #779,
    on affiche une page html intégré au site mais on renvoie en même temps une erreur 404.
    Je ne suis pas sûr qu'on soit obligé d'envoyer une page en texte brut (text/plain) avec un message file not found.
    Le webmaster a donc à tester qu'il a bien un code 200 pour savoir si la requête a été correctement exécutée.
    J'ai fait l'essai avec :

    Je ferai le test demain en activant l'url_rewriting

    Pourquoi dans ton dernier commit tu supprimes ma modification sur le regex ?

    Donne moi un exemple qui ne fonctionne pas !

    Le hook plxMotorPreChauffageBegin devrait suffire. Par contre, le return est un peu brutal si le hook renvoie true.
    En cas de succès, on devrait sauter toute la batterie de tests qui suit pour tester directement la présence du template.
    Je ne pense pas que cette modif impacte beaucoup de plugins.

  • 4 mars modifié

    Pourquoi dans ton dernier commit tu supprimes ma modification sur le regex ?

    un cafouillage de copier/coller , j'ai corrigé.

    Pour les redirection 404 pour des ressources de PluXml correspondant à un mode, une requête reconnue, alors si la ressource n'existe pas ou plus, on à bien une 404 . Il n'y a aucun soucis de ce coté (article,catégorie,..)

    Chez moi (dernier FF et serveur apache) http://la-rc6.org/index.php?utm_source=tripadvisor&utm_medium=referral me renvoi en 200 à http://la-rc6.org/index.php

    Pour une requête ne correspondant à aucune ressources que PluXml peut traiter, on à la page d'acceuil en 200(urlrewriting activé).
    Un exemple avec : https://pluxml.org/truc/pluxml
    * Avec l'urlrewriting on à une 200 et la page d'accueil.
    * Sans urlrewriting on a la 404 du serveur(la demande n'est pas capté par PluXml) . Dans le cas où ce dossier existe, pas de soucis quelque soit la configuration de l'urlrewriting
    * Sans urlrewriting avec la forme https://pluxml.org/index.php?truc/pluxml on à une 200 et la page d’accueil pourtant truc ne correspond à aucune requête que PluXml peut traiter mais il la capte et la traite en mode home, c'est une URL qui mène nulle part en réalité.

    C'est de ce défaut dont je parle. l'adresse du site + n'importe quel dossier inexistanturlrewrite actif ou requête farfelue, renvoient à la page d’accueil en code 200. PluXml traite toutes les requêtes et les passe par défaut en page d’accueil si elle ne correspondent à aucune de celles définies $this->get = '';

    En donnant une valeur à $this->get que ce soit un simple espace ou n'importe quelle chaine ne correspondant a aucun mode, on arrive alors à la ligne 299 : $this->error404(L_ERR_PAGE_NOT_FOUND);

    Le hook plxMotorPreChauffageBegin devrait suffire. Par contre, le return est un peu brutal si le hook renvoie true.

    Effectivement , le return ne sert à rien, mais à cette endroit, donner une valeur à $get ne sert à rien, car le premier test ..!preg_match()... va le vider si la valeur ne correspond à aucun des modes de PluXml et on est renvoyé en page d'acceuil, le hook plxMotorPreChauffageEnd se trouve après la bagarre/batterie de test .


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    J'ai modifié plxMotor::prechauffage() pour générer les erreurs 404 :
    PR #783
    testé avec :

    Peut-être besoin de revoir plxShow::pagination() pour avoir une url plus propre pour les pages préc. et suiv.

  • gcyrillusgcyrillus Member
    5 mars modifié

    Merci ;)

    j’ai modifier l'archive proposé en lui incluant l'option de filtrage des requêtes pour démontrer plus finement ce soucis de redirection parfois inattendues sur des requêtes inconnues. Je vient de découvrir ton PR que je n'ai pas tester en faisant cette maj :(

    edit : @bazooka07 ça fonctionne !! ;)
    Je laisse l'archive pour infos pour le moment , de toute façon elle n'est plus compatible et je part au boulot ;)

    cdt

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
  • 7 mars modifié

    Bonjour,

    Je viens de tester la derniere version (telecharger à 15h35 , juste avant le pr #789 ) et je crois qu'il y a un soucis majeure , plus aucun plugin utilisant une page en front ne fonctionne :( (plxMysearch par exemple, mais les autres c'est pareil) on a en retour la page d'erreur .

    <article class="article" style="--height: 729px;">
                            <header>
                                <h2>La page que vous avez demandée n'existe pas</h2>
                            </header>
                            <p>Page non trouvée</p>
                        </article>
    

    Je ne sais pas si c'est du à l’internationalisation des noms des modes ou au nouveau traitement des requêtes , la précédente version que j'avais tester était du 05/03/24 télécharger vers 9heures et fonctionnait pour les pages de plugin en front ;)


    Autre détail amusant, certains plugins permettent de donner une position dans le menu des pages statiques , mais entre la page d’accueil et une page statique, la présence du lien "accueil", modifie d'un cran la position.
    Sur une installation par défaut + le plugin PlxMySearch avec sa config par défaut , on à en page d’accueil au menu :

    [Statique 1] [Rechercher]

    Puis en page index.php?static1/statique-1 on a

    [Accueil] [Rechercher] [Statique 1]

    Rechercher reste bien en position 2 mais statique 1 passe de 1 à 3 ;)

    Autre info: En mode-erreur , le lien vers l’accueil n'apparait pas .


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Bonjour, bonsoir,
    En coup de vent, il y a probablement un problème ici
    $matches ou $capture

    L'internationalisation des url est une bonne idée en sois...
    Avec un bémol pour ceux qui ont un site bien référencé avec les anciennes adresses et qui l'utilise avec une autre langue que le Français / Anglais, elles vont toutes changés (et aussi si l'on change la langue du site en cours de route).

    Notre temps est la seule monnaie vraie ;)

    Site, Dépôt, framagit, MyShop, Factux

    #mozinor président

  • 7 mars modifié

    L'internationalisation des url est une bonne idée en sois...
    Avec un bémol pour ceux qui ont un site bien référencé avec les anciennes adresses et qui l'utilise avec une autre langue que le Français / Anglais, elles vont toutes changés (et aussi si l'on change la langue du site en cours de route).

    @Sudwebdesign et @bazooka07 C'est vrai , qu’après réflexion, le plugin MyBetterUrl fait trés bien le job si l'on veut changer article ou catégorie en un autre terme ou le faire disparaitre, on a aussi l'option de donner une extension à nos URL et ,par exemple, seulement aux articles.
    Quitte à proposer l’internationalisation cela pourrait être fait en intégrant les fonctionnalité de ce Plugin et en donnant le choix simplifié de coller simplement à la langue du site et d'afficher/activer ses options si urlrewriting activé. Ce serait beaucoup plus flexible et retro compatible en laissant le webmaster faire le choix qui lui convient.
    Le seul défaut actuel de ce plugin est de ne pas se désactiver si l'urlrewriting n’est pas activé il suffit d'un if en amont et ce défaut peut-être régler simplement.

    Du coup, je suis aussi mitigé sur cette fonctionnalité automatisée, qui du coup est plutôt rigide. Le plugin PlxMultilingue à ce défaut similaire de rigidité, il faut qu'il soit installer avant la rédaction du premier article et déroute totalement n'importe quel utilisateur qui veut internationalisé son PluXml en cours de vie du site.


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    @Sudwebdesign

    J'ai "dégagé" tous les $capture qui traînaient dans plxMotor::prechauffage() pour les remplacer par $matches.
    Voir https://github.com/pluxml/PluXml/commit/f4cbf6d0a9de2e57a85251ecca5e6e1d1e2a0113
    ou PR #785
    J'ai découvert après coup qu'il y avait aussi un problème avec plxShow::lastComList().
    Problème réglé avec PR #789.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Plugin plxMyBetterUrls :
    Il y a quelques soucis avec ce plugin :

    • il nécessite que l'urlRewriting soit activé. Aucune alerte en cas d'oubli. Ce n'est pas nécessaire avec l'internationalisation que j'ai mis en place
    • il ne gère que article, catégorie, page statique. Rien pour tag, archives, commentaires, blog, page, ... !
    • il n'est pas multilingue
    • il ne prend pas en compte que la langue de l'utilisateur connecté peut être différente de la langue par défaut du site.
    • l'intérêt de choisir une extension pour l'url est toute relative, à part de supporter les extensions type .asp
    • il est plus ou moins lié à un autre plugin plxMyMultiLingue

    Pour ceux qui veulent à tout prix conserver leurs vieilles urls françaises, il y a 2 options :

    • ajouter une option pour franciser les urls
    • modifier le fichier de langue core/lang/??/core.php ou ?? est la langue du site. Il faut changer les traductions en fin de fichier pour les constantes finissant en _URL

    Quant à plxMyMultiLingue, l'activer avant d'écrire un article est déjà un problème. Ensuite, il gère beaucoup de hooks. Je ne sais pas si c'est vraiment nécessaire. Accessoirement, il n'utilise pas les emoji pour les drapeaux.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Le plugin plxMyBetterUrls est basé sur la recherche des mots-clés suivants dans $this->get ou autres expressions :

    • article
    • categorie
    • static

    Pour le rendre compatible avec l'internationalisation des urls, il suffit de faire unemise à jour du plugin soit en testant le numéro de version de PluXml, ou mieux de vérifier l'existence des constantes suivantes :

    • L_ARTICLE_URL
    • L_CATEGORY_URL
    • L_STATIC_URL

    Cela permettra une rétro-compabilité et de nettoyer le code de ce plugin.
    Je vais regarder cela.

  • 8 mars modifié

    Pour le moment avec l'archive de pluxml-Master.zip retelecharger il y a 5 mn : index.php?search ou index.php?contact , correspondant a deux plugin largement utilisés : plxMyContact et plxMySearch C'est une 404 .

    Pour l’internationalisation des URLs , je n'y vois pas vraiment pas d’intérêt à part introduire de nouveaux bug et une modification du CMS qui n'est pas anodine , la 5.9.0 va finir en 7.0 avant d'être stabilisé.
    Peut-être faut-il seulement s'attacher à sortir une release stabilisé avant de modifier tant de chose en profondeur que le gap entre ces deux version soit trop grand et garder l’internationalisation dans une autre version dédiée, uniquement à ça justement et en ouvrant en parallèle un espace Anglophone sur le forum ?

    L'actuel 5.8.9 stable vient de la 5.8.7 (passé en un éclair de la 5.8.8 à la 5.8.9 ), la 5.8.10 n'existera pas. Laissons vivre la 5.9.0 !

    Cdt

    edit une version qui met à la ramasse une quantité de plugins simple n'est pas non plus une bonne idée, à mon humble avis, lorsque cela dépend du CMS lui même et pas une évolution de PHP ou de librairies externes , c'est peu compréhensible et n'incite pas a suivre et à faire les MAJ.

    re-edit
    Pour le plugin plxMyBetterUrl , voici une solution provisoire pour la derniere rc (AdminPrepend qui ne sert à rien si l'on fait la mise à jour du champ "description" monolingue dans infos.xml ;) ):

    ajout de deux fonctions dans la class Cliquez pour afficher le code
    <?php
    /**
     * Plugin plxMyBetterUrls
     *
     * @author  Stephane F
     * @modif G.cyrillus
     * teste la config urlrewriting et désactive le plugin si à 0
     **/
    class plxMyBetterUrls extends plxPlugin {
    
        /**
         * Constructeur de la classe
         *
         * @param   default_lang    langue par défaut
         * @return  stdio
         * @author  Stephane F
         **/
        public function __construct($default_lang) {
    
            # appel du constructeur de la classe plxPlugin (obligatoire)
            parent::__construct($default_lang);
    
            # droits pour accéder à la page config.php du plugin
            $this->setConfigProfil(PROFIL_ADMIN);
    
            # initialisation des variables de la classe
            $this->article = $this->getParam('format_article')!='' ? $this->getParam('format_article').'/' : '';
            $this->category = $this->getParam('format_category')!='' ? $this->getParam('format_category').'/' : '';
            $this->static = $this->getParam('format_static')!='' ? $this->getParam('format_static').'/' : '';
    
            # déclaration des hooks
            $this->addHook('plxMotorConstruct', 'plxMotorConstruct');
            $this->addHook('plxMotorDemarrageNewCommentaire', 'plxMotorDemarrageNewCommentaire');
            $this->addHook('plxMotorConstructLoadPlugins', 'Redirect301');
            $this->addHook('Index', 'Index');
            $this->addHook('IndexEnd', 'RewriteUrls');
            $this->addHook('FeedEnd', 'RewriteUrls');
            $this->addHook('SitemapEnd', 'RewriteUrls');
            $this->addHook('plxFeedPreChauffageBegin', 'plxFeedPreChauffageBegin');
            $this->addHook('AdminPrepend','AdminPrepend');
    
        }
    
        public function Index() {
            $plxMotor = plxMotor::getInstance();
            if($plxMotor->aConf['urlrewriting'] != 1) {     
                $xmlplugs = file_get_contents(PLX_ROOT.PLX_CONFIG_PATH.'plugins.xml', true);
                $remove= '  <plugin name="plxMyBetterUrls" scope=""></plugin>';//recherche sur syntaxe produite par PluXml
                $newxmlplugs = str_replace($remove, '', $xmlplugs);
                file_put_contents(PLX_ROOT.PLX_CONFIG_PATH.'plugins.xml',$newxmlplugs); 
            }       
        }
            # Affichage backend
            public function AdminPrepend(){
                $plxMotor = plxMotor::getInstance();
                $plxAdmin = plxAdmin::getInstance();
                $lang = $plxAdmin->aConf['default_lang'];
                loadLang('../lang/'.$lang.'/admin.php');
                if($plxMotor->aConf['urlrewriting'] != 1) { 
                    $this->aInfos['title'] = L_PLUGINS_REQUIREMENTS.' '.L_CONFIG_ADVANCED_URL_REWRITE.' ||'.$this->aInfos['title'];
                }
            }
    
        /**
         * Méthode qui fait une redirection 301 si accès à PluXml à partir des anciennes url
         *
         * @author  Stephane F
         **/
        public function Redirect301() {
    
            echo '<?php
            if(!defined("PLX_ADMIN") AND substr(str_replace($_SERVER["QUERY_STRING"], "", $_SERVER["REQUEST_URI"]),-1)=="?") {
                # redirection si lien http://server.com/?contenu vers http://server.com/contenu
                header("Status: 301 Moved Permanently", false, 301);
                header("Location: ".$this->urlRewrite($_SERVER["QUERY_STRING"]));
                exit();
            }
            if(preg_match("/^(article|static|categorie)[0-9]+\/([a-z0-9-]+)(\/page[0-9]+)?/", $this->get, $capture)) {
                if($capture[1]!="'.$this->getParam('format_article').'") {
                    $page=isset($capture[3])?$capture[3]:"";
                    header("Status: 301 Moved Permanently", false, 301);
                    header("Location: ".$this->urlRewrite($capture[2]."'.$this->getParam('ext_url').'".$page));
                    exit();
                }
            }
            if(preg_match("/index.php\?(tag|archives)\/(.*)/", $_SERVER["REQUEST_URI"], $capture)) {
                header("Status: 301 Moved Permanently", false, 301);
                header("Location: ".$this->urlRewrite($capture[1]."/".$capture[2]));
                exit();
            }
            ?>';
    
        }
    
        /**
         * Méthode qui rédirige vers la bonne url après soumission d'un commentaire
         *
         * @author  Stephane F
         **/
        public function plxMotorDemarrageNewCommentaire() {
            echo '<?php
                $url = $this->urlRewrite("?'.$this->lang.$this->article.'".$this->plxRecord_arts->f("url")."'.$this->getParam('ext_url').'");
            ?>';
        }
    
        /**
         * Méthode qui recrée l'url de l'article, page statique ou catégorie au format natif de PluXml
         *
         * @author  Stephane F
         **/
        public function plxMotorConstruct() {
    
            # récupération de la langue si plugin plxMyMultilingue présent
            $this->lang="";
            if(defined('PLX_MYMULTILINGUE')) {
                $lang = plxMyMultiLingue::_Lang();
                if(!empty($lang)) {
                    if(isset($_SESSION['default_lang']) AND $_SESSION['default_lang']!=$lang) {
                        $this->lang = $lang.'/';
                    }
                }
            }
    
            echo '<?php
            if(empty($this->get))
                return;
    
            # récupération url
            $get = $_SERVER["QUERY_STRING"];
    
            # récupération de la pagination si présente
            $page="";
            if(preg_match("/(page[0-9]+)$/", $this->get, $capture)) {
                $page = "/".$capture[0];
            }
    
            # suppression de la page dans url
            $get = str_replace($page, "", $get);
    
            # pages statiques
            foreach($this->aStats as $numstat => $stat) {
                $link = "'.$this->lang.$this->static.'".$stat["url"]."'.$this->getParam('ext_url').'";
                if($get==$stat["url"]) {
                    $get = "'.$this->lang.$this->static.'".$get;
                }
                if($link==$get) {
                    $this->get = "'.$this->lang.'static".intval($numstat)."/".$stat["url"];
                    return;
                }
            }
    
            # categories
            foreach($this->aCats as $numcat => $cat) {
                $link = "'.$this->lang.$this->category.'".$cat["url"]."'.$this->getParam('ext_url').'";
                if($link==$get) {
                    $this->get = "'.$this->lang.'categorie".intval($numcat)."/".$cat["url"].$page;
                    return;
                }
            }
    
            # articles
            foreach($this->plxGlob_arts->aFiles as $numart => $filename) {
                if(preg_match("/^[0-9]{4}.([0-9,|home|draft]*).[0-9]{3}.[0-9]{12}.([a-z0-9-]+).xml$/", $filename,$capture)) {
                    $link = "'.$this->lang.$this->article.'".$capture[2]."'.$this->getParam('ext_url').'";
                    if($link==$get) {
                        $this->get = "'.$this->lang.'article".intval($numart)."/".$capture[2];
                        return;
                    }
                }
            }
            ?>';
        }
    
        /**
         * Méthode qui nettoie les urls des articles, pages statiques et catégories
         *
         * @author  Stephane F
         **/
        public function RewriteUrls() {
            echo '<?php
                $output = preg_replace("/article[0-9]+\/([a-z0-9-]+)/", "'.$this->article.'$1'.$this->getParam('ext_url').'", $output);
                $output = preg_replace("/categorie[0-9]+\/([a-z0-9-]+)/", "'.$this->category.'$1'.$this->getParam('ext_url').'", $output);
                $output = preg_replace("/static[0-9]+\/([a-z0-9-]+)/", "'.$this->static.'$1'.$this->getParam('ext_url').'", $output);
             ?>';
    
        }
    
        public function plxFeedPreChauffageBegin() {
            # flux rss des articles d'une categorie
            echo '<?php
            if(preg_match("#^rss/'.$this->category.'([a-z0-9-]+)#", $this->get, $capture)) {
                foreach($this->aCats as $numcat => $cat) {
                    if($cat["url"]==$capture[1]) {
                        $this->get = "rss/categorie".intval($numcat);
                    }
                }
            }
            ?>';
        }
    }
    ?>
    


    un peu brutal la réécriture du fichier plugins.xml :) Qu'en penses tu ?

    re re re edit
    je n’adhère finalement pas à cette internationalisation qui tombe en cours de route dans le code et qui pour le coup met le bazar. Pour l'idée oui.


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • 10 mars modifié

    J'ai refait un pullrequest pour réintegrer les pages statiques des plugins et proposé à nouveaux le choix de laisser passer certaines requêtes simple en acceuil (ndd+1seeulerequêtes $_GET) ou aucunes vers la 404 'page non trouvée' . L'internationnalisation des uri pour les différents *modes* de PluXml est conservée :)

    https://github.com/pluxml/PluXml/pull/792

    amicalement :)


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Les anciennes versions de PluXml sont très "openbar".
    Les plugins plxMySearch et plxMyContact ne gèrent pas le hook plxMotorDemarrageBegin. Donc ils se prennent une erreur 404.
    Il y a juste ce code à rajouter à ces maudits plugins :

    # .......
    $this->addHook('plxMotorDemarrageBegin', 'plxMotorDemarrageBegin');
    # .......
    
    public function plxMotorDemarrageBegin() {
            echo '<?php' . PHP_EOL;
    ?>
    return ($this->mode == '<?= $this->url ?>');
    <?php
            echo PHP_EOL . '?>';
        }
    

    Je suis curieux de savoir combien de personnes utilisent le plugin plxMyMultilingue.

    Avec des urls en français comme https://my-host.com/categorie/warzywa' les visiteurs polonais ne seront pas très nombreux. Par contre, https://my-host.com/kategorie/warzywa risquent d'attirer plus de visiteurs. Et si pour un visiteur espagnol l'url devient https://my-host/categoria/verduras, cela devient top.

    Il n'y a plus qu'attendre ces vieux plugins qui "foutent le bordel" avec leurs pages statiques, LOL.

  • 14 mars modifié

    re Bonjour sur ce fil je ne pense pas que pour un défaut ,que j'estime majeure, de rétrocompatibilité sur une version encore en dev, que les plugins soient à être modifier , Cela fonctionne depuis 2011 et jusqu'alors Pluxml voyait bien ces nouveaux modes.


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,

    PR #794
    Patch pour les plugins qui utilisent le hook plxMotorPreChauffageBegin pour créer leur propre plxMotor::mode et modifier plxMotor::cible, sans utiliser le hook plxMotorDemarrageBegin pour gérer leur propre mode.
    plxMotor::cible doit comporter le nom du plugin en cause et le plugin doit être activé.
    Evite une erreur 404 dans ce cas là et uniquement.

    Si vous utilisez un plugin non officiel qui est dans ce cas et qui pose problème, merci de me le signaler pour le tester.
    Sous réserve que le code PHP soit lisible !!!!

  • 13 mars modifié

    Bonjour,
    de mon coté ç'est transparent.
    Pour apiPluxml , si jamais ça devient quelque chose, je laisserais l'injection du mode dans le hook Index() il n'y a pas lieu de s'en soucier.

    Merci :)


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • SudwebdesignSudwebdesign Member
    13 mars modifié

    Bonjour, bonsoir,

    Pour en revenir au bug du 7 mars le $matches[1] est redevenu $capture[1] entre 785 et le 786

                if($this->sendTelechargement($capture[1])) {
    

    Devrait être

                if($this->sendTelechargement($matches[1])) {
    

    voir Ligne 314 de motor

    Et Pour les 404 et éviter le 794 AMHA remettre $this->mode = $matches[1]; a la ligne 200 de motor qui a été supprimé au 785

    En toutes cordialités.

    Notre temps est la seule monnaie vraie ;)

    Site, Dépôt, framagit, MyShop, Factux

    #mozinor président

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Effectivement un bug s'est introduit lors d'un 'git rebase ...'
    Il y a également une redondance de code un peu avant pour L_ARTICLE_URL

    Voir PR #795

    Merci pour le retour.

  • Bonjour,
    Dans plxshow, ligne 736, il y a un md5() qui semble gener pour le lien .
    Cdt


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • SudwebdesignSudwebdesign Member
    14 mars modifié

    Bonjour, bonsoir,

    Un faille XSS sur les commentaires avec le champ site:

    par exemple saisir :

    http://a.b.c"><script>alert('xss')</script></a><a 
    

    ÉDIT : Il semble que le 1er trim soit en trop ligne 1140 de motor

                        # On vérifie le site
                        'site' => (!empty($content['site']) and plxUtils::checkSite(trim($content['site']))) ? trim($content['site']) : '',
    

    cela devrait être

                        # On vérifie le site
                        'site' => (!empty($content['site']) and plxUtils::checkSite($content['site'])) ? trim($content['site']) : '',
    

    car checkSite est par référence pour nettoyage et le trim l’empêche.

    En toutes cordialités.

    Notre temps est la seule monnaie vraie ;)

    Site, Dépôt, framagit, MyShop, Factux

    #mozinor président

Connectez-vous ou Inscrivez-vous pour répondre.