Création d'articles limitée à 9999 comment permettre jusqu'à 99999 ?

La question est dans le titre, quels fichiers modifier en tout pour que l'id des articles soit en 5 chiffres et que tout fonctionne bien dans pluxml ? Merci

Réponses


  • 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 | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    As-tu réellement 9999 fichiers-articles dans le dossier data/articles ?

    Si non, modifie la fonction nextIdArticle() dans le fichier core/lib/class.plx.admin.php comme dans le lien ci-dessous (ligne 1384 et suivantes) pour récupérer les numéros d'articles supprimés :
    https://github.com/pluxml/PluXml/blob/master/core/lib/class.plx.admin.php
    ( Modification incluse dans la future version 5.9.0 de PluXml )

  • garys02garys02 Member
    3 oct. modifié

    J'ai 17000 articles, j'ai mis tous mes id de fichiers xml à 5 chiffres en ajoutant un 0 au début (00001...). J'ai essayé de suivre les modifications comme sur cette capture pour replacer le 4 par le 5 de l'id, dans les fichiers :

    Le problème c'est que maintenant quand je clique sur l'url d'un article ça affiche bien l'url dans le navigateur mais le texte affiché est celui-de la page d'accueil au lieu de l'article. Peut-être que j'ai raté quelque chose. En fait le post de cette capture date de 2017, il y a des ligens que je n'ai pas trouvé, c'est plus la même version de pluxml, je suis en 5.8.21.

    En fait j'aimerais que les slug d'url fonctionnnent. A mon avis comme l'id n'est pas trouvé, il m'affiche le texte de la page d'accueil. A moins que ça soit un problème de .htaccess. J'utilise aussi le plugin plxbetterurls.

    Est-ce que quelqu'un aurait une version de pluxml qui marche pour 99999 articles ou les fichiers plx qui fonctionnent ?

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    3 oct. modifié

    Tu n'as jamais supprimé un ou plusieurs articles ?

    En supposant que tu utilises Linux, tu peux trouver les expressions régulières qui filtrent les articles et commentaires :

    grep -nE '\\d\{4\}' *.php core/{lib,admin}/*.php
    grep -nE '\[0-9\]\{4\}' *.php core/{lib,admin}/*.php
    

    Et cela donne pour les 2 commandes ci-dessus :

    core/lib/class.plx.feed.php:85:         $this->motif = '#^\d{4}.((?:\d|home|,)*(?:'.$this->cible.')(?:\d|home|,)*).\d{3}.\d{12}.[\w-]+.xml$#';
    core/lib/class.plx.feed.php:133:            $this->motif = '#^\d{4}.(?:\d|home|,)*(?:'.$this->activeCats.'|home)(?:\d|home|,)*.\d{3}.\d{12}.[\w-]+.xml$#';
    core/lib/class.plx.feed.php:164:            $regex = '#^\d{4}.\d{10}-\d+.xml$#';
    core/lib/class.plx.feed.php:175:            $this->getCommentaires('#^'.$this->cible.'\d{4}.\d{10}-\d+.xml$#','rsort',0,$this->bypage,'all');
    core/lib/class.plx.motor.php:134:       if(!empty($this->get) and !preg_match('#^(?:blog|article\d{1,4}/|static\d{1,3}/|categorie\d{1,3}/|archives/\d{4}(?:/\d{2})?|tag/\w|page\d|preview|telechargement|download)#', $this->get)) { $this->get = ''; }
    core/lib/class.plx.motor.php:148:           if($this->plxGlob_arts->query('#^\d{4}\.(home[0-9,]*)\.\d{3}\.\d{12}\.[\w-]+\.xml$#')) {
    core/lib/class.plx.motor.php:149:               $this->motif = '#^\d{4}.(home[0-9,]*).\d{3}.\d{12}.[\w-]+.xml$#';
    core/lib/class.plx.motor.php:151:               $this->motif = '#^\d{4}.(?:\d|,)*(?:'.$this->homepageCats.')(?:\d|,)*.\d{3}.\d{12}.[\w-]+.xml$#';
    core/lib/class.plx.motor.php:191:               $this->motif = '#^\d{4}.((?:\d|home|,)*(?:'.$this->cible.')(?:\d|home|,)*).\d{3}.\d{12}.[\w-]+.xml$#'; # Motif de recherche
    core/lib/class.plx.motor.php:204:       elseif($this->get AND preg_match('#^archives\/(\d{4})[\/]?(\d{2})?[\/]?(\d{2})?#',$this->get,$capture)) {
    core/lib/class.plx.motor.php:213:           $this->motif = '#^\d{4}.(?:\d|home|,)*(?:'.$this->activeCats.'|home)(?:\d|home|,)*.\d{3}.'.$search.'\d{4}.[\w-]+.xml$#';
    core/lib/class.plx.motor.php:504:               $motif = "#^\d{4}\.(?:home,|\d{3},)*$number(?:,\d{3})*\.\d{3}\.\d{12}\.[\w-]+\.xml$#";
    core/lib/class.plx.motor.php:707:       if(preg_match('#^(_?\d{4})\.((?:\d{3},|draft,)*(?:home|\d{3})(?:,\d{3})*)\.(\d{3})\.(\d{12})\.(.*)\.xml$#', basename($filename), $capture)) {
    core/lib/class.plx.motor.php:818:       if(preg_match('#([[:punct:]]?)(\d{4}).(\d{10})-(\d+).xml$#',$filename,$capture)) {
    core/lib/class.plx.motor.php:1215:      if($arts = $this->plxGlob_arts->query('#^'.$mod.'\d{4}.('.$motif.').'.$userId.'.\d{12}.[\w-]+.xml$#', 'art', '', 0, false, $publi))
    core/lib/class.plx.motor.php:1234:          $motif = '#[^[:punct:]?]\d{4}.(.*).xml$#';
    core/lib/class.plx.motor.php:1236:          $motif = '#^_\d{4}.(.*).xml$#';
    core/lib/class.plx.motor.php:1238:          $motif = '#^\d{4}.(.*).xml$#';
    core/lib/class.plx.motor.php:1259:              if(preg_match('#^(\d{4}).(?:\d|home|,)*(?:'.$this->activeCats.'|home)(?:\d|home|,)*.\d{3}.(\d{12}).[\w-]+.xml$#', $filename, $capture)) {
    core/lib/class.plx.show.php:226:            preg_match('/^(\d{4})(\d{2})?(\d{2})?/', $this->plxMotor->cible, $capture);
    core/lib/class.plx.show.php:1971:        if ($files = $plxGlob_arts->query('/^\d{4}\.(?:\d{3},|home,)*(' . $this->plxMotor->activeCats . ')(?:,\d{3}|,home)*\.\d{3}\.\d{12}\.[\w-]+\.xml$/', 'art', 'rsort', 0, false, 'before')) {
    core/lib/class.plx.show.php:1982:            $motif = '@^\d{4}\.(?:\d{3}|home)+(?:,\d{3}|,home)*\.\d{3}\.(\d{4})(\d{2})\d{6}\.[\w-]+\.xml$@';
    core/admin/comments.php:90: $comSelMotif = '/^\d{4}.(.*).xml$/';
    core/admin/comments.php:96: $comSelMotif = '/^_\d{4}.(.*).xml$/';
    core/admin/comments.php:102:    $comSelMotif = '/^[[:punct:]]?\d{4}.(.*).xml$/';
    
    
    sitemap.php:82:if($aFiles = $plxMotor->plxGlob_arts->query('/^[0-9]{4}.(?:[0-9]|home|,)*(?:'.$plxMotor->activeCats.'|home)(?:[0-9]|home|,)*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/','art','rsort', 0, false, 'before')) {
    core/lib/class.plx.admin.php:946:       if(!preg_match('/^_?[0-9]{4}$/',$id)) {
    core/lib/class.plx.admin.php:1053:      if(!preg_match('/^_?[0-9]{4}$/',$id))
    core/lib/class.plx.admin.php:1212:      if(preg_match('/([[:punct:]]?)[0-9]{4}.[0-9]{10}-[0-9]+$/',$id,$capture)) {
    core/lib/class.plx.date.php:142:        preg_match('/([0-9]{4})([0-9]{2})([0-9]{2})([0-9:]{2})([0-9:]{2})/',$date,$capture);
    core/lib/class.plx.show.php:1057:                $motif = '/^[0-9]{4}.(?:[0-9]|home|,)*(?:' . $cats . ')(?:[0-9]|home|,)*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';
    core/lib/class.plx.show.php:1059:                $motif = '/^[0-9]{4}.((?:[0-9]|home|,)*(?:' . $cats . ')(?:[0-9]|home|,)*).[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';
    core/lib/class.plx.show.php:1374:            $motif = '/^[0-9]{4}.[0-9]{10}-[0-9]+.xml$/';
    core/admin/article.php:20:if(isset($_GET['a']) AND !preg_match('/^_?[0-9]{4}$/',$_GET['a'])) {
    core/admin/article.php:105:         if(preg_match("/^_?[0-9]{4}.([0-9,|home|draft]*).[0-9]{3}.[0-9]{12}.$url.xml$/", $filename)) {
    core/admin/article.php:298:                 if(isset($_GET['a']) AND preg_match('/^_[0-9]{4}$/',$_GET['a'])) { # en attente
    core/admin/article.php:312:                 if(!isset($_GET['a']) OR preg_match('/^_[0-9]{4}$/',$_GET['a']))
    core/admin/article.php:406:             if(isset($_GET['a']) AND preg_match('/^_[0-9]{4}$/',$_GET['a']))
    core/admin/comment_new.php:29:  if(!preg_match('/^_?([0-9]{4})$/',$_GET['a'], $capture)) {
    core/admin/comment_new.php:39:  if(!preg_match('/^_?([0-9]{4}).(.*)$/',$_GET['c'], $capture)) {
    core/admin/comment.php:28:if(isset($_GET['a']) AND !preg_match('/^_?[0-9]{4}$/',$_GET['a'])) {
    core/admin/comment.php:38:  if(!preg_match('/[[:punct:]]?[0-9]{4}.[0-9]{10}-[0-9]+$/', $_POST['comId'])) {
    core/admin/comments.php:22:if(isset($_GET['a']) AND !preg_match('/^_?[0-9]{4}$/',$_GET['a'])) {
    core/admin/index.php:92:    $motif = '/^'.$mod.'[0-9]{4}.'.$catIdSel.'.'.$userId.'.[0-9]{12}.(.*)'.plxUtils::urlify($_GET['artTitle']).'(.*).xml$/';
    

    -n permet à la commande grep d'afficher le numéro de ligne.
    Remplace {4} par {5} ou {4,5}
    Tu peux aussi remplacer [0-9] par \d
    Ne pas modifier le fichier core/lib/class.plx.date.php
    Il y a une autre correction à faire pour le caractère . dans les regex

    Si tu maitrises la commande sed, cela te simplifiera la vie sinon c'est "à la mano".

    Autre conseil : fais d'abord des essais en désactivant la ré-écriture d'urls et le plugin betterurls.

    Sinon patiente, il faut que je corrige les regex et faire quelques tests.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    SI tu modifies le nom des fichiers articles, il faut aussi modifier le nom des fichiers commentaires. Et mettre à jour le fichier tags.xml

  • garys02garys02 Member
    4 oct. modifié

    La suppression fonctionne dans l'admin, mais j'ai directement mis mes articles en id à 5 chiffres en ajoutant un 0 au début.
    Il doit manquer quelques 4 à remplacer car si je mets "voir l'article" dans l'administration des articles, il m'affiche le lien URL de l'article mais avec le texte de la page d'accueil, je pense qu'il ne trouve pas l'id correspondant pour l'afficher car je l'ai mis en 5 chiffres.
    Je fais tout à la mano en recherche des "4" dans les fichiers sur notepad++. Donc logiquement si je change tous ces 4 en 4,5 ça devrait fonctionner non ? Pour l'instant j'ai changé les 4 en 5. Avec ta capture, je vais vérifier si il en manque.
    Peux-tu m'en dire + sur le caractère " . " à modifier.
    A quels endroits ? Merci

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