tri des articles

bonjour
est-ce qu'il est possible de trier les articles simplement par leur numéro dans la partie administration.
Merci

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,
    Non!
    Le tri des articles est sélectionné dans paramètres d'affichage.
    A voir éventuellement dans la prochaine version de PluXml si cela représente un intérêt.
    Sous réserve que cela ne change pas l'ordre d'affichage côté site. A priori non.

  • JoséJosé Member

    Merci Bazooka.

    cela m'étonnait que le tri par numéro n'ait pas été retenu. oui à voir pour une prochaine version si cela se révèle utile.
    je ne trouve pas dans quel fichier se fait le tri des articles en fonction du

  • JoséJosé Member

    je ne trouve pas dans quel fichier se fait le tri des articles en fonction du paramètre tri

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    16 sept. modifié

    @José
    Dans core/index.php, la liste des articles est récupérée par $plxAdmin->getArticles(...) qui une fonction dérivée de son ancêtre plxMotor.
    Cette fonction appelle à son tour plxGlob_arts->query(..), plxGlob_arts étant un objet plxGlob
    Et plxGlob::query() trie en fonction du paramètre $tri les données récupérées par plxGlob::search().
    Note que le tri par n° d'articles n'est pas encore implémenté dans PluXml, pas plus que le tri par auteur
    Les clés du tri sont générés par plxGlob::search().

  • 16 sept. modifié

    Bonsoir,

    Peut tu ajouter et tester si cela repond à ton besoin:

                    usort($plxAdmin->plxRecord_arts->result, function ($a, $b) {
                        return $a['numero'] <=> $b['numero'];
                    })
    

    dans le fichier core/admin/index.php, environ ligne 174 juste aprés la ligne if($arts) { # on a des articles

    Pour un tri ascendant sur "numero"

                usort($plxAdmin->plxRecord_arts->result, function ($a, $b) {
                    return $b['numero'] <=> $a['numero'];
                })
    

    ou pour un tri descendant sur "numero" .

    Je suis allé au plus prés de l'affichage sans chercher si la maj du tableau des articles pouvait se faire plus en amont coté admin.

    cdt

    Logiquement, un blog tri les articles par date :) , ce qui explique pourquoi cette option n'existe pas, car peu ou pas pertinente.


    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

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Si tu n'as pas besoin du tri alphabétique, modifie dans le fichier core/lib/class.plx.glob.php dans la fonction search() ligne n°143 comme suit :

    $key = ($tri === 'alpha' OR $tri === 'ralpha') ? $index[0] : $index[3].$index[0];
    

    Et choisis dans options d'affichage "alphabétique" pour le tri des articles.

    Si tu veux uniquement trier par numéro dans l'administration, forces le type de tri dans core/admin/index.php comme suit :

    # Traitement
    $plxAdmin->prechauffage($motif);
    $plxAdmin->getPage();
    $plxAdmin->tri = 'ralpha';
    $arts = $plxAdmin->getArticles('all'); # Récupération des articles
    
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
  • JoséJosé Member

    Merci à vous deux. J'apprécie beaucoup, comme à chaque fois les explications qui accompagnent les réponses. Vous êtes dans le partage, c'est super...

    J'ai retenu la solution de Bazooka et j'ai modifié le fichier core/lib/class.plx.glob.php dans la fonction search() ligne n°143. Bien sûr, ça fonctionne.

    Comme j'ai ajouté l'option de tri 'numero' dans le fichier core/admin/parametres_affichage.php ligne 48

    Tableau du tri

    $aTriArts = array(
    'desc' => L_SORT_DESCENDING_DATE,
    'asc' => L_SORT_ASCENDING_DATE,
    'alpha' => L_SORT_ALPHABETICAL,
    'ralpha' => L_SORT_REVERSE_ALPHABETICAL,
    'random' => L_SORT_RANDOM,
    'numero' => L_SORT_NUMERO

    il me reste à écrire le choix conditionnel sur $tri.
    mais il me manque quelques notions. patience

  • Bonjour,

    Tu veut ce tri possible autant possible coté admin que visiteur , ou seulement coté admin ?


    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

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Plutôt que d'utiliser numero, je préfère art_id pour rester homogène au code de PluXml. Il faut aussi prévoir le tri inversé. Ce qui donne :

    # Tableau du tri
    $aTriArts = array(
        'desc'  => L_SORT_DESCENDING_DATE,
        'asc'   => L_SORT_ASCENDING_DATE,
        'alpha' => L_SORT_ALPHABETICAL,
        'ralpha'    => L_SORT_REVERSE_ALPHABETICAL,
        'art_id'    => L_SORT_ART_ID,
        'rart_id'   => L_SORT_REVERSE_ART_ID,
        'random'    => L_SORT_RANDOM,
    );
    

    Il faut prendre en compte les nouvelles possibilités de tri dans class.plx.glob.php. Dans la fonction search(), on calcule maintenant la valeur de $key comme ceci :

    switch($tri) {
        case 'alpha':
        case 'ralpha':
            $key = $index[4] . '~' . $index[0];
            break;
        case 'art_id':
        case 'rart_id':
            $key = $index[0];
            break;
        default: # tri par date
            $key = $index[3].$index[0];
    }
    

    Et pour finir, on rajoute les nouveaux choix de tri dans la function query() :

    if (!empty($tri)) {
        switch ($tri) {
            case 'random':
                shuffle($rs);
                break;
            case 'alpha':
            case 'asc':
            case 'sort':
            case 'art_id': #  nouveau
                if (!empty($type)) {
                    ksort($rs);
                } else {
                    sort($rs);
                }
                break;
            case 'ralpha':
            case 'desc':
            case 'rsort':
            case 'rart_id': # nouveau
                if (!empty($type)) {
                    krsort($rs);
                } else {
                    rsort($rs);
                }
                break;
            default:
        }
    }
    

    Reste plus qu'à rajouter les nouvelles traductions dans les fichiers de langues core/lang/??/admin.php.

    Il y a un intérêt à avoir un choix de tri dans l'administration indépendant du côté site ?

  • 17 sept. modifié

    Il y a un intérêt à avoir un choix de tri dans l'administration indépendant du côté site ?

    Cela dépend de ce qui incite à faire le tri sur le numéro de l'article plutôt que la date et si celui-ci est ponctuel.

    Le tri par numéro d'article est généralement le même que si l'on triait par date de création (sauf à remplir des trous si des articles ont été supprimés)

    Dans l'admin , nous avons ces choix de tris : Tous | Publiés | Brouillons| En attente de validation
    Puis un filtrage supplémentaire tous | page d’accueil | non classé | categorieX

    coté front, le tri se fait sur les articles publiés et le filtrage par l'url ( acceuil, categorie, tag, archive)

    Enfin, l'affichage des articles trouvés se fait alors en fonction de la date de publication et du tri d'affichage défini dans l'admin , autant pour le front que le backend.

    En gros, je suis resté sur :

    est-ce qu'il est possible de trier les articles simplement par leur numéro dans la partie administration.

    Qui ne parle que du coté administration ;)

    Je m'interrogé alors si il ne souhaitait pas avoir :

    Dans l'admin , ces choix de tris :
    Tous | Publiés | Brouillons| En attente de validation | Tous, ordre ascendant | Tous, ordre descendant

    ou quelque chose de similaire et à la demande.


    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

  • JoséJosé Member

    Pour moi c'est nickel. Merci

    Le tri, côté administration, me sera utile pour faire le transfert d'articles par FTP entre répertoire local et répertoire sur site. Dans les répertoires, les articles sont classés par nom de fichier ( donc par art_id ). Avec la liste des articles page admin/index triés par art_id, je vois mieux les articles que je veux transférer.

    ( mes connaissances en php ne m'auraient pas permis de m'en sortir. )

  • krockroc Member

    C'est une bonne idée à ajouter à une prochaine version !

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