| 2 |
ddelon |
1 |
<?php
|
|
|
2 |
|
|
|
3 |
/*
|
|
|
4 |
Handler "slide_show" pour WikiNi version WikiNi 0.4.1rc et supérieurs.
|
|
|
5 |
Développé par Charles Népote.
|
|
|
6 |
Version 0.08 du 26/04/2004.
|
|
|
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 |
// On teste si le script n'est pas appelé en direct
|
|
|
24 |
if (!eregi("wakka.php", $_SERVER['PHP_SELF']))
|
|
|
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 |
if ($_REQUEST["debug"] == "1") print_r("<div style=\"display: none\">".$body."</div>");
|
|
|
96 |
|
|
|
97 |
// Si la première diapositive commence par un titre de niveau 1
|
|
|
98 |
if (preg_match('/^<h2>.*<\/h2>/', $body_f)) $major = "0";
|
|
|
99 |
else $major = "1";
|
|
|
100 |
|
|
|
101 |
$user = $this->GetUser(); // echo $this->GetUser();
|
|
|
102 |
|
|
|
103 |
// 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
|
|
|
104 |
|
|
|
105 |
/*
|
|
|
106 |
switch ($_REQUEST["method"])
|
|
|
107 |
{
|
|
|
108 |
case "export":
|
|
|
109 |
export();
|
|
|
110 |
break;
|
|
|
111 |
case "show":
|
|
|
112 |
showSlide();
|
|
|
113 |
break;
|
|
|
114 |
default:
|
|
|
115 |
showSlide();
|
|
|
116 |
break;
|
|
|
117 |
}
|
|
|
118 |
*/
|
|
|
119 |
|
|
|
120 |
//if ($_REQUEST["export"]) { return; }
|
|
|
121 |
|
|
|
122 |
|
|
|
123 |
if (!$body)
|
|
|
124 |
{
|
|
|
125 |
return;
|
|
|
126 |
}
|
|
|
127 |
else
|
|
|
128 |
{
|
|
|
129 |
// Si on ne précise pas de paramètre, on affiche par défaut la première diapo
|
|
|
130 |
if (!$_REQUEST["slide"] or $_REQUEST["slide"] == "1") $slide = "1";
|
|
|
131 |
else $slide = $_REQUEST["slide"];
|
|
|
132 |
|
|
|
133 |
// Affiche l'en-tête
|
|
|
134 |
echo
|
|
|
135 |
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
|
|
|
136 |
echo
|
|
|
137 |
"<html>\n\n\n",
|
|
|
138 |
"<head>\n",
|
|
|
139 |
"<title>", $this->GetWakkaName(), ":", $this->GetPageTag(), "</title>\n",
|
|
|
140 |
"<meta name=\"robots\" content=\"noindex, nofollow\" />\n",
|
|
|
141 |
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n";
|
|
|
142 |
echo
|
|
|
143 |
"<style type=\"text/css\" media=\"all\"> @import \"wakka.css\";</style>\n";
|
|
|
144 |
// Teste s'il existe une feuille de style externe, sinon utilise des styles par défaut
|
|
|
145 |
if (!file_exists("slideshow.css"))
|
|
|
146 |
{
|
|
|
147 |
echo "<style type=\"text/css\">\n",
|
|
|
148 |
".slide { font-size: 160%; margin: 5%; background-color: #FFFFFF; padding: 30px; border: 1px inset; line-height: 1.5; }\n",
|
|
|
149 |
".slide UL, LI { font-size: 100%; }\n",
|
|
|
150 |
".slide LI LI { font-size: 90% }\n",
|
|
|
151 |
".sl_nav p { text-decoration: none; text-align: right; font-size: 80%; line-height: 0.4; }\n",
|
|
|
152 |
".sl_nav A { text-decoration: none; }\n",
|
|
|
153 |
".sl_nav a:hover { color: #CF8888 }\n",
|
|
|
154 |
".sum { font-size: 8px; }\n",
|
|
|
155 |
"</style>\n";
|
|
|
156 |
}
|
|
|
157 |
else
|
|
|
158 |
{
|
|
|
159 |
echo "<style type=\"text/css\" media=\"all\"> @import \"slideshow.css\";</style>\n";
|
|
|
160 |
}
|
|
|
161 |
|
|
|
162 |
echo
|
|
|
163 |
"</head>\n\n\n";
|
|
|
164 |
|
|
|
165 |
// Affiche le corps de la page
|
|
|
166 |
echo
|
|
|
167 |
"<body ";
|
|
|
168 |
echo (!$user || ($user["doubleclickedit"] == 'Y')) ? "ondblclick=\"document.location='".$this->href("edit")."';\" " : "", ">\n";
|
|
|
169 |
|
|
|
170 |
// Affichage du sommaire [à compléter]
|
|
|
171 |
/*
|
|
|
172 |
if ($_REQUEST["sum"] == "on")
|
|
|
173 |
{
|
|
|
174 |
echo "<ul class=\"sum\">\n";
|
|
|
175 |
if ($major = "1") echo "<li>", $this->format($body[0]), "</li>\n";
|
|
|
176 |
foreach ($body as $title_sum)
|
|
|
177 |
{
|
|
|
178 |
$i = $i + 1;
|
|
|
179 |
$type = gettype($i/2);
|
|
|
180 |
// Ne retourne que les 50 premiers caractères du titre
|
|
|
181 |
$title_sum = substr($title_sum, 0, 50);
|
|
|
182 |
if ($type == "integer")
|
|
|
183 |
{
|
|
|
184 |
echo "<li>",$this->format($title_sum),"</li>\n";
|
|
|
185 |
}
|
|
|
186 |
}
|
|
|
187 |
echo "</ul>\n\n";
|
|
|
188 |
}
|
|
|
189 |
*/
|
|
|
190 |
|
|
|
191 |
// Affichage du menu de navigation
|
|
|
192 |
echo
|
|
|
193 |
"<div class=\"sl_nav\">\n",
|
|
|
194 |
"<p>";
|
|
|
195 |
if ($slide !== "1")
|
|
|
196 |
echo
|
|
|
197 |
"<a href=\"",$this->href(),"/slide_show&slide=",$_REQUEST['slide']-1,"\"><< précédent</a>",
|
|
|
198 |
" :: <a href=\"",$this->href(),"/slide_show&slide=1\">[début]</a>\n";
|
|
|
199 |
echo " :: ";
|
|
|
200 |
if ($body[($slide)*2-($nb*2)+2] or $slide == "1")
|
|
|
201 |
echo "<a href=\"",$this->href(),"/slide_show&slide=",$slide+1,"\">suivant >></a>\n";
|
|
|
202 |
echo
|
|
|
203 |
"</p>\n";
|
|
|
204 |
echo "<p><a href=\"",$this->href(),"/edit\">Éditer </a> :: <a href=\"",$this->href(),"\">[]-></a></p>\n";
|
|
|
205 |
echo
|
|
|
206 |
"</div>\n\n";
|
|
|
207 |
|
|
|
208 |
echo
|
|
|
209 |
"<div class=\"slide\">\n";
|
|
|
210 |
|
|
|
211 |
// Si c'est la première diapositive
|
|
|
212 |
if ($slide == "1" and $major == "1")
|
|
|
213 |
{
|
|
|
214 |
echo $body[0], "<br /><br />";
|
|
|
215 |
}
|
|
|
216 |
|
|
|
217 |
// A partir de la deuxième diapositive
|
|
|
218 |
else
|
|
|
219 |
{
|
|
|
220 |
echo
|
|
|
221 |
$body[($slide*2)-($major*2)-1].$body[($slide*2)-($major*2)],"\n";
|
|
|
222 |
echo "\n";
|
|
|
223 |
}
|
|
|
224 |
echo
|
|
|
225 |
"</div>\n\n";
|
|
|
226 |
|
|
|
227 |
echo
|
|
|
228 |
"</body>\n",
|
|
|
229 |
"</html>";
|
|
|
230 |
}
|
|
|
231 |
}
|
|
|
232 |
}
|
|
|
233 |
?>
|