webmaster@0
|
1 <?php |
webmaster@0
|
2 if(!is_null($_SERVER['HTTP_ACCEPT']) && stristr($_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml')) |
webmaster@0
|
3 header('Content-Type: application/xhtml+xml; charset=UTF-8'); |
webmaster@0
|
4 else |
webmaster@0
|
5 header('Content-Type: text/html; charset=UTF-8'); |
webmaster@0
|
6 |
webmaster@0
|
7 include("classes.php"); |
webmaster@0
|
8 $Data=new DataAccess; |
webmaster@0
|
9 $Req = new Requete; |
webmaster@0
|
10 |
webmaster@0
|
11 $mode = $Req->get('mode'); |
webmaster@0
|
12 switch($mode) { |
webmaster@0
|
13 case 'nvBrouillon': |
webmaster@0
|
14 $nvTitre = $Req->get('Titre', 'POST'); |
webmaster@0
|
15 $nvContenu = $Req->get('Contenu', 'POST'); |
webmaster@0
|
16 $Data->debugQuery("INSERT INTO Brouillons SET Titre='{$nvTitre}', Contenu='{$nvContenu}'"); |
webmaster@0
|
17 break; |
webmaster@0
|
18 |
webmaster@0
|
19 case 'nvTache': |
webmaster@0
|
20 $nvThing = $Req->get('Tache'); |
webmaster@0
|
21 $Data->Query("INSERT INTO ToDo SET Thing='{$nvThing}'"); |
webmaster@0
|
22 break; |
webmaster@0
|
23 |
webmaster@0
|
24 case 'nvPost': |
webmaster@0
|
25 $id = $Req->get('id', 'POST'); |
webmaster@0
|
26 $versionAc = $Req->get('versionAc', 'POST'); |
webmaster@0
|
27 $newVersion = $Req->get('newVersion', 'POST'); |
webmaster@0
|
28 $mood = $Req->get('mood', 'POST'); |
webmaster@0
|
29 $tbAddress = $Req->get('tb', 'POST'); |
webmaster@0
|
30 if($versionAc == 'Version 10' && $newVersion != 'Nouvelle version ?' && !empty($newVersion)) |
webmaster@0
|
31 $version = $newVersion; |
webmaster@0
|
32 else |
webmaster@0
|
33 $version = $versionAc; |
webmaster@0
|
34 $Data->Query("SELECT * FROM Brouillons WHERE id_brouillon={$id}"); |
webmaster@0
|
35 $row = $Data->GetRow(); |
webmaster@0
|
36 $row['Titre'] = addslashes($row['Titre']); |
webmaster@0
|
37 $row['Contenu'] = addslashes($row['Contenu']); |
webmaster@0
|
38 $datePost = gmdate("Y-m-d H:i:s", time() + 3600); |
webmaster@0
|
39 $Data->Query(" |
webmaster@0
|
40 INSERT INTO Mess(Titre, DatePost, num_version, Message, Emot) |
webmaster@0
|
41 VALUES('{$row['Titre']}', '{$datePost}', '{$version}', '{$row['Contenu']}', '{$mood}')"); |
webmaster@0
|
42 $Data->Query("DELETE FROM Brouillons WHERE id_brouillon={$id}"); |
webmaster@0
|
43 $Data->Query("SELECT num_mess, Message FROM Mess ORDER BY num_mess DESC LIMIT 0, 1"); |
webmaster@0
|
44 $id_row = $Data->GetRow(); |
webmaster@0
|
45 // Gestion des tags |
webmaster@0
|
46 $arTags = TextUtils::SplitTags($Req->get('Tags')); |
webmaster@0
|
47 foreach($arTags as $tagAj) |
webmaster@0
|
48 { |
webmaster@0
|
49 $n = $Data->Query("SELECT idTag FROM Tags WHERE Tag='{$tagAj}'"); |
webmaster@0
|
50 if($n == 0) |
webmaster@0
|
51 { |
webmaster@0
|
52 // Si le tag n'existe pas, on le crée |
webmaster@0
|
53 $Data->Query("INSERT INTO Tags SET Tag='{$tagAj}'"); |
webmaster@0
|
54 $Data->Query("SELECT idTag FROM Tags WHERE Tag='{$tagAj}'"); |
webmaster@0
|
55 } |
webmaster@0
|
56 $row_tag = $Data->GetRow(); |
webmaster@0
|
57 $Data->Query |
webmaster@0
|
58 (" |
webmaster@0
|
59 INSERT INTO Lien_Tags_Posts |
webmaster@0
|
60 SET idMess={$id_row['num_mess']}, idTag={$row_tag['idTag']} |
webmaster@0
|
61 "); |
webmaster@0
|
62 } |
webmaster@0
|
63 // Génération de trackbacks |
webmaster@0
|
64 if(!empty($tbAddress) && substr($tbAddress, 0, 4)=='http') { |
webmaster@0
|
65 $ar_tbAddress = parse_url($tbAddress); |
webmaster@0
|
66 if(!array_key_exists('port', $ar_tbAddress)) $ar_tbAddress['port'] = 80; |
webmaster@0
|
67 if(!array_key_exists('path', $ar_tbAddress)) $ar_tbAddress['path'] = '/'; |
webmaster@0
|
68 if(array_key_exists('query', $ar_tbAddress)) $ar_tbAddress['query'] = '?' . $ar_tbAddress['query']; |
webmaster@0
|
69 $fp = fsockopen($ar_tbAddress['host'], $ar_tbAddress['port'], $errno, $errstr, 15); |
webmaster@0
|
70 if($fp) { |
webmaster@0
|
71 $genToSend = "POST {$ar_tbAddress['path']}{$ar_tbAddress['query']} HTTP/1.0\r\n"; |
webmaster@0
|
72 $genToSend .= "Host: {$ar_tbAddress['host']}\r\n"; |
webmaster@0
|
73 $genToSend .= "Content-Type: application/x-www-form-urlencoded \n"; |
webmaster@0
|
74 |
webmaster@0
|
75 // Essai de récuperation de l'encodage...Envoie en iso si pas d'indication d'UTF... |
webmaster@0
|
76 $argToSend = "__info=1"; |
webmaster@0
|
77 $toSend = $genToSend . "Content-Length: " . strlen($argToSend) . "\n\n"; |
webmaster@0
|
78 $toSend .= $argToSend; |
webmaster@0
|
79 fwrite($fp, $toSend); |
webmaster@0
|
80 while(!feof($fp)) |
webmaster@0
|
81 $result .= fgets($fp, 128); |
webmaster@0
|
82 fclose($fp); |
webmaster@0
|
83 if(!preg_match('/<encoding>(UTF-8|utf-8)<\/encoding>/msU',$result)) { |
webmaster@0
|
84 $row['Titre'] = utf8_decode($row['Titre']); |
webmaster@0
|
85 $row['Message'] = utf8_decode($row['Message']); |
webmaster@0
|
86 } |
webmaster@0
|
87 |
webmaster@67
|
88 $fp = fsockopen($ar_tbAddress['host'], $ar_tbAddress['port'], $errno, $errstr, 15); |
webmaster@0
|
89 $argToSend = "title=" . htmlentities(urlencode($row['Titre'])) . "&blog_name=Dual+Blog"; |
webmaster@67
|
90 $argToSend .= "&url=" . BLOG_URL . "/posts/{$id_row['num_mess']}&excerpt=" |
webmaster@67
|
91 . htmlentities(urlencode(substr(strip_tags($id_row['Message']), 0, 255) . "...")); |
webmaster@0
|
92 |
webmaster@0
|
93 $toSend = $genToSend . "Content-Length: " . strlen($argToSend) . "\n\n"; |
webmaster@0
|
94 $toSend .= $argToSend; |
webmaster@0
|
95 echo("<![CDATA["); |
webmaster@0
|
96 fwrite($fp, $toSend); |
webmaster@0
|
97 while (!feof($fp)) { |
webmaster@0
|
98 echo fgets($fp, 128); |
webmaster@0
|
99 } |
webmaster@0
|
100 echo("]]>"); |
webmaster@0
|
101 fclose($fp); |
webmaster@0
|
102 } |
webmaster@0
|
103 } |
webmaster@0
|
104 break; |
webmaster@0
|
105 } |
webmaster@0
|
106 ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
webmaster@0
|
107 |
webmaster@0
|
108 <html xmlns='http://www.w3.org/1999/xhtml'> |
webmaster@0
|
109 <head> |
webmaster@0
|
110 <title>Administration : Conception & Design</title> |
webmaster@0
|
111 <link rel='StyleSheet' type='Text/CSS' href='css/admin.css' /> |
webmaster@0
|
112 <script type='text/javascript' src='admin.js'>/* Die IE, diiie */</script> |
webmaster@0
|
113 </head> |
webmaster@0
|
114 |
webmaster@0
|
115 <body> |
webmaster@0
|
116 <h3>Administration de Dual Blog</h3> |
webmaster@0
|
117 <ul id='Menu'> |
webmaster@0
|
118 <li><div id='Brouillons'>Brouillons</div></li> |
webmaster@0
|
119 <li><div id='Posts'>Posts publiés</div></li> |
webmaster@0
|
120 <li><div id='Designs'>Designs</div></li> |
webmaster@0
|
121 <li><div id='ToDo'>To-Do</div></li> |
webmaster@0
|
122 </ul> |
webmaster@74
|
123 <div id='GestPosts' class='Gestion'> |
webmaster@0
|
124 <ul> |
webmaster@0
|
125 <?php |
webmaster@0
|
126 $Data->Connect(); |
webmaster@0
|
127 $Data->Query("SELECT * FROM Mess ORDER BY num_version, num_mess DESC LIMIT 0, 10"); |
webmaster@0
|
128 $versionAc=""; |
webmaster@0
|
129 $i=0; |
webmaster@0
|
130 $ar_Version = array(); |
webmaster@0
|
131 while(0!==($val=$Data->GetRow())) { |
webmaster@0
|
132 if($val['num_version']!=$versionAc) { |
webmaster@0
|
133 if($i!=0) echo("</ul>\n</li>"); |
webmaster@0
|
134 echo(" <li>{$val['num_version']} :\n <ul>"); |
webmaster@0
|
135 $versionAc=$val['num_version']; |
webmaster@0
|
136 $ar_Version[] = $versionAc; |
webmaster@0
|
137 $i++; |
webmaster@0
|
138 } |
webmaster@53
|
139 $Titre=TextUtils::EnsureUTF8($val['Titre']); |
webmaster@0
|
140 echo(" |
webmaster@0
|
141 \t <li>{$Titre}<span class='Admin'><a href='#id={$val['num_mess']}'>Editer</a> -- <a href='#id={$val['num_mess']}'>Supprimer</a> -- <a href='?id={$val['num_mess']}'>Gérer les commentaires</a></span></li>"); |
webmaster@0
|
142 } |
webmaster@69
|
143 if($i > 0) echo("\n </ul>\n </li>\n"); |
webmaster@0
|
144 ?> |
webmaster@0
|
145 </ul> |
webmaster@0
|
146 </div> |
webmaster@0
|
147 |
webmaster@74
|
148 <div id='GestDesigns' class='Gestion'> |
webmaster@0
|
149 <ul> |
webmaster@0
|
150 <li class='Add'><a href='#'>Ajouter un nouveau design au weblog</a></li> |
webmaster@0
|
151 <li>Modifier les designs déja existants</li> |
webmaster@0
|
152 </ul> |
webmaster@0
|
153 </div> |
webmaster@0
|
154 |
webmaster@74
|
155 <div id='GestBrouillons' class='Gestion'> |
webmaster@0
|
156 <ul> |
webmaster@0
|
157 <li class='Add'><a href='#'>Ajouter un nouveau brouillon</a> |
webmaster@0
|
158 <form method='post' action='admin.php'> |
webmaster@0
|
159 <div> |
webmaster@0
|
160 <input type='hidden' name='mode' value='nvBrouillon' /> |
webmaster@0
|
161 <input type='text' name='Titre' value='Titre' /> |
webmaster@0
|
162 <textarea name='Contenu' rows='10' cols='30'></textarea> |
webmaster@0
|
163 <input type='submit' value='Valider ce brouillon' /> |
webmaster@0
|
164 </div> |
webmaster@0
|
165 </form> |
webmaster@0
|
166 </li> |
franck@82
|
167 <?php |
webmaster@0
|
168 $Data->Query("SELECT * FROM Brouillons ORDER BY id_brouillon DESC"); |
webmaster@0
|
169 while(0!==($val=$Data->GetRow())) { |
webmaster@0
|
170 echo(" |
webmaster@0
|
171 <li>{$val['Titre']} <span class='Admin'><a href='#id={$val['id_brouillon']}'>Editer</a> -- <a href='#id={$val['id_brouillon']}'>Publier</a> -- <a href='?id={$val['id_brouillon']}'>Supprimer</a></span></li>"); |
webmaster@0
|
172 } |
webmaster@0
|
173 ?> |
webmaster@0
|
174 </ul> |
webmaster@0
|
175 </div> |
webmaster@0
|
176 |
webmaster@74
|
177 <div id='GestToDo' class='Gestion'> |
webmaster@0
|
178 <ul> |
webmaster@0
|
179 <li class='Add'><a href='#'>Ajouter une nouvelle tâche</a> |
webmaster@0
|
180 <form method='post' action='admin.php'> |
webmaster@0
|
181 <div> |
webmaster@0
|
182 <input type='hidden' name='mode' value='nvTache' /> |
webmaster@0
|
183 <input type='text' name='Tache' /> |
webmaster@0
|
184 <input type='submit' value='Ajouter cette tâche' /> |
webmaster@0
|
185 </div> |
webmaster@0
|
186 </form></li> |
webmaster@0
|
187 <?php |
webmaster@0
|
188 $Data->Query("SELECT * FROM ToDo ORDER By num_thing DESC"); |
webmaster@0
|
189 while(0!==($val=$Data->GetRow())) { |
webmaster@0
|
190 echo(" |
webmaster@0
|
191 <li>{$val['Thing']} <span class='Admin'><a href='#'>Fait</a> -- <a href='#'>Editer</a> -- <a href='#'>Supprimer</a></span></li>"); |
webmaster@0
|
192 } |
webmaster@0
|
193 $Data->Close(); |
webmaster@0
|
194 ?> |
webmaster@0
|
195 </ul> |
webmaster@0
|
196 </div> |
webmaster@0
|
197 |
webmaster@0
|
198 <form method='post' action='#' id='editPost'> |
webmaster@0
|
199 <div> |
webmaster@0
|
200 <input type='hidden' name='mode' value='editBrouillon' /> |
webmaster@0
|
201 <p><input type='text' name='Titre' value='Titre' /></p> |
webmaster@0
|
202 <p><textarea name='Contenu' rows='10' cols='30'></textarea></p> |
webmaster@0
|
203 <p><select name='mood' id='mood'> |
webmaster@0
|
204 <?php |
webmaster@0
|
205 $handle = opendir('mood'); |
webmaster@0
|
206 while($file = readdir($handle)) |
webmaster@0
|
207 { |
webmaster@0
|
208 if(strlen($file) > 3 && substr($file, -3) == 'png') |
webmaster@0
|
209 { |
webmaster@0
|
210 $short = substr($file, 0, -4); |
webmaster@0
|
211 echo("\t\t<option value='$short'><img src='mood/25/$file' alt='' />" . $short . "</option>\n"); |
webmaster@0
|
212 } |
webmaster@0
|
213 } |
webmaster@0
|
214 closedir($handle); |
webmaster@0
|
215 ?> |
webmaster@0
|
216 </select></p> |
webmaster@0
|
217 <p><input type='text' name='Tags' value='Tags' /></p> |
webmaster@0
|
218 <input type='button' name='Save' value='Sauver la modification' /> |
webmaster@0
|
219 </div> |
webmaster@0
|
220 </form> |
webmaster@0
|
221 |
webmaster@0
|
222 <form method='post' action='admin.php' id='whichVersion'> |
webmaster@0
|
223 <div> |
webmaster@0
|
224 <!--a onclick='javascript:hidePubForm()'>Hide</a--> |
webmaster@0
|
225 <input type='hidden' name='mode' value='nvPost' /> |
webmaster@0
|
226 <input type='hidden' name='id' /> |
webmaster@0
|
227 <fieldset> |
webmaster@0
|
228 <legend>Catégorie du post</legend> |
webmaster@0
|
229 <label for='vAc'>Pour poster le post dans une catégorie déja existante, veuillez la choisir dans la liste ci-dessous :<br /></label> |
webmaster@0
|
230 <select name='versionAc' id='vAc'> |
webmaster@0
|
231 <option>Version 10</option> |
webmaster@0
|
232 <option>DeFr.org news</option> |
webmaster@0
|
233 </select> |
webmaster@0
|
234 <label for='nvCat'><br />Pour poster le post dans une catégorie n'existant pas encore, veuillez |
webmaster@0
|
235 entrer son nom : <br /></label> |
webmaster@0
|
236 <input type='text' name='newVersion' id='nvCat' value='Nouvelle version ?' /> |
webmaster@0
|
237 </fieldset> |
webmaster@0
|
238 <fieldset> |
webmaster@0
|
239 <legend>Tags</legend> |
webmaster@0
|
240 <label for='Tags'>Histoire d'organiser les posts, et de pouvoir filtrer par centres d'interet, veuillez |
webmaster@0
|
241 préciser les <em>tags</em> à attribuer à ce post :<br /></label> |
webmaster@0
|
242 <input type='text' name='Tags' id='Tags' /> |
webmaster@0
|
243 </fieldset> |
webmaster@0
|
244 <fieldset> |
webmaster@0
|
245 <legend>Mood / Emots</legend> |
webmaster@0
|
246 <label for='mood'>Pour assurer un minimum d'attrait aux posts, et leur attribuer un aspect graphique |
webmaster@0
|
247 sympathique, veuillez selectionner une emoticone pour le post, dans la liste suivante :<br /></label> |
webmaster@0
|
248 <select name='mood' id='mood'> |
webmaster@0
|
249 <?php |
webmaster@0
|
250 $handle = opendir('mood'); |
webmaster@0
|
251 while($file = readdir($handle)) |
webmaster@0
|
252 { |
webmaster@0
|
253 if(strlen($file) > 3 && substr($file, -3) == 'png') |
webmaster@0
|
254 { |
webmaster@0
|
255 $short = substr($file, 0, -4); |
webmaster@0
|
256 echo("\t\t\t<option value='$short'><img src='mood/25/$file' alt='' />" . $short . "</option>\n"); |
webmaster@0
|
257 } |
webmaster@0
|
258 } |
webmaster@0
|
259 closedir($handle); |
webmaster@0
|
260 ?> |
webmaster@0
|
261 </select> |
webmaster@0
|
262 </fieldset> |
webmaster@0
|
263 <fieldset> |
webmaster@0
|
264 <legend>Trackback</legend> |
webmaster@0
|
265 <label for='tb'>Pour effectuer un trackback vers un autre post, rentrer son URL :<br /></label> |
webmaster@0
|
266 <input type='text' name='tb' id='tb' value='TrackBack ?' /> |
webmaster@0
|
267 </fieldset> |
webmaster@0
|
268 <fieldset> |
webmaster@0
|
269 <legend>Publication</legend> |
webmaster@74
|
270 <label id='pubComment' for='pubButton'></label> |
webmaster@0
|
271 <input type='submit' name="pubButton" id="pubButton" value='Publier' /> |
webmaster@0
|
272 </fieldset> |
webmaster@0
|
273 </div> |
webmaster@0
|
274 </form> |
webmaster@0
|
275 |
webmaster@0
|
276 <div id='Infos'> |
webmaster@0
|
277 Administration de Dual Blog - Par DeFr - Icones © David Lanham - The IconFactory - |
webmaster@0
|
278 Valide <a href="http://validator.w3.org/check?uri=referer">XHTML 1.1</a> et <a href='http://jigsaw.w3.org/css-validator/check/referer'>CSS 3</a> |
webmaster@0
|
279 </div> |
webmaster@0
|
280 </body> |
webmaster@0
|
281 </html> |