Petit problème sur la fonction nbAllArt

JohanJohan Member
Bonjour,
Je risque de vous paraitre chiant avec toutes les questions qui me taraudent avec PluXml.
J'aime afficher le nombre d'article publiés sur mon blog sur certaines page, histoire de faire un ego-trip sur ces pages.

J'ai donc utilisé la méthode nbAllArt du plxShow.

Mon problème est que la fonction compte les articles en ligne et les articles en brouillon. Si vous avez suivi mon précédent post vous devez comprendre que le comportement de la fonction n'est pas celui que j'espérais.

Est-ce une volonté de votre part de compter tous les articles ?
Est-il possible de tweaker l'appel à nbAllArt pour n'afficher que les articles publiés (je n'ai pas trouvé c'est pour ca que je demande) ?
Sinon, une idée pour faire un petit hack rapide à intégrer dans un thème ?

Merci de votre aide !

Réponses

  • krockroc Member
    Je serais également intéressé par un aiguillage sur ce problème…
    Merci à vous.
  • StéphaneStéphane Member, Former PluXml Project Manager
    je vais regarder si on peut parametrer ça

    Consultant PluXml

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

  • StéphaneStéphane Member, Former PluXml Project Manager
    voila la solution

    dans le fichier core/lib/class.plx.show.php, fonction nbAllArt

    remplacer la ligne:
    if($arts = $this->plxMotor->plxGlob_arts->query('/^[0-9]{4}.[0-9,]*.(.+).xml$/'))
    
    par
    if($arts = $this->plxMotor->plxGlob_arts->query('/^[0-9]{4}.(home[0-9,]*).[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/'))
    
    cela ne comptera pas les fichiers brouillons

    Consultant PluXml

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

  • JohanJohan Member
    Merci pour l'info Stéphane :)
    Cela ne devrait-il pas être le comportement par défaut de la fonction par hasard ???
  • StéphaneStéphane Member, Former PluXml Project Manager
    oui, car nous somme du coté site visiteur (plxshow) et cette info est plus pertinente sans prendre en compte les brouillons. je me suis noté la modif pour la repercuter dans les sources

    Consultant PluXml

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

  • JohanJohan Member
    avril 2011 modifié
    Merci Stéphane...
    Je patche donc mon installation 5.1 beta avec ton correctif !

    Et il y a une petite coquille dans ta regexp, il manque un pipe ... Le code doit être le suivant :
    if($arts = $this->plxMotor->plxGlob_arts->query('/^[0-9]{4}.(home|[0-9,]*).[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/'))
    
    PS : Je passe en RESOLU !
  • StéphaneStéphane Member, Former PluXml Project Manager
    à vérifier si avec le pipe ça fonctionne quand un article est affecté à plusieurs catégories.

    Consultant PluXml

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

  • JohanJohan Member
    Merci pour la précision...
    J'ai ajouté le pipe car le code ne fonctionnait pas chez moi !
  • StéphaneStéphane Member, Former PluXml Project Manager
    hum ça m’inquiète que tu dises que ça ne fonctionnait pas chez toi ^^, car ce regexp est utilisé à d'autres endroits dans le code de PluXml

    Consultant PluXml

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

  • JohanJohan Member
    Ha ?
    Ai-je oublié de mentionner que j'utilise la version beta en 5.1...
  • je confirme que sans le pipe, la fonction renvoie 0 article(s).
    avec le pipe, ça marche (ne tient pas compte des articles brouillon, même en multi-catégories)
  • StéphaneStéphane Member, Former PluXml Project Manager
    merci pour les infos, je vais controler le code de PluXml qui utilise le regexp que j'avais donné pour vérifier selon le contexte que cela fonctionne bien.

    Consultant PluXml

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

  • amowebamoweb Member
    Je propose ça, qui permet aussi de compter les articles non classés :
    if($arts = $this->plxMotor->plxGlob_arts->query('/^[0-9]{4}.(home|[0-9,])*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/'))
    
    Notez bien l'étoile qui s'est déplacée (ou qui a filée... :-) ).
    Ici le motif central est : (home|[0-9,])*
    On prend les articles qui ont soit home, soit un chiffre soit une virgule répété x fois.

    Pour les autres motifs de PluXml, à priori pas d'inquiétude, car le motif initialement proposé par Stéphane est utilisé dans PluXml pour une tout autre utilisation. Il sert à récupérer uniquement les articles en page d'accueil.
Connectez-vous ou Inscrivez-vous pour répondre.