Affiche X liens vers des articles, par page, dans une rubrique et place les liens adéquats (X articles précédents, liens vers 10 pages/rubriques maxi à compter de celle où on se trouve, X articles suivants). Utilise du PHP dans la boucle.
Principe
Si, dans le squelette rubrique.html, on a mis une BOUCLE(ARTICLES) avec le paramêtre {tout}, les pages rubriques vont grandir au fur et à mesure du remplissage du site. Si on a limité le nombre d’articles (avec le paramètre {0, 20}, par exemple), on « perd » les plus anciens.
L’avantage de cette boucle, est qu’on n’est plus obligé de limiter le nombre de liens vers les articles dans une page rubrique, tout en évitant de voir grandir cette page à l’infini. C’est ce qu’on appelle la pagination.
le code + la boucle à copier / coller dans la page rubrique.
le fichier article-pagine.inc à télécharger dans le répertoire racine de votre site spip (là où il y a les squelettes .php3).
N’oubliez pas de télécharger aussi fleche-gauche.gif et fleche-droite.gif dans /NAVPICS.
A propos des squelette inclus : Si vous mettez la boucle dans un squelette inclus, il est nécessaire mais apparament pas suffisant d’appeler le squelette inclus avec . Il faut en plus, ré-imbriquer la boucle dans une boucle rubriques et dans le squelette inclus lui-même. On ne sait pas pourquoi, mais on sait que sinon ca ne marche pas bien. Celui qui trouve va passer pour un fortiche ;-). En bref pour les squelettes inclus, ca donne ceci :
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
Le code et la boucle ci-dessous ...
</BOUCLE_rubrique>
1) le code + la boucle à copier / coller dans la page rubrique
2)le code contenu dans "article-pagine.inc
Remarque de mise à jour
Changements dans la version III L’appel de fonction qui provoquait la Fatal error : Call to undefined function : getarticlelinks() sur certains sites a été supprimé et remplacé par un fichier inclus (article-pagine.inc) qui contient le code (qui n’est donc plus dans mes_fonctions.php3)
Une correction a été apportée au code qui obligeait à ce que la page traitée soit une page rubrique. Ce peut-être maintenant n’importe quelle boucle qui supporte le critère Spip {debut_xxx,b} (relire cette doc sur spip.net ), une boucle mot, par exemple, ou encore une boucle SYNDIC_ARTICLES, comme sur cette page, etc. Il faut bien sur alors adapter les boucles spip au cas choisi
Pour ceux qui avaient implémenté la version II et qui souhaitent passer à la version III
1) Uploader le fichier "article-pagine.inc" dans le répertoire racine de votre site spip (là où il y a les squelettes .php3).
2) Dans le code du squelette .html à paginer, remplacer
les anciennes lignes :
par ces nouvelles :
3) Supprimer le code de la fonction "getArticleLinks(.." de votre fichier mes_fonctions.php3. (ce dernier point n’est pas obligatoire, mais inutile de charger du code devenu inutile).
Bonjour ! D’abord, merci de coder des trucs comme ça, vraiment nécéssaires (j’en ai besoin depuis le début !) d’une part, et d’assurer ainsi le support, d’autre part !
Ce que je cherche à faire, c’est d’utiliser ce hack sur ma page de sommaire, où j’affiche la liste de TOUTES les breves de TOUTES les rubriques (genre blog) un peu comme si c’était une rubrique, mais qui contient tout.
De fait, juste en remplaçant ARTICLE par BREVE, le script me trouve le nombre de breves, mais j’ai du mal à comprendre comment je peux lui dire de ne pas s’occuper des rubriques ?
J’espere que je suis clair... ? Ce qui est sur, c’est que je cherche à faire ça depuis longtemps ! Donc, je triche, et j’en suis à quatre & ;quot;fausses& ;quot; pages de sommaire, qui me servent juste à incrémenter la boucle
& ;lt;BOUCLE_breves(BREVES) par dateinverse0,24& ;gt; avec un lien vers la page suivante, qui elle, contient
& ;lt;BOUCLE_breves(BREVES) par dateinverse24,48& ;gt;
Et ainsi de suite, et je n’aime pas devoir dupliquer comme ça du code :/
oui, ca dépend quelle logique ;-). Ceci dit, ca implique de reprogrammer la partie de article-pagine.inc qui se trouve sous le commentaire php // Milieu. Ce que je n’ai malheureusement pas le temps de faire pour le moment. En y réfléchissant, je me dis qu’il faudrait globalement améliorer et adapter ma contrib au spip actuel. c-a-d,
permettre le choix de la numérotation (commencant à 1 ou à la dernière page)
adapter au système de langues
permettre le choix du dessin des flèches (ou pas)
permettre le choix du nombre de liens affichés vers les pages (actuellement, c 10 par défaut)
l’adapter au page du moteur de recherche (comme l’a fait " erational, le 25 juin 2004 : > Pagination moteur de recherche" v. sur ce forum).
quoi d’autre ?
Ce qui fait tout de même un peu de boulot ;)
Je vais m’y mettre 1 de ces 4, mais ca ne sera sans doute pas, vu mon emploi du temps actuel, avant quelques mois.
Bonjour
Tout d’abord merci pour cette contrib très pratique !
Petite question : comment faire pour inverser les chiffres présents après "Pages :" ? En fait actuellement j’ai "Pages : 3 | 2 | 1" où le 3 correspond à mes articles les plus récents, et je voudrais que ceux-ci soient désignés par un 1, ce qui me semble plus logique...
Merci pour vos avis !
quelqu’un vient de trouver une solution à cela. Elle est sur le forum de l’article.
Voir le message : erational, le 25 juin 2004 : > Pagination moteur de recherche
merci beaucoup, le script fonctionne tres bien... sauf sur le moteur de recherche car on l’appelle de la facon suivante recherche.php ?recherche=brest et non en recherche.php ?id_recherche=brest
voici ma solution au début du script
// hack pour paginer recherche
if ($type != "recherche") $type2 = "id_$type";
else $type2 = $type;
et ensuite remplacer ds le code id_$type par $type2
¿Il y a des personnes avec pagination dans INCLURE et ça marche ?
J’ai de la pagination dans un squelette inclus et avec le boucle ROUBRIQUES dans les deux squelettes, mais ça ne marche pas : on affiché le premiére page tout le temp n’import quelle page je demande, et si je recalcul une page on affiché cette tout le temp. En breve : on affiché tout le temp le derniére page recalculé.
J’ai cherché la CACHE et il y a une seule fichier ’seccion-76.f80c9e’ avec le premieres 10 articles (ou le derniére page recalcule).
Ainsi, je croi que c’est un probléme avec les INCLURE et la cache. J’ai cherché dans le code de SPIP et il paraît que <INCLURE(seccion.php3) {id_rubrique}> généré un seul fichier a la CACHE pour chaque rubrique ’seccion-76...’ (76 c’est le id_rubrique actuel). Ainsi, il faut générer a la CACHE des fichiers pout chaque rubrique-debut (seccion-76-0..., seccion-76-10...) et pour ça il faut un deuxiéme critére dans le INCLURE avec le debut.
J’ia ne sais pas s’il y a maniére pour faire ça, mais j’ai utilisé un “truc” pour ajouter des variables a l’URL dans le contexte actuel (il y a une spip-contrib a tester avec ça id_article=488)
Dans rubrique.html
<BOUCLE_rubrique(RUBRIQUES) {id_rubrique}>
Ça ajoute la variable 'debut_indice' a l'URL dans le contexte actuel.
La balise #URL_SITE_SPIP ne sert a rien, seulement pour lancer le filtre
C’est pas très cliar !!! Autant je comprends bien que #IDRUBRIQUE se retorte à une terminologine typiquement spipienne, autant "rubrique" non. Est ce le nom du couple php3/squlette ? Si par exemple je fais une rubrique spéciale metier avec un couple metier.php3/metier.html, le $type = "metier" ?
Aucun problème pour moi ... d’autant que je suis formateur et tuteur sur des plate formes d’apprentissage à distance, ce serait avec joie. Mais il faut que je comprenne comment ça fonctionne précisément, pour pouvoir localiser toutes les bêtises qu’on peut faire. Ce qui ne marche pas avec.
Tiens, par exemple, je fais une pagination avec des boucle articles : Il y a un tableau autour et dedans et une autre boucle dont surtout une documents absolument nécessaire : est ce que ça perturbe ?
Les incompatibilités avec les différentes versions de SPIP sont à peine listées. Qu’est ce qui perturbe ? J’ai essayé en 1.5.2 et en 1.7, sur un serveur distant et en local ...
Faire un tutoriel vraiment efficace nécessite de faire un véritable plan de test en amon ... et je n’arrive pas à faire le plus petit début de fonctionnement.
Alors voilà, j’aimerais bien aider, mais j’peux point (tzoin tzoin tzoin).
Une lettre d’information avec SPIP - SPIP-listes permet la gestion et l’envoi de lettres d’information (newsletters) au moyen d’un courriel au format html ou texte. Il est possible d’envoyer des messages aux abonnés qui se sont formellement inscrits à une ou plusieurs lettres (...)
Galerie / diaporama en modèle - Plugin ajoutant le modèle <diapoXX> permettant d’insérer les images de l’article XX sous forme de galerie/diaporama reprenant le fonctionnement de la galerie Walma.
Le mini-site spip-info.net a pour vocation de jouer le rôle d’une « carte de visite » pour SPIP.
Un utilisateur recherchant un outil pour construire son site, ou celui de son organisation, y trouvera les informations lui permettant de se (...)
votre site SPIP sur iPhone - iSPIP fournit une version d’un site SPIP optimisée pour les terminaux iPhone et iPodTouch basée sur la bibliothèque iUI développée par Joe Hewitt.