Un thème avec un affichage aléatoire

cyrillecyrille Member
juillet 2016 modifié dans Entraide
Bonjour,

A l'heure actuelle je suis en train de casser mon blog pour en faire plusieurs, on s'amuse comme on peut, et j'ai une partie pédagogique avec des articles de maths que j'aimerai bien mettre en ligne.

Il y a des choses en mathématiques qui sont immuables, si bien qu'il n'y a pas de sens à avoir un ordre chronologique, j'aimerai donc pouvoir faire un pluxml sur lequel quand on arrive on a une page simple avec un article aléatoire.

j'avais vu ça http://forum.pluxml.org/viewtopic.php?id=4575

Cyrille

Réponses

  • Creer une page statique qui serait la homepage et qui contiendrait le code donner par Stephane dans le lien que tu mentionnes?
  • PierrePierre Member
    juillet 2016 modifié
    et pourquoi pas tout simplement utiliser la fonction sur la home.php?

    <?php $plxShow->lastArtList('#art_content',1,'','','random'); ?>
  • @Pierre

    que je placerai à quel endroit et qui me pousserait à retirer quoi ?
  • PierrePierre Member
    juillet 2016 modifié
    Ça dépend de ce que tu veux qui apparaîsse dans la page. Tu peux même aller jusqu'à ne rien mettre d'autre dans le fichier home.php, donc retirer tout et ne mettre que:

    <?php $plxShow->lastArtList('#art_content',1,'','','random'); ?>


    C'est très dramatique et probablement que ça dépasse ton souhait, j'imagine que tu veux un certain formatage de la page. Tu auras le choix d'insérer ledit formatage à même la fonction (autour de #art_content) ou de laisser le header.php et utiliser une feuille de style. À ce moment, au retour de header.php, tu pourras possiblement préferer retirer toute la portion du menu pour épurer la page.
  • merci, je vais faire quelques essais.
  • bon je ne suis pas assez calé dans les entrailles de pluxml, il faut bien commencer un jour. Si je prends le home de base, imaginons que je veuille garder exactement la même structure, pour moi c'est un random je suppose au niveau de l'id de l'article à afficher, comment modifier la page pour avoir la cohérence. Trop complexe ?

    <?php include(dirname(__FILE__).'/header.php'); ?>

    <main class="main grid" role="main">

    <section class="col sml-12 med-8">

    <?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?>
    <article class="article" role="article" id="post-<?php echo $plxShow->artId(); ?>">


    <header>
    <h1>
    <?php $plxShow->artTitle('link'); ?>
    </h1>
    <small>
    <?php $plxShow->lang('WRITTEN_BY'); ?> <?php $plxShow->artAuthor() ?> -
    <time datetime="<?php $plxShow->artDate('#num_year(4)-#num_month-#num_day'); ?>"><?php $plxShow->artDate('#num_day #month #num_year(4)'); ?></time> -
    <?php $plxShow->artNbCom(); ?>
    </small>
    </header>

    <section>
    <?php $plxShow->artThumbnail(); ?>
    <?php $plxShow->artChapo(); ?>
    </section>

    <footer>
    <small>
    <?php $plxShow->lang('CLASSIFIED_IN') ?> : <?php $plxShow->artCat() ?> -
    <?php $plxShow->lang('TAGS') ?> : <?php $plxShow->artTags() ?>
    </small>
    </footer>

    </article>

    <?php endwhile; ?>

    <nav class="pagination text-center">
    <?php $plxShow->pagination(); ?>
    </nav>

    <span>
    <?php $plxShow->artFeed('rss',$plxShow->catId()); ?>
    </span>

    </section>

    <?php include(dirname(__FILE__).'/sidebar.php'); ?>

    </main>

    <?php include(dirname(__FILE__).'/footer.php'); ?>
  • En comprenant ce que chaque morceau fait là, ça aide à identifier ce qui est jugé "superflu" dans le cas présent et qu'on désire retirer de la vue.

    La page d'accueil est très courte avec des sections bien claires et identifiables par leurs balises de début et de fin. L'en-entête (header) commence avec sa borne d'ouverture <header> et se termine avec sa borne de fermeture </header>. En enlevant la section complète, d'une borne à l'autre, on fait disparaître toute l'en-tête de la page d'accueil, à ne pas confondre avec le fichier header.php qui comprend le menu etc. En expérimentant un peu, on peut éliminer des portions une à une et reculer en cas d'excès de scalpel. Quand on trébuche et que tout s'arrête, on remet le fichier original et on essaie de pas y passer l'été...
  • en fait ce que je cherche, c'est la partie qui ramène l'article. Je vais le faire à tâtons.
  • Attention, la page originale utilise une boucle (while...endwhile) pour extraire tous les articles qui ont la case cochée "page d'accueil" dans l'admin. Si tu veux toujours afficher aléatoirement un article seulement, il faudra retirer cette boucle (et tout entre son début et sa fin) et la remplacer par la fonction décrite au début. C'est de là que s'affiche l'article.
  • sur le principe ça donne quelque chose comme ça : https://cyrille-borne.com/prof/ mais ce qui m'intéresse c'est d'arriver à la même présentation avec le titre, l'article en entier par exemple :), etc ...

    J'imagine qu'on doit bien récupérer le numéro de l'article quelque part et pouvoir le passer en variable ou une variante de façon simple ?
  • PierrePierre Member
    juillet 2016 modifié
    C'est la fonction lastArtList qui fait tout ça, il ne reste qu'à écrire correctement la portion $format de cette fonction. Voir la documentation sur le wiki, c'est une des fonctions les plus élaborées et elle a une bonne section d'explications. Par exemple, pour reproduire exactement la page d'acceuil, cette variable ($format) contiendrait:

    '<article class="article" role="article" id="post-#art_id">

    <header>
    <h1>
    #art_title
    </h1>
    <small>
    par : #art_author -
    <time datetime="#art_date">#art_date</time> -
    #art_nbcoms
    </small>
    </header>

    <section><img src="#img_url">
    #art_content
    </section>

    <footer>
    <small>
    classé dans : #cat_list
    </small>
    </footer>

    </article>'


    ce qui est une copie de ce qui se trouve à l'intérieur de la fameuse boucle WHILE de la page home.php
  • J'ai fait quelques erreurs dans le contenu transposé de la boucle, je vais faire les corrections directement dans le billet précédent.
  • et cette variable, Pierre, je dois la déclarer à quel endroit ?
  • Elle fait partie des paramètres de la fonction lastArtList(), voir sa documentation. C'est le paramètre qui vient en premier.

    On reprend notre <?php $plxShow->lastArtList('METTRE ICI',1,'','','random'); ?> du début
  • je viens de comprendre, merci, en fait en jetant un coup d'oeil sur l'édito de Stéphane j'ai réussi à faire en gros ce que je voulais, j'ai compris après ce que tu as écrit
  • “À force de lire on finit par comprendre qu'à force de lire on finit par comprendre.”
  • j'ai fini par utiliser un des thèmes que tu avais mis en place pour la précédente version, le thème est amusant et a un petit côté enfantin en rapport avec la pédagogie, par contre est ce qu'il y aurait une astuce pour afficher une page statique avec l'ensemble des articles ?
  • lastArtList fonctionne sur une page statique en lui ajoutant une ligne au début pour démarrer une instance de plxMotor, tu peux fouiller sur les rubriques d'aide pour la référence.
  • voilà je viens de le réaliser, ça continue d'avancer
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour

    a la demande de Cyrille, je me suis penché sur le sujet
    voilà qui simplifiera la vie. y aura pas besoin de modifier les fichiers du theme

    https://github.com/pluxml/PluXml/commit/631c97439e8ac052f4c57d44d18b88b65c64c32d

    en attendant que ce soit dans la prochaine sortie officielle, tu peux reporter les modifs manuellements (ça tient en moins de 10 lignes) sur les fichiers suivants:

    core/admin/parametres_affichage.php
    core/lang/fr/admin.php
    core/lib/class.plx.motor.php

    suffira après d'aller dans Paramètres > Options d'affichage et de choisir 'aléatoire' dans le déroulant 'Tri des articles'
    cela concerne les articles affichés sur la page d'accueil.

    Consultant PluXml

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

  • StéphaneStéphane Member, Former PluXml Project Manager
    bon du coup je vais rajouter cette option également dans l'affichage des articles par catégories pour avoir l'option "aléatoire" au niveau de la gestion des catégories, colonne "Tri des articles"

    Consultant PluXml

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

  • StéphaneStéphane Member, Former PluXml Project Manager

    Consultant PluXml

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

  • Merci Stéphane pour ton intervention.

    Pierre, pendant que je te tiens, si je passe le theme en mobile, j'ai menu qui s'affiche, mais pas de menu qui s'affiche. Je ne sais pas si je suis clair. Il y avait de plus une "erreur" dans ce thème, le dessin avec les animaux pointait vers un lien mort.
  • C'est presque nostalgique de revisiter le tout premier thème que j'ai converti. Il avait été fait pour une seule personne qui hésitait entre deux thèmes Wordpress, j'imagine qu'elle a pris l'autre (celui avec les ballons mobiles) et que celui-ci n'a pas attiré assez l'attention pour être installé. L'erreur était assez simple, tout le répertoire des javascript avait été omis pour des raisons pas très claires.

    J'ai fait une mise à jour du thème dans Ressources juste au cas. SI jamais tu avais travaillé sur des fichiers et ne voulais pas les écraser avec cette mise à jour, tu peux simplement copier le répertoire "js" dans le répertoire du thème et tout fonctionnera.
  • Pierre, soit je fatigue, soit le thème a disparu.

    Je note un bug sur le site : http://ressources.pluxml.org/?page9 si je passe en page 10 j'ai une erreur 404
  • StéphaneStéphane Member, Former PluXml Project Manager
    cyrille a écrit:
    Pierre, soit je fatigue, soit le thème a disparu.

    Je note un bug sur le site : http://ressources.pluxml.org/?page9 si je passe en page 10 j'ai une erreur 404

    Le thème était en attente de validation, car Pierre a fait des modifs.
    Je viens de la valider. il est de nouveau visible dans la partie ressources

    Consultant PluXml

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

  • merci à vous deux
Connectez-vous ou Inscrivez-vous pour répondre.