[Résolu] Utilisation du système d'articles pour afficher des "Dates à venir"

TxoriTxori Member
septembre 2023 modifié dans Entraide

Bonjour,

J'essaie d'utiliser le système d'articles de PluXml pour proposer des "Dates à venir" sur un site internet.
En gros, au lieu de n'afficher que les articles ayant été publiés dans le passé, une page pourrait afficher les articles (d'une certaine catégorie) avec une date ultérieure, et ne plus les afficher quand la date est dépassée. Tout l'inverse du système actuel...

Auriez-vous des idées sur la manière d'opérer ?
Un plugin, une fonction faite maison... J'ai peur que ça n'entre directement en conflit avec la manière dont PluXml gère les articles en core...

Mots clés:

Réponses

  • 16 mars modifié

    Bonjour,

    Cette fonction de trie existe déjà dans PluXml .
    Par exemple :
    dans class.plx.show.php à la ligne 1064 , dans la fonction lastArtList() , les articles affichée sont tous ceux dont la date est égale ou inferieur à la date courante. if ($aFiles = $plxGlob_arts->query($motif, 'art', $sort, 0, $max, 'before')) {

    En remplaçant before par after , if ($aFiles = $plxGlob_arts->query($motif, 'art', $sort, 0, $max, 'after')) { cette fonction fait ce que tu souhaites en ne gardant que les articles égales ou postérieurs à la date courante.

    En fait ça se passe dans class.plx.glob.php ligne 137.

    Pour le plugin, il faudrait utiliser le hook 'plxShowLastArtList' pour cloner la fonction et remplacer before par after :)

    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 | 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

  • TxoriTxori Member
    mars 2023 modifié

    Ah ok. Du coup j'ai simplement modifié les lignes 1021:
    public function lastArtList($format = '', $max = 5, $cat_id = '', $ending = '', $sort = 'rsort', $when = 'before')
    et 1064:
    if ($aFiles = $plxGlob_arts->query($motif, 'art', $sort, 0, $max, $when)) {

    Ça fonctionne très bien. Merci !

  • @Txori voici une première ébauche de plugin, si cela correspond à ta description : https://github.com/gcyrillus/artToCome/tree/main


    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

  • AndreaAndrea Member

    C'est normal cette balise php fermante @gcyrillus-nomade ?

                echo self::BEGIN_CODE;
    ?>      
            $format = '<li><time>#art_date</time>:&nbsp;#art_title  </li>';
    

    https://github.com/gcyrillus/artToCome/blob/main/artToCome.php

    J'obtiens l'erreur suivante

    Fatal error : Call to a member function callHook() on null 
    file : /pluxml-5.8/data/pages/001.next-to-come.php 
    line : 4
    
  • C'est normal cette balise php fermante @gcyrillus-nomade ?

    oui , c'est une façon d'injecter directement des portions de code dans le code natif de PluXml.

    J'obtiens l'erreur suivante
    Fatal error : Call to a member function callHook() on null
    file : /pluxml-5.8/data/pages/001.next-to-come.php
    line : 4

    Il faut m'en dire plus, je n'ai pas ce genre de message d'erreur. C'est quoi cette uri ? /pluxml-5.8/data/pages/001.next-to-come.php


    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

  • AndreaAndrea Member

    En fait @gcyrillus-nomade ça "marche" bien ;) autant pour moi j'avais oublié d'ajouter au début de la page statique

    <?php global $plxShow; ?>
    
  • 19 mars modifié

    @Andrea
    Dans une page statique , c'est plxShow qui fait l'affichage, dans ce cas, pour appeler un hook ou une fonction plxShow, cela se fait via :

    $this->functiontruc(); . et <?php global $plxShow; ?> est inutile.

    Tu pourrais tout aussi bien aussi faire : <?php $plxShow = $this; ?>

    Pour appeler le hook depuis une page statique,

    la syntaxe <?php eval($plxShow->callHook('plxShowNextArtList')) ?>

    devient <?php eval($this->callHook('plxShowNextArtList')) ?>.

    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 | 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

  • AndreaAndrea Member

    Bien c'est noté @gcyrillus-nomade merci ;) pour ma culture générale

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