Trier une liste d'articles alpha inverse

Bonjour à tout le monde,
j'avoue être un eu honteux, car je cherche une aide depuis plusieurs jours (pas à temps plein, je vous rassure :) pour trier me liste d'articles en alpha inversé sur le titre. Or je sèche lamentablement !

Je m'explique:
chaque article est le compte rendu d'une année. Un article par année. Le titre de l'article EST l'année en chiffre et je voudrais afficher la liste des articles en commençant par l'année la plus grande (ie la dernière).
exemple:
330 AUC
329 AUC
328 AUC
328 AUC
etc

Une âme charitable pourrait-elle me donner une idée ? merci :)

mon code:
[== Indéfini ==]
<?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?>

					<article class="article" id="post-<?php echo $plxShow->artId(); ?>">

						<header>
							<h4>
								<?php $plxShow->artTitle('link'); ?>
							</h4>
							
						</header>

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    décembre 2017 modifié
    Ta question est bizarre.

    PluXml permet de trier les articles, d'une façon générale ou pour une catégorie précise selon un des critères suivants :
    * par date décroissante, par défaut
    * par date croissante
    * par ordre alphabétique
    * tri aléatoire
    Donc si tu as édité chaque article au bon moment, tes articles devraient être listés dans l'ordre souhaité.
    Si ce n'est pas le cas tu peux modifier la date de création dans la page d'édition de chaque article.

    Si tu tiens vraiment à un tri alphabétique inversé, il faut te préparer à mettre les mains dans le cambouis et à modifier le code de PluXml.
    * fonction plxGlob::query(..) ligne #178
    * fonction plxMotor::getArticles(...) ligne #609
    * IFHM dans categories.php
    * IFHM dans parametres_affichage.php

    IFHM : interface femme/homme machine :)
  • Merci Bazooka pour ta réponse rapide !

    Avant de plonger dans le bain du code (ou d'essayer), je précise ma demande car il se peut que je n'aie pas été assez clair;

    Tu mentionnes: "* par ordre alphabétique". J'ai testé cette option. j'obtiens mes articles triés par alpha sur le titre. C'est déjà ça...
    => Mais, j'aimerais le même tri inversé (ie que s'affiche l'année la plus grande en premier)

    PS: en fait, il s'agit de la reprise d'un site sous spip qui a été piraté il y a plusieurs années et que l'on me réclame. Donc les articles ne vont pas être saisis forcément dans l'ordre désiré... (http://limul.info/wikiRomejpem/index.php?categorie1/rubrique-1)
  • StéphaneStéphane Member, Former PluXml Project Manager
    limul a écrit:
    PS: en fait, il s'agit de la reprise d'un site sous spip qui a été piraté il y a plusieurs années et que l'on me réclame. Donc les articles ne vont pas être saisis forcément dans l'ordre désiré... (http://limul.info/wikiRomejpem/index.php?categorie1/rubrique-1)

    Bonjour

    Tu peux changer manuellement la date de création de l'article pour lui redonner la date originale: panneau de droite sur la page de rédaction/modification de l'article

    Consultant PluXml

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

  • Merci Stéphane, je vais leur dire de faire comme ça pour démarrer :)
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Rajouter un tri alpha inversé n'est pas très compliqué.
    Juste une ligne à rajouter ou modifier à 4 ou 5 endroits, hors les 9 langues.

    Tu sais te servir de Git ?
    Tu es sous Windows ?
    Tu as combien d'articles sous Spip à récupérer ?

    "330 AUC" n'est pas un titre très pertinent pour le visiteur. Ni pour se faire bien référencer
  • Bazoka,

    Je ne sais pas me servir de Git, suis sous W10 et il y a plusieurs centaines de pages à reprendre.

    Il s'agit d'un jeu de rôle sur la Rome républicaine qui fonctionne depuis 2003. Il a donc une histoire énorme. Il a démarré en 200 AUC (ab urbe condita) et nous sommes actuellement en 404 AUC. Il y a donc au moins 204 pages à re-saisir :)

    Je veux bien modifier le coeur du code, mais cela ne causera-t-il pas de problèmes lors des mises à jour de version ?
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    décembre 2017 modifié
    Pour aller au plus simple pour toi, il y a une archive PluXml-ralpha.zip à télécharger à cette adresse :
    http://kazimentou.fr/divers/PluXml/
    L'archive contient un critère de tri supplémentaire "ralpha"

    Pour ceux qui connaissent git ( branche ralpha ) :
    [== bash ==]
    git clone https://github.com/bazooka07/PluXml.git -b ralpha
    

    Basé sur le dernier pull request accepté sur le dépôt PluXml/PluXml.

    Aucun souci avec la prochaine version de PluXml, la structure de données n'est pas changée pour l'instant.

    Pour 204 articles, il y a peut-être un intérêt à faire une moulinette pour importer les articles depuis Spip.
    Il faut avoir des compétences en MySQL et cela prendra un peu plus de temps

    Quelqu'un avait planché sur le sujet, il y a 3 ans mais son projet semble avoir été oublié (Faire une recherche sur Google avec "spip pluxml")

    Tu utilises quelle version de Spip ?
    Tu connais phpMyAdmin ?
  • 1- Ascii inversé c'est pile-poil ce dont j'ai besoin ! Comment puis-je installer cette version ? Quels sont les fichiers à remplacer ?
    2- pour SPIP de mémoire, ça doit être du SPIP 2.0, je connais My-SQL et phpMyAdmin.
    Spip => PluXml: http://forum.pluxml.org/viewtopic.php?id=1600 ! Je regarde ça demain soir !

    merci beaucoup pour ces pistes et conseils !
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Installe le à côté du PluXml que tu utilises et remplace le dossier data avec ce que tu as déjà.

    Tu peux sortir le schéma de la base de données, avec par exemple les 10 derniers articles pour avoir un jeu de données pour tester ?
  • limullimul Member
    décembre 2017 modifié
    Déjà, voici le lien contenant les éléments de ma base SPIP:
    http://limul.info/rome/BdDCodex.zip
    :)
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour
    J'ai ajouté le tri alpha inversé en natif dans PluXml
    Dispo sur la version de github: https://github.com/pluxml/PluXml

    Merci JP (aka bazooka07) pour les modifs

    Consultant PluXml

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

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    @limul,

    Pour pouvoir avancer, il faudrait m'exporter le résultat des requêtes SQL suivantes avec phpMyAdmin :
    [== SQL ==]
    select * from spip_rubriques;
    
    select * from spip_auteurs_articles
        where id_article <= 30;
    
    select id_auteur, nom, bio, email, login, statut, webmestre from spip_auteurs
    	where id_auteur in (
    		select id_auteur from spip_auteurs_articles
    		where id_article <= 30
    	);
    
    select * from spip_mots;
    
    select * from spip_mots_articles
        where id_article <= 30;
    

    J'ai testé les requêtes avec PhpMyAdmin.

    Cela me permettra d'avoir un jeu d'essai complet pour faire des essais.

    D'après ce que tu m'as donné précédemment, tu as dans les 300 articles
    [== SQL ==]
    select count(*) from spip_articles;
    
  • Bonsoir Bazooka,

    377 enregistrements.

    Le contenu des 4 requêtes est ici => http://limul.info/rome/spip_auteurs_articles_mots.zip
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    décembre 2017 modifié
    Il y avait 5 requêtes.

    Tu as oublié la 1ère requête :
    [== SQL ==]
    select * from spip_rubriques;
    
    Les rubriques correspondent aux catégories de PluXml, mais sans groupe ou sous-groupe.
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    @limul,

    Je t'ai préparé le plugin kzSQLimport pour importer les données depuis Spip 2.29.
    D'après le jeu de données, cela semble pas trop mal marché.
    Télécharger le plugin kzSQLimport
    Je suis parti avec l'optique de pouvoir importer des articles depuis n'importe quelle base SQL. ( Wordpress n'est pas encore dans mon radar)
    Pour l'instant, il marche seulement avec Spip 2.29.

    Si tu as déjà PluXml installé, le mieux est de créer un nouveau répertoire pour recevoir les données importées. Trois fois hélas, PluXml ne sait pas faire cela !
    Tu peux faire cela avec le plugin moveMyDatas et ainsi basculer d'un répertoire à l'autre.
    Télécharger le plugin moveMyDatas
    Tu dois avoir un pilote mySQL installé sur ton serveur Web (librairie PDO)
    Dans le panneau de config, renseigne le nom de la base, login et mot de passe pour se connecter dessus.
    Si tu as saisi les bonnes infos, tu as un aperçu pour quelques tables.
    Tu cliques ensuite dans le menu de gauche sur "import SQL" et tu coches au choix une à trois cases et sur le bouton importer.
    Tous les mots de passe des utilisateurs sont ré-initialisés à la valeur du login :
    login : limul
    password: limul

    Quelques remarques :
    * PluXml ne gére pas les groupes de rubriques mais les articles peuvent appartenir à plusieurs rubriques
    * Les sous-titres sont mis dans le champ meta_description. Pour afficher dans le theme, utilise la commande qui figure normalement dans le header de la page HTML :
    <?php $plxShow->meta('description') ?>
    * les entités html des articles ont été transformés en caractères utf-8
    * les liens entre articles ont été mis à jour
    * je n'ai pas vu d'image dans tes articles.

    Je n'ai pas trouvé comment Spip 2.0 gère le lien entre le logo et un article. Apparement, cela n'est pas géré par SQL.

    Ce n'est qu'une version béta. Donc on travaille avec des sauvegardes.

    Bon amusement.
  • bazooka, je te remercie infiniment pour tout le boulot que tu as fait pour moi que tu ne connais pas et qui débarque tout juste sur le forum !
    Je t'en suis extrêmement reconnaissant.

    C'est un beau cadeau au réveil !

    Je vais tester tout ça rapidement (ce week-end je pense avoir le temps) et te fais un retour immédiat.
Connectez-vous ou Inscrivez-vous pour répondre.