function cs_introduction($texte, $descriptif, $lgr, $id, $racc, $connect) { @define('_INTRODUCTION_LGR', 100); // fonction couper_intro $couper = $GLOBALS['cs_couper_intro']; if (strlen($descriptif)) # si descriptif contient juste des espaces ca produit une intro vide, # c'est une fonctionnalite, pas un bug // ici le descriptif est coupe s'il est trop long $texte = $lgr<0?propre($couper($descriptif, -$lgr, _INTRODUCTION_CODE)):propre($descriptif); else { // pas de maths dans l'intro... $texte = preg_replace(',<math>.*</math>,imsU', '', $texte); // on coupe proprement... $lgr = $lgr>0?round($lgr*_INTRODUCTION_LGR/100):-$lgr; $texte = PtoBR(propre(supprimer_tags($couper(cs_introduire($texte), $lgr, _INTRODUCTION_CODE)))); } // si les points de suite ont ete ajoutes return remplace_points_de_suite($texte, $id, $racc); } // introduction()
function decouper_en_pages_rempl($texte, $pagination_seule=false) { // un seul id par page... static $id_decoupe = ''; // si pas de separateur, on sort if (strpos($texte, _decoupe_SEPARATEUR)===false) return $pagination_seule?'':$texte; // au cas ou on ne veuille pas de decoupe, on remplace les '++++' par un filet. if (defined('_CS_PRINT') && !$pagination_seule) { @define(_decoupe_FILET, '<p style="border-bottom:1px dashed #666; padding:0; margin:1em 20%; font-size:4pt;" > </p>'); return str_replace(_decoupe_SEPARATEUR, _decoupe_FILET, $texte); } // recherche du sommaire s'il existe if (defined('_sommaire_REM') && (substr_count($texte, _sommaire_REM)==2)) { $pages = explode(_sommaire_REM, $texte); $sommaire = $pages[0].$pages[1]; $texte = $pages[2]; } else $sommaire = ''; // traitement des pages $pages = explode(_decoupe_SEPARATEUR, $texte); $num_pages = count($pages); if ($num_pages == 1) return $pagination_seule?'':$texte; $artpage = max(intval(artpage()), 1); $artpage = min($artpage, $num_pages); /* // si numero illegal ou si var_recherche existe, alors renvoyer toutes les pages, separees par une ligne <hr/>. // la surbrillance pourra alors fonctionner correctement. if (strlen($_GET['var_recherche']) || $artpage < 1 || $artpage > $num_pages) return join("<hr/>", $pages); */ // si la balise #CS_DECOUPE est utilisee on renvoie le texte sans pagination if (!$pagination_seule) { // page demandee $page = cs_safebalises($pages[$artpage-1]); if (isset($_GET['decoupe_recherche'])) { include_spip('inc/surligne'); $page = surligner_mots($page, $_GET['decoupe_recherche']); } if (defined('_decoupe_BALISE')) return $sommaire.$page; } $self = nettoyer_uri();//self();//$GLOBALS['REQUEST_URI']; // liens des differentes pages sous forme : 1 2 3 4 $milieu = ''; for ($i = 1; $i <= $num_pages; $i++) { $page_ = supprimer_tags(cs_safebalises(cs_introduire(echappe_retour($pages[$i-1],'CS')))); $title = preg_split("/[\r\n]+/", trim($page_), 2); $title = attribut_html(/*propre*/(couper($title[0], _decoupe_NB_CARACTERES)));//.' (...)'; $milieu .= recuperer_fond('fonds/decoupe_item', array( 'page'=>$i, 'artpage'=>$artpage, 'derniere_page'=>$num_pages, 'title_page'=>_T('couteau:page_lien', array('page' => $i, 'title' => $title)), 'self' =>$self, )); } // pagination finale $pagination = recuperer_fond('fonds/decoupe', array( 'artpage'=>$artpage, 'derniere_page'=>$num_pages, 'items'=>$milieu, 'self' =>$self, )); if ($pagination_seule) { if(trim($pagination)=="") return ""; $pagination = "<div id='decoupe_balise$id_decoupe' class='pagination decoupe_balise'>\n$pagination\n</div>\n"; return $pagination; } // ici $pagination_seule est false, $page est definie $pagination1 = "<div id='decoupe_haut$id_decoupe' class='pagination decoupe_haut'>\n$pagination\n</div>\n"; $pagination2 = "<div id='decoupe_bas$id_decoupe' class='pagination decoupe_bas'>\n$pagination\n</div>\n"; $id_decoupe++; return $sommaire.$pagination1.$page.$pagination2; }