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à.
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 , simple membre du forum et utilisateur de pluxml
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
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 , simple membre du forum et utilisateur de pluxml
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.
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,..)
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 , simple membre du forum et utilisateur de pluxml
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
PR #786 et PR #787 :
Côté site, les urls prennent en compte la langue du site .
Par exemple si la langue du site est l'espagnol, les urls pour lister les articles d'une catégorie, d'un tag, d'un auteur ou pour un article sont :
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 , simple membre du forum et utilisateur de pluxml
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).
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 , simple membre du forum et utilisateur de pluxml
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.
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.
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 , simple membre du forum et utilisateur de pluxml
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
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 :
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 , simple membre du forum et utilisateur de pluxml
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 !!!!
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 , simple membre du forum et utilisateur de pluxml
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
Slt, un petit bogue de
printf
manquant c'est glissé sur la pageparametres_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
@Sudwebdesign,
Voir PR #772
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
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
@kamea,
Dans le fichier core/admin/medias.php, corrige la ligne n°230 comme suit ( caractère = absent devant $v['name'] ) :
Sinon voir PR #774
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
@bazooka07 Je n'avais pas vu le PR merci pour le suivi
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 placele fichier favicon.ico est aussi manquant.
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
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
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 premierif(!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;
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 , simple membre du forum et utilisateur de pluxml
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
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.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
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);
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 , simple membre du forum et utilisateur de pluxml
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
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.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
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
PR #786 et PR #787 :
Côté site, les urls prennent en compte la langue du site .
Par exemple si la langue du site est l'espagnol, les urls pour lister les articles d'une catégorie, d'un tag, d'un auteur ou pour un article sont :
Sur le même site, si un utilisateur connecté préfère le français, les urls deviennent :
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Quelques corrections depuis mon dernier billet :
PR #789
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
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 .
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 , simple membre du forum et utilisateur de pluxml
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
@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 , simple membre du forum et utilisateur de pluxml
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
@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.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Plugin plxMyBetterUrls :
Il y a quelques soucis avec ce plugin :
Pour ceux qui veulent à tout prix conserver leurs vieilles urls françaises, il y a 2 options :
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.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Le plugin plxMyBetterUrls est basé sur la recherche des mots-clés suivants dans $this->get ou autres expressions :
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 :
Cela permettra une rétro-compabilité et de nettoyer le code de ce plugin.
Je vais regarder cela.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
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
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 , simple membre du forum et utilisateur de pluxml
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
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 , simple membre du forum et utilisateur de pluxml
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
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 :
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.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
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 , simple membre du forum et utilisateur de pluxml
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,
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 !!!!
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
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 , simple membre du forum et utilisateur de pluxml
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,
Pour en revenir au bug du 7 mars le
$matches[1]
est redevenu$capture[1]
entre 785 et le 786Devrait être
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 785En toutes cordialités.
Notre temps est la seule monnaie vraie ;)
Site, Dépôt, framagit, MyShop, Factux
#mozinor président
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.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Bonjour,
Dans plxshow, ligne 736, il y a un md5() qui semble gener pour le lien .
Cdt
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
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,
Un faille XSS sur les commentaires avec le champ site:
par exemple saisir :
ÉDIT : Il semble que le 1er trim soit en trop ligne 1140 de motor
cela devrait être
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