source: spip-zone/_plugins_/_dev_/article-s5/s5_fonctions.php @ 25949

Last change on this file since 25949 was 25949, checked in by cy_altern@…, 12 years ago

manquait l'appel du fichier de fonction pour que le diaporama puisse être créé

File size: 3.1 KB
Line 
1<?php
2/* ========================================================================
3 *
4 *   +----------------------------------+
5 *    Nom du Filtre :    creer_slides
6 *   +----------------------------------+
7 *    Date : mercredi 20/01/2006 19:42:20
8 * Pour l'adaptation du système d'eric Meyer http://www.meyerweb.com
9 * les slides sont les paragraphes contenus entre deux intertitres
10 * on utilise en partie le travail de
11        *    Date : mercredi 27 juillet 2005
12        *    Auteurs :
13        *               Stéphane Deschamps http://www.spip-contrib.net/auteur.php3?id_auteur=327
14        *               Yann Ducrocq http://www.spip-contrib.net/auteur.php3?id_auteur=1833
15        *   +-------------------------------------+
16        *    donner un identifiant unique à chaque intertitre de la page
17        *   +-------------------------------------+
18 * auteur cogefip le 20/01/2006 18:46:38
19 * ATTENTION si le texte ne commence pas par un intertitre,
20 * le texte du début jusqu'au premier intertitre ne sera pas diffusé
21 * si le texte ne comporte aucun intertitre l'intégralité du texte forme le slide
22 ========================================================================== */
23
24/*
25Pour mémoire défnition des intertitre
26// $GLOBALS['debut_intertitre'] = "\n<h3 class=\"typo_intertitre\">";
27// $GLOBALS['fin_intertitre'] = "</h3>\n";
28*/
29// filtre à appliquer sur #TEXTE
30// [(#TEXTE|creer_slides)]
31
32$cId =0;
33
34function creer_slides($str) {
35  global $cId;
36
37   $cId=0;
38
39        $reg_intertitre = "/<h3[^>]*>(.*?)<\/h3>/i";
40        //Il conviendrait de récupérer le contenu de $GLOBALS['debut_intertitre'] et $GLOBALS['fin_intertitre']
41        //?? $reg_intertitre = "/" . addslashes($GLOBALS['debut_intertitre']) . "(.*?)" . addslashes($GLOBALS['fin_intertitre']) ."/i";
42       
43        // appel de la fonction de remplacement par callback
44        $str = preg_replace_callback($reg_intertitre,'transforme_intertitre',$str);
45        if ($cId==0) { return '<div class="slide"><div class="slidecontent">' .$str. '</div></div>';};  // aucune chaine d'intertitre n'a été trouvée
46        // le texte est maintenant non apparié,
47  // placer à la fin les div fermant
48      $str = $str . '</div></div>';
49  return $str;
50}
51
52function transforme_intertitre($trouve) {
53  global $cId;
54
55  $cgfp_avant = "\n".'<div class="slide">'."\n\t<h1>";
56  //il faut fermer le précédent slide si nécessaire
57  if ($cId>0) {$cgfp_avant = "\n\t</div><!-- slidecontent -->\n</div><!-- slide -->".$cgfp_avant;};
58        // incrementation du compteur global
59        $cId++;
60
61  return $cgfp_avant . $trouve[1] . '</h1>'."\n\t".'<div class="slidecontent">';
62}
63
64function creer_slides_incremental($str) {
65
66  $str=creer_slides($str);
67  $str=preg_replace_callback('/<li[^>]*>(.*?)/i', 'remplace_li', $str);
68  $str=preg_replace('/<\/ul>/i', "\n\t\t</ul>\n", $str);
69  // les ul vont recevoir une class incremental défini dans les css de s5
70  return preg_replace_callback('/<ul[^>]*>(.*?)/i', 'remplace_ul', $str);
71}
72
73function remplace_li($trouve) {
74  return "\n\t\t\t".'<li>' . $trouve[1]; // on supprime les attributs de <li> dont on a pas besoin ici (préparation à présentacular à venir)
75}
76
77function remplace_ul($trouve) {
78  return "\n\t\t".'<ul class="incremental">' . $trouve[1];
79}
80?>
Note: See TracBrowser for help on using the repository browser.