Affichage des articles après suppression d'une catégorie

krockroc Membre

Bonjour,

Je viens de rencontrer un petit problème avec PluXml :

N'ayant plus besoin d'une catégorie que j'avais créé, je l'ai supprimé directement dans la liste des catégories (menu catégories dans le backoffice).

Mais une fois ceci fait, tous les articles de cette (ex-)catégorie ont refusé de s'afficher.

Je suis obligé de les éditer un par un, ce qui consiste en fait juste à ouvrir l'édition de article dans le backoffice et de cliquer sur "enregistrer".

Pouvez-vous m'indiquer la raison de ce comportement ?

D'avance merci très chers pluxmeleurs

Mots clés:

Réponses

  • @kroc Une réponse se trouve ici ;)

    Édite le fichier data/configuration/categorie.xml et rajoute une ligne avec le numéro de la catégorie effacé (ex: 007)

    Notre temps est la seule monnaie vraie ;)

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

  • Ou enlève (remplace) ds le nom des fichiers le numéro de la catégorie supprimé (ici 007)

    ds data/articles/

    0001.007.001.201910250220.urlarticle.xml

    0001.000.001.201910250220.urlarticle.xml


    0002.003.007.001.201910250220.urlarticle2.xml

    0002.003.001.201910250220.urlarticle2.xml


    Notes :

    • le premier numéro (4 chiffres) est l'id de l'article
    • le dernier numéro a trois chiffres est l'id du rédacteur de l'article

    ceux entre sont la/les catégories, le 000 correspond a "non classé" ;)


    Utilise un renommeur en masse 😉

    Notre temps est la seule monnaie vraie ;)

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

  • P3terP3ter Responsable de PluXml
    13 nov. modifié

    Bonjour,

    J'ai fait une correction, mais je pense qu'il y a matière à l'optimiser : https://github.com/pluxml/PluXml/pull/344

    Quand pensez-vous ?

  • krockroc Membre

    Merci pour vos réponses. Effectivement, le mieux serait de corriger ce bug sur la 5.8 :)

  • krockroc Membre
    13 nov. modifié

    J'ajoute un autre problème apparenté : j'ai donc édité un par un les articles pour qu'ils s'affichent de nouveau, mais un second bug a fait que la date de publication a été modifié de pair (la date de création est inchangée). Du coup mes articles s'affichent dans le désordre (grrrrr)...


    J'en profite donc pour demander une solution pour afficher les articles dans l'ordre des date de création avec la boucle

    <?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?>

    ? Désolé, j'abuse...☺️

  • Merci à toi @p3ter : un autre Fix #343 : Rename article files when del category 901d222

    @bazooka07

    Que pense tu du motif (emprunté a plxMotor préchauffage)

                $motif = '/^[0-9]{4}.(?:[0-9]|home|draft|,)*(?:'.$cat_id.')(?:[0-9]|home|,)*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/'; # Motif de recherche
    

    Aie, Aie, lol ;-)

    @kroc il me semble que cela n'est pas prévu par PluXml. Mais si c'est possible je suis aussi preneur 😉

    @P3ter : ds la même optique, serait il possible qu'il y est une date de dé-publication* pour les articles

    Ou @tous, connaissez vous un plugin, (bout de script) qui permet ça*

    Notre temps est la seule monnaie vraie ;)

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

  • Rien de bien.

    Si on a $cat_id = '010'; par exemple, voici des noms de fichiers articles qui "matchent" bien avec $motif :

    0001wdrafthome,,,,,,,010,011001q123456789012mogxml

    0002x010y001z123456789012_mon-el-articlexxml

    Il faut déjà remplacer les '/' en début et en fin d'expression. C'est pénible quand on doit tester le chemin absolu d'un fichier

    '.' dans une expression régulière, ce n'est pas un point mais n'importe quel caractère !!!!!!!

    '[0-9]', c'est verbeux. tout comme '[a-z0-9-]'. Et on ne prend pas en compte les majuscules et '_' .

    La bonne expression est celle-ci

    $motif = '#\d{4}\.(?:draft,|home,|\d{3},)*' . $cat_id . '(?:,home|,draft|,\d{3})*\.\d{3}\.\d{12}\.[\w_]+\.xml$#';
    # méthode plus facile pour comprendre :
    $parts = array();
    $parts[] = '\d{4}'; // article Id
    $parts[] = '(?:draft,|home,|\d{3},)*' . $cat_id . '(?:,\d{3}|,draft|,home)*'; // catégories id
    $parts[] = '\d{3}'; // auteur id
    $parts[] = '[\w_]+\.xml'; // url + extension fichier
    $motif  = '#^' . implode('\.', $parts) . '$#';
    

    Cela fait un moment que j'ai signalé que toutes les expressions régulières de PluXml sont incorrectes 😫

  • SudwebdesignSudwebdesign Membre
    14 nov. modifié

    @bazooka07 Merci, c'est très clair😎

    La route semble tracé, question de savoir comment intégré pour uniformisé (par constante(s)) les fameuses.

    Il me semble que tu l'as déjà écrit quelque part 😉. A suivre...

    [édit] j'ai lu quelque part qu'il valait bien mieux utiliser ~ pour entourer les expreg, mais c'est ancien.

    Notre temps est la seule monnaie vraie ;)

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

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