[PLUGIN]prevNext : afficher des liens prev/next à la fin d'un article

Jerry WhamJerry Wham Member
janvier 2014 modifié dans Plugins
Bonsoir,

Un nouveau plugin tout simple écrit il y a un moment déjà mais que je n'avais jamais publié, qui permet d'afficher un lien vers l'article suivant (ou précédent) au bas d'un article.
Les articles affichés peuvent être seulement ceux d'une catégorie (comportement par défaut, premier paramètre à true) soit tous les articles quelle que soit la catégorie (premier paramètre à false).

Il faut utiliser le hook prevNext, avec éventuellement des paramètres optionnels.

Exemple d'utilisation du hook, à mettre dans le fichier article.php :
<?php echo $plxShow->callHook('prevNext',array(
				true,
				'<p style="float:left;margin-top:0"><a href="#prevUrl" rel="prev">&laquo; #prevTitle</a></p>'."\n\t\t\t\t\t",
				'<p style="text-align:right;"><a href="#nextUrl" rel="next">#nextTitle &raquo;</a></p>'
			)); ?>
Pour le formatage des liens, les attributs sont :
#prevUrl
#prevTitle
#prevArt
#nextUrl
#nextTitle
#nextArt

Enjoy :P

PS : Pensez à supprimer le suffixe "-master" ajouté par Github au dossier du plugin.

Historique :
19/01/2014 : V 1.0
«1

Réponses

  • bg62bg62 Member
    février 2014 modifié
    grandS merciS à toi, une fois encore !
    peux-tu m'expliquer ce que signifie ceci :
    [== PHP ==]
    ."\n\t\t\t\t\t",
    
    pas tout compris là ...
    j'ai testé avec ceci :
    [== PHP ==]
    					<p>à voir également :<?php echo $plxShow->callHook('prevNext',array(
    				true,
    				'<p style="float:left;margin-top:0"><a href="#prevUrl" rel="prev">&laquo; #prevArt : #prevTitle </a></p>'."\n\t\t\t\t\t",
    				'<p style="text-align:right;"><a href="#nextUrl" rel="next">#nextArt : #nextTitle &raquo;</a></p>'
    			)); ?></p>
    
    mais j'aimerais pouvoir faire deux choses:
    - rendre les termes 'article précédent' et 'article suivant' non cliquables
    - réussir à mettre un séparateur entre les deux, juste simplement un " | " par exemple
    -- éventuellement y-a-t-il une option permettent d'afficher, le chapô ou les x premiers caractères des articles ?
    @+

    second essai :
    [== PHP ==]
    					<p>article précédent :<?php echo $plxShow->callHook('prevNext',array(
    				true,
    				
    								'<!--<p style="float:left;margin-top:0">--><a href="#prevUrl" rel="prev">&laquo; #prevTitle</a></p>'."\n\t\t\t\t\t",
    				
    			)); ?>
    												| article suivant :<?php echo $plxShow->callHook('prevNext',array(
    				true,
    				
    				
    								'<!--<p style="text-align:right;"margin-top:0">--><a href="#nextUrl" rel="next">#nextTitle &raquo;</a></p>'
    			)); ?></p>
    
    qui me convient déjà mieux, mais je ne sais pas où et comment supprimer l'affichage de " Article suivant " qui reste cliquable et à la fin des deux ...
  • StéphaneStéphane Member, PluXml Former Project Manager
    \n = retour chariot
    \t = tabulation
    ça permet d'avoir une belle indentation du code quand tu regardes les sources de la page générée par le plugin

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Stéphane a écrit:
    \n = retour chariot
    \t = tabulation
    ça permet d'avoir une belle indentation du code quand tu regardes les sources de la page générée par le plugin
    merci Stéphane, on s'est croisés :)
    je coince encore sur une chose, je viens juste d'éditer le post précédent, si tu peux voir
    @+
  • <p>à voir également :<?php echo $plxShow->callHook('prevNext',array(
    				true,
    				'<p style="float:left;margin-top:0">&laquo; #prevArt : <a href="#prevUrl" rel="prev">#prevTitle </a></p>|'."\n\t\t\t\t\t",
    				'<p style="text-align:right;"><a href="#nextUrl" rel="next">#nextTitle</a> : #nextArt  &raquo;</p>'
    			)); ?></p>
    

    Il n'y a pas d'option pour afficher le contenu du chapo/corps de l'article.
  • mais vous codez plus vite que votre ombre comme d'hab !!!
    si je mets ceci :
    [== PHP ==]
    					<p>à voir également :<?php echo $plxShow->callHook('prevNext',array(
    				true,
    				'<p style="float:left;margin-top:0">&laquo; <a href="#prevUrl" rel="prev">#prevTitle </a><!--</p>-->&laquo;|&raquo;'."\n\t\t\t\t\t",
    				'<!--<p style="text-align:right;">--><a href="#nextUrl" rel="next">#nextTitle</a>   &raquo;</p>'
    			)); ?></p>
    
    ça tourne, mais ai-je fait une erreur de syntaxe ou pas ???
    si c'est bon, j'adopte ;)
  • Jerry WhamJerry Wham Member
    février 2014 modifié
    Vaut mieux faire ça alors :
    					<p>à voir également :<?php echo $plxShow->callHook('prevNext',array(
    				true,
    				'&laquo; <a href="#prevUrl" rel="prev">#prevTitle </a>&laquo;|&raquo;'."\n\t\t\t\t\t",
    				'<a href="#nextUrl" rel="next">#nextTitle</a>   &raquo;'
    			)); ?></p>
    
    
  • @Jerry Wham
    grandS merciS encore, c'est en ligne :)
  • Je profite que l'on reparle de ce plugin pour signaler un bug (en tout cas dans mon environnement de test) : lorsqu'un article est en attente de validation, il est pris en compte dans les liens "précédents/suivants".

    Exemple : à la fin de cet article (http://test.rock-anecdotes.fr/113-du-rock-au-superbowl), entre les informations sur l'auteur et le commentaires, on peut voir un lien vers "Child In Time ou l'histoire de loosers magnifiques...", alors que cet article n'est pas publié (d'ailleurs, le lien redirige vers la page 404)...

    Si l'auteur du plugin a une idée pour pallier à ce problème... ;)
  • Ah bien vu. Je vais me pencher sur le problème. Merci de la remontée du bug.
  • Merci pour ce plugin qui m'a fait gagner du temps :cool:

    Pas un bug mais une suggestion : renvoyer en sortie un tableau avec les liens "suivant" et "précédent" séparés de manière à faciliter leur utilisation lorsqu'ils ne sont pas affichés collés l'un à l'autre.

    Dans mon cas, un autre plugin est appelé entre les 2 liens. Je m'en suis sorti avec un explode mais ça serait + simple si ils étaient retournés déjà séparés.
  • Je me suis permis de reprendre le code, en supprimant les options qui ne m'intéressaient pas pour l'intégrer à un plugin tout prêt pour un thème.
    Bien évidemment, j'ai laissé les crédits !

    Ca te gêne ou pas ?
  • @Hamtaro : si ça me génait, je n'aurais pas partagé ]:D
  • Je pensais bien mais ça fait pas de mal de demander :p
  • helioshelios Member
    juillet 2015 modifié
    Déjà merci pour ce plug in qui va me servir. C'est interressant de proposer un système de navigation post/post aux visiteurs.
    J'ai juste modifier la façon de faire car mes titres sont trop long (par souci d'un référencement optimiser) pour entrer en dessous du poste et donc génant pour la lecture. J'ai opter pour ma part sur ceci :
    [== PHP ==]
    <?php echo $plxShow->callHook('prevNext',array(
    				true,
    				'<p style="float:left;margin-top:0"><a href="#prevUrl" data-tip="#prevTitle" rel="prev">&laquo; ARTICLE PRECEDENT</a></p>'."\n\t\t\t\t\t",
    				'<p style="text-align:right;"><a href="#nextUrl" data-tip="#nextTitle" rel="next">ARTICLE SUIVANT &raquo;</a></p>'
    			)); ?>
    
    Donc rien de grandiose j'ai mis Précédent et suivant qui prends moins de place.
    Et, Je n'ai pas changer grand chose juste j'ai attribuer une info bulle avec l'attribut data-tip à qui j'ai affecté :#prevTitle et #nextTitle. Jusqu'à présent je ne pensais pas pouvoir changer l'infobulle traditionnelle titlle ou acronym mais grâce à alsacréations j'ai pu comprendre que c'étais possible avec data-tip en lui affectant un css correspondant:
    [== CSS ==]
    [data-tip] {position: relative;cursor: help;border-bottom: 1px dotted #aaa;}
    [data-tip]:hover:after {content: attr(data-tip);position:absolute;
    top: 1.5em; left: 0;white-space: nowrap;padding: 5px 10px;background: #008080;color: #fff;}
    

    Ce nest pas énorme mais si défois quelqu'un aurais le même soucis c'est une alternative correct.
    Pour infos ils vont plus loin ici http://codepen.io/raphaelgoetter/pen/KwzerV
    De plus en mettant en css il sera réutilisable pour la formation des articles pour les abréviations par exemples en infobulle donc rien de perdus.

    Dans tous les cas je feuillette votre site et apprends à me servir de pluxml. ;)
  • Merci helios pour cette astuce intéressante et bon apprentissage de PluXml ! :)
  • Bon ben j'ai finaliser le tout en personnalisant le code d'avant.
    [== CSS ==]
    [data-tip] {position: relative;border-bottom: 1px dotted #aaa;}[data-tip]:hover:after {content: attr(data-tip);position:absolute;top: 2.1em; left: 0;white-space: nowrap;padding: 5px 10px;background: #008080;color: #fff;}
    
    Comme on peut le voir j'ai virer cursor : help; qui mettais le ?.

    Comme cela on a le curseur plus généraliste.
    Dans le code Html incluant l'appel au fichier prev j'ai définis ainsi:
    [== PHP ==]
    <?php echo $plxShow->callHook('prevNext',array(
    				true,
    				'<p style="float:left;" class="more"><a href="#prevUrl" data-tip="#prevTitle" rel="prev">← ARTICLE PRECEDENT</a></p>'."\n\t\t\t\t\t",
    				'<p style="float:right;" class="more"><a href="#nextUrl" data-tip="#nextTitle" rel="next">ARTICLE SUIVANT →</a></p>'
    			)); ?>
    

    Tout simplement en icluant le CSS class="more" pour récupéré la classe de mon style bouton. Cela adhère mieux aux thème et permet d'avoir quelque chose de propret voila le résultat en passant le curseur pour aller dans article suivant.

    i6dm.png

    Ca c'est fait. Maintenant je vais m'attaquer à la personnalisation des boutons sociaux.Je regarde aussi entre 2 le tutoriel pour créé un plug in.
    En tout cas je commence à m'y habituer et il est plus accessible que dupral, phpbb et fluxbb.
  • bg62bg62 Member
    et un petit soucis de plus ....
    jusque la version 5.4 = aucun soucis
    passage à 5.5 = message d'erreur :
    ......info5.5\plugins\prevNext\prevNext.php on line 87
    Si vous avez la solution ...
    @+
  • Mets l'ensemble du message d'erreur si tu veux une aide...
  • bg62bg62 Member
    Jerry Wham a écrit:
    Mets l'ensemble du message d'erreur si tu veux une aide...
    voilà :)
    FDgiB0bAFaH_jerry.jpg
    j'espère que ça te suffira pour comprendre le problème ...
    @+
  • Tu peux commenter (en mettant // devant) la ligne 87 ou carrément la supprimer. Ça devrait fonctionner.
  • bg62bg62 Member
    avril 2016 modifié
    Jerry Wham a écrit:
    Tu peux commenter (en mettant // devant) la ligne 87 ou carrément la supprimer. Ça devrait fonctionner.
    merci je vais essayer et je te tiens au courant ...
    OK nickel = ça fonctionne , MERCI !
    MAIS l'on m' a fait une remarque:
    // = peut foutre le bazar avec d'autres 'appels'
    # = là je ne sais pas
    est-ce que cela dépend des versions de php ou autres codages ???
    @+
  • fanyfany Member
    Bonjour,

    J'ai profité de ce plugin aussi. Je trouve qu'il améliore la navigabilité d'un blog. Merci beaucoup.
    Installation sans soucis de mon côté.
  • Merci beaucoup Jerry Wham, c'est propre et tout.
  • Je t'ai fait une pull request sur le GitHub :)
  • krockroc Member
    décembre 2019 modifié

    Bonjour,

    Pouvez-vous m'indiquer comment inverser les boutons "prev" et "next", ou en tout cas leur fonction ?

    J'ai l'impression qu'il y a un paramètre optionnel (sort, rsort) mais je ne parviens pas à l'utiliser.

    Merci d'avance !

  • Bonjour,

    Je ne sais pas si quelqu'un saurait me répondre, mais je cherche à naviguer au sein d'une même catégorie avec des liens avant/après.
    Le plugin PrevNext propose un "true" pour indiquer la navigation au sein d'une catégorie, mais comment spécifier de quelle catégorie il s'agit ?

  • Franck-AWOFranck-AWO Member

    Bonjour,

    Les liens prev/next ne s'affichent plus depuis la màj pluxml de 5.8.2 à 5.8.6 :-/

    Config :

    • même comportement pour Firefox 78.10.0esr (64 bits) et Chromium Version 90.0.4430.93
    • PluXml version 5.8.6 (encodage UTF-8)
    • Version de PHP : 7.4.8
    • Visible ici https://80hg.org

    D'autres cas ? Des pistes ?

  • bonsoir @Franck-AWO ,

    Sans vouloir être désagréable ni donner de leçon a qui que ce soit, a mon humble avis et expériences en générale, une mise à jour n'a souvent d’intérêt que lorsque celle-ci améliore l'usage que tu as de l'application ou quel a un intérêt majeure en terme de sécurité, il y a aussi accessoirement la version de PHP qui tourne sur ton serveur qui nécessite une mise à jour des scripts.

    Peut-être est-il plus raisonnable de ne pas faire cette mise à jour si ton site fonctionne correctement.

    Il est bien sur intéressant de savoir que tel ou tel plugin ne fonctionne plus, apparemment la version 5.8.5 est celle ou des changements important ont eu lieu, peut-être peut tu te contenter de cette version pour une mise à jour pour le moment si tes plugins n'ont pas d'incompatibilité avec.

    Une autre version majeure, la 6, semble venir à l'horizon, ça peut valoir le coup d'attendre celle-ci et voir ensuite comment, sur le forum, tu peut être aider à propos des plugins te posant des soucis de compatibilité.

    Pour le coup je ne résout pas ton problème actuel, je ne te propose seulement de voir pour un compromis à court terme à propos de ta mise à jour.

    Cdt,
    GC

    Remise en ligne et test de mon vieux site re7net.com . le design et moi on ne sait ... s'est jamais reconnu en fait! mais je fait des efforts.

  • bazooka07bazooka07 Member
    8 mai modifié

    Bonsoir,

    Cette fonctionnalité existe dans la version 6.0.0 de PluXml qui devait sortir en début d'année.
    voir plxShow::artNavigation()

    A se demander s'il ne faudrait pas faire une rétro-portage avec la version officielle actuelle.

    D'autant que pour les fameux plugins officiels, l'auteur est parti.

  • Franck-AWOFranck-AWO Member

    Bonjour,

    Merci @gcyrillus-nomade @bazooka07 pour vos réponses.

    J'étais sur le point de revenir à la version backupée 5.8.2, ce que j'ai fait.

    Mais avant j'ai testé la 5.8.5 (téléchargée ici : https://github.com/pluxml/PluXml/releases/tag/v5.8.5), la mise à jour de 5.8.2 à 5.8.5 crash sur un problème de droit, quand ça veut pas...

    Et aussi la mise à jour de 5.8.2 à 6.0, qui se passe bien, le site tourne bien, je n'ai pas regardé de très près mais la navigation précédent/suivant n'apparaissait pas, le backend semble être encore en travaux et prometteur. Je vais patiemment attendre que la v6 soit officielle.

    Je trouve que c'est dommage quand un dev part, que c'est sympa que des plugins / fonctionnalités soient intégrées au core, et que c'est top que PluXml continue son chemin !

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