[ Index ] |
|
Code source de WikiNi 0.4.4 |
1 <?php 2 3 /* 4 Handler "slide_show" pour WikiNi version WikiNi 0.4.1 et supérieurs. 5 Développé par Charles Népote. 6 Version 0.1 du 09/01/2005. 7 Licence GPL. 8 9 Par défaut il utilise les classes de style suivantes : 10 .slide { font-size: 160%; margin: 5%; background-color: #FFFFFF; padding: 30px; border: 1px inset; line-height: 1.5; } 11 .slide UL, LI { font-size: 100%; } 12 .slide LI LI { font-size: 90% } 13 .sl_nav p { text-decoration: none; text-align: right; font-size: 80%; line-height: 0.4; } 14 .sl_nav A { text-decoration: none; } 15 .sl_nav a:hover { color: #CF8888 } 16 .sum { font-size: 8px; } 17 18 Pour modifier ces styles il faut créer un fichier "slideshow.css" contenant les styles modifiés. 19 Le fichier "slideshow.css" sera reconnu automatiquement. 20 21 */ 22 23 // Vérification de sécurité 24 if (!defined("WIKINI_VERSION")) 25 { 26 die ("accès direct interdit"); 27 } 28 29 // On teste si l'utilisateur peut lire la page 30 if (!$this->HasAccess("read")) 31 { 32 return; 33 } 34 else 35 { 36 // On teste si la page existe 37 if (!$this->page) 38 { 39 return; 40 } 41 else 42 { 43 /* 44 Exemple de page : 45 46 (1) Présentation xxxxxxxxxxxxxx 47 48 ===== (2) Titre ===== 49 Diapo 2. 50 51 ===== (3) Titre ===== 52 Diapo 3. 53 54 ===== (4) Titre ===== 55 Diapo 4. 56 57 ===== (5) Titre ===== 58 Diapo 5. 59 60 ===== (6) Titre ===== 61 Diapo 6. 62 63 ===== (7) Titre ===== 64 Diapo 7. 65 66 Autre exemple : 67 68 ===== (1) Titre ===== 69 Diapo 1. 70 71 ===== (2) Titre ===== 72 Diapo 2. 73 74 ===== (3) Titre ===== 75 Diapo 3. 76 77 ===== (4) Titre ===== 78 Diapo 4. 79 80 ===== (5) Titre ===== 81 Diapo 5. 82 83 ===== (6) Titre ===== 84 Diapo 6. 85 86 ===== (7) Titre ===== 87 Diapo 7. 88 89 */ 90 91 // 92 // découpe la page 93 $body_f = $this->format($this->page["body"]); 94 $body = preg_split('/(.*<h2>.*<\/h2>)/',$body_f,-1,PREG_SPLIT_DELIM_CAPTURE); 95 96 // Informations de débogage 97 if (isset($_REQUEST["debug"]) and $_REQUEST["debug"] == "1") 98 { 99 echo "<div style=\"display: none\">\n"; 100 print_r($body); 101 echo "</div>\n\n"; 102 } 103 104 // Si la première diapositive commence par un titre de niveau 1 105 if (preg_match('/^<h2>.*<\/h2>/', $body_f)) $major = "0"; 106 else $major = "1"; 107 108 $user = $this->GetUser(); // echo $this->GetUser(); 109 110 // On teste toutes les paramètres du handler "slide_show" ; s'il n'y en a pas, c'est le paramètre "slide=1" qui est invoqué par défaut 111 112 /* 113 switch ($_REQUEST["method"]) 114 { 115 case "export": 116 export(); 117 break; 118 case "show": 119 showSlide(); 120 break; 121 default: 122 showSlide(); 123 break; 124 } 125 */ 126 127 //if ($_REQUEST["export"]) { return; } 128 129 130 if (!$body) 131 { 132 return; 133 } 134 else 135 { 136 // Si on ne précise pas de paramètre, on affiche par défaut la première diapo 137 if (!isset($_REQUEST["slide"]) or $_REQUEST["slide"] == "1") $slide = "1"; 138 else $slide = $_REQUEST["slide"]; 139 140 // En-tête du fichier HTML 141 echo 142 "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"; 143 echo 144 "<html>\n\n\n", 145 "<head>\n", 146 "<title>", $this->GetWakkaName(), ":", $this->GetPageTag(), "</title>\n", 147 "<meta name=\"robots\" content=\"noindex, nofollow\" />\n", 148 "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"; 149 echo 150 "<style type=\"text/css\" media=\"all\"> @import \"wakka.css\";</style>\n"; 151 // Teste s'il existe une feuille de style externe, sinon utilise des styles par défaut 152 if (!file_exists("slideshow.css")) 153 { 154 echo "<style type=\"text/css\">\n", 155 ".slide { font-size: 160%; margin: 5%; background-color: #FFFFFF; padding: 30px; border: 1px inset; line-height: 1.5; }\n", 156 ".slide UL, LI { font-size: 100%; }\n", 157 ".slide LI LI { font-size: 90% }\n", 158 ".sl_nav p { text-decoration: none; text-align: right; font-size: 80%; line-height: 0.4; }\n", 159 ".sl_nav A { text-decoration: none; }\n", 160 ".sl_nav a:hover { color: #CF8888 }\n", 161 ".sum { font-size: 8px; }\n", 162 "</style>\n"; 163 } 164 else 165 { 166 echo "<style type=\"text/css\" media=\"all\"> @import \"slideshow.css\";</style>\n"; 167 } 168 169 echo 170 "</head>\n\n\n"; 171 172 // Affiche le corps de la page 173 echo 174 "<body "; 175 echo (!$user || ($user["doubleclickedit"] == 'Y')) ? "ondblclick=\"document.location='".$this->href("edit")."';\" " : "", ">\n"; 176 177 // -- Affichage du sommaire [à compléter] ---------- 178 /* 179 if ($_REQUEST["sum"] == "on") 180 { 181 echo "<ul class=\"sum\">\n"; 182 if ($major = "1") echo "<li>", $this->format($body[0]), "</li>\n"; 183 foreach ($body as $title_sum) 184 { 185 $i = $i + 1; 186 $type = gettype($i/2); 187 // Ne retourne que les 50 premiers caractères du titre 188 $title_sum = substr($title_sum, 0, 50); 189 if ($type == "integer") 190 { 191 echo "<li>",$this->format($title_sum),"</li>\n"; 192 } 193 } 194 echo "</ul>\n\n"; 195 } 196 */ 197 198 // -- Affichage du menu de navigation -------------- 199 echo 200 "<div class=\"sl_nav\">\n", 201 "<p>"; 202 // Si ce n'est pas la première diapositive, on affiche les liens "<< précédent" 203 // et "[Début]" 204 if ($slide !== "1") 205 echo 206 "<a href=\"",$this->href(),"/slide_show&slide=",$_REQUEST['slide']-1,"\"><< précédent</a>", 207 " :: <a href=\"",$this->href(),"/slide_show&slide=1\">[début]</a>\n"; 208 echo " :: "; 209 // Si ce n'est pas la dernière diapositive, on affiche le lien "suivant >>" 210 if (isset($body[($slide)*2-($major*2)+2]) or $slide == "1") 211 echo "<a href=\"",$this->href(),"/slide_show&slide=",$slide+1,"\">suivant >></a>\n"; 212 echo 213 "</p>\n"; 214 // Quelquesoit la diapositive, on affiche les liens "Éditer" et "[]->" (pour quitter) 215 echo "<p><a href=\"",$this->href(),"/edit\">Éditer </a> :: <a href=\"",$this->href(),"\">[]-></a></p>\n"; 216 echo 217 "</div>\n\n"; 218 219 echo 220 "<div class=\"slide\">\n"; 221 222 // -- Affichage du contenu ------------------------- 223 224 // Si c'est la première diapositive 225 if ($slide == "1" and $major == "1") 226 { 227 echo $body[0], "<br /><br />"; 228 } 229 230 // A partir de la deuxième diapositive 231 else 232 { 233 echo 234 $body[($slide*2)-($major*2)-1].$body[($slide*2)-($major*2)],"\n"; 235 echo "\n"; 236 } 237 echo 238 "</div>\n\n"; 239 240 echo 241 "</body>\n", 242 "</html>"; 243 } 244 } 245 } 246 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Mon Nov 26 12:05:46 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |