Marche à suivre
1. Ajouter la fonction qui suit dans mes_fonctions.php3 :
/*
* +----------------------------------+
* Nom du Filtre : decouper_en_page
* +----------------------------------+
* Date : mardi 28 janvier 2003
* Auteur : "gpl" : gpl@macplus.org
* +-------------------------------------+
* Fonctions de ce filtre :
* Il sert a présenter un article sur plusieurs pages
* +-------------------------------------+
*
* Pour toute suggestion, remarque, proposition d'ajout
* reportez-vous au forum de l'article :
* http://www.uzine.net/spip_contrib/article.php3?id_article=62
*/
function decouper_en_page($texte) {
global $artsuite, $var_recherche;
if (empty($artsuite)) $artsuite = 0;
$page = split('-----', $texte);
$num_pages = count($page);
// Si une seule page ou numéro illégal, alors retourner tout le texte.
// Cas spécial : si var_recherche positionné, tout renvoyer pour permettre à la surbrillance
// de fonctionner correctement.
if ($num_pages == 1 || !empty($var_recherche) || $artsuite < 0 || $artsuite > $num_pages) {
return $texte;
}
$p_prec = $artsuite - 1;
$p_suiv = $artsuite + 1;
$uri_art = generer_url_article($GLOBALS['id_article']);
$uri_art .= strpos($uri_art, '?') ? '&' : '?';
switch (TRUE) {
case ($artsuite == 0):
$precedent = "";
$suivant = "<A HREF='" . $uri_art . "artsuite=" . $p_suiv . "'>>></A>";
break;
case ($artsuite == ($num_pages-1)):
$precedent = "<A HREF='" . $uri_art . "artsuite=" . $p_prec . "'><<</A>";
$suivant = "";
break;
default:
$precedent = "<A HREF='" . $uri_art . "artsuite=" . $p_prec . "'><<</A>";
$suivant = "<A HREF='" . $uri_art . "artsuite=" . $p_suiv . "'>>></A>";
break;
}
for ($i = 0; $i < $num_pages; $i++) {
$j = $i;
if ($i == $artsuite) {
$milieu .= " <B>" . ++$j . "</B> ";
} else {
$milieu .= " <A HREF='" . $uri_art . "artsuite=$i'>" . ++$j . "</A> ";
}
}
// Ici, on peut personnaliser la présentation
$resultat = "<P><DIV CLASS='pagination'>$precedent $milieu $suivant</DIV></P>";
$resultat .= $page[$artsuite];
$resultat .= "<P CLASS='pagination'><DIV CLASS='pagination'>$precedent $milieu $suivant</DIV></P>";
return $resultat;
}
// FIN du Filtre decouper_en_page
2. Remplacer le [(#TEXTE)]
présent dans article.html (ou dans votre propre squelette, bien sûr) par :
[(#TEXTE*|decouper_en_page|propre)]
Notez bien l’astérisque après #TEXTE
! Cette astérisque permet de désactiver les traitements par défaut de Spip sur le champ #TEXTE
: c’est nécessaire ici parce que je veux traiter cinq traits d’union consécutifs qui sont transformés en <hr>
normalement.
3. Rédigez vos articles en utilisant cinq traits d’union consécutifs à l’endroit qui doit recevoir la coupure.
À noter
Pour obtenir une ligne horizontale, la documentation de Spip stipule qu’une succession de quatre traits d’union ou plus est nécessaire. Avec ce filtre, c’est différent : quatre traits d’union provoque une ligne horizontale, cinq provoquent un saut de page. J’ai choisi ceci pour permettre d’avoir, dans l’hypothèse d’un autre squelette avec #TEXTE
et non #TEXTE*
, une ligne horizontale qui signale le découpage en pages.
Un exemple ?
Voyez http://alor.univ-montp3.fr/c.renais... pour un exemple sur un site existant.
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |