| 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 			echo("<pre>$toSend</pre>"); | 
| webmaster@0 | 80 			fwrite($fp, $toSend); | 
| webmaster@0 | 81 			while(!feof($fp)) | 
| webmaster@0 | 82 				$result .= fgets($fp, 128); | 
| webmaster@0 | 83 			fclose($fp); | 
| webmaster@0 | 84 			if(!preg_match('/<encoding>(UTF-8|utf-8)<\/encoding>/msU',$result)) { | 
| webmaster@0 | 85 				$row['Titre'] = utf8_decode($row['Titre']); | 
| webmaster@0 | 86 				$row['Message'] = utf8_decode($row['Message']); | 
| webmaster@0 | 87 			} | 
| webmaster@0 | 88 | 
| webmaster@0 | 89 			$fp = fsockopen($ar_tbAddress['host'], 80, $errno, $errstr, 15); | 
| webmaster@0 | 90 			$argToSend = "title=" . htmlentities(urlencode($row['Titre'])) . "&blog_name=Dual+Blog"; | 
| webmaster@0 | 91 			$argToSend .= "&url=http://defr.org/blog/posts/{$row['num_mess']}&excerpt=" | 
| webmaster@0 | 92 								. htmlentities(urlencode(substr(strip_tags($row['Message']), 0, 255) . "...")); | 
| webmaster@0 | 93 | 
| webmaster@0 | 94 			$toSend = $genToSend . "Content-Length: " . strlen($argToSend) . "\n\n"; | 
| webmaster@0 | 95 			$toSend .= $argToSend; | 
| webmaster@0 | 96 			echo("<pre><![CDATA[$toSend]]></pre>"); | 
| webmaster@0 | 97 			echo("<![CDATA["); | 
| webmaster@0 | 98 			fwrite($fp, $toSend); | 
| webmaster@0 | 99 			while (!feof($fp)) { | 
| webmaster@0 | 100 				echo fgets($fp, 128); | 
| webmaster@0 | 101 			} | 
| webmaster@0 | 102 			echo("]]>"); | 
| webmaster@0 | 103 			fclose($fp); | 
| webmaster@0 | 104 		} | 
| webmaster@0 | 105 	} | 
| webmaster@0 | 106 	 break; | 
| webmaster@0 | 107  } | 
| webmaster@0 | 108 ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | 
| webmaster@0 | 109 | 
| webmaster@0 | 110 <html xmlns='http://www.w3.org/1999/xhtml'> | 
| webmaster@0 | 111 <head> | 
| webmaster@0 | 112  <title>Administration : Conception & Design</title> | 
| webmaster@0 | 113  <link rel='StyleSheet' type='Text/CSS' href='css/admin.css' /> | 
| webmaster@0 | 114  <script type='text/javascript' src='admin.js'>/* Die IE, diiie */</script> | 
| webmaster@0 | 115 </head> | 
| webmaster@0 | 116 | 
| webmaster@0 | 117 <body> | 
| webmaster@0 | 118  <h3>Administration de Dual Blog</h3> | 
| webmaster@0 | 119 <ul id='Menu'> | 
| webmaster@0 | 120  <li><div id='Brouillons'>Brouillons</div></li> | 
| webmaster@0 | 121  <li><div id='Posts'>Posts publiés</div></li> | 
| webmaster@0 | 122  <li><div id='Designs'>Designs</div></li> | 
| webmaster@0 | 123  <li><div id='ToDo'>To-Do</div></li> | 
| webmaster@0 | 124 </ul> | 
| webmaster@0 | 125 <div id='GestPosts'> | 
| webmaster@0 | 126 <ul> | 
| webmaster@0 | 127 <?php | 
| webmaster@0 | 128  $Data->Connect(); | 
| webmaster@0 | 129  $Data->Query("SELECT * FROM Mess ORDER BY num_version, num_mess DESC LIMIT 0, 10"); | 
| webmaster@0 | 130  $versionAc=""; | 
| webmaster@0 | 131  $i=0; | 
| webmaster@0 | 132  $ar_Version = array(); | 
| webmaster@0 | 133  while(0!==($val=$Data->GetRow())) { | 
| webmaster@0 | 134   if($val['num_version']!=$versionAc) { | 
| webmaster@0 | 135 	if($i!=0) echo("</ul>\n</li>"); | 
| webmaster@0 | 136 	echo("  <li>{$val['num_version']} :\n    <ul>"); | 
| webmaster@0 | 137 	$versionAc=$val['num_version']; | 
| webmaster@0 | 138 	$ar_Version[] = $versionAc; | 
| webmaster@0 | 139 	$i++; | 
| webmaster@0 | 140   } | 
| webmaster@0 | 141   $Titre=$Data->utf8_ensure($val['Titre']); | 
| webmaster@0 | 142   echo(" | 
| webmaster@0 | 143   \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 | 144  } | 
| webmaster@0 | 145  echo("\n    </ul>\n  </li>\n"); | 
| webmaster@0 | 146 ?> | 
| webmaster@0 | 147 </ul> | 
| webmaster@0 | 148 </div> | 
| webmaster@0 | 149 | 
| webmaster@0 | 150 <div id='GestDesigns'> | 
| webmaster@0 | 151 <ul> | 
| webmaster@0 | 152  <li class='Add'><a href='#'>Ajouter un nouveau design au weblog</a></li> | 
| webmaster@0 | 153  <li>Modifier les designs déja existants</li> | 
| webmaster@0 | 154 </ul> | 
| webmaster@0 | 155 </div> | 
| webmaster@0 | 156 | 
| webmaster@0 | 157 <div id='GestBrouillons'> | 
| webmaster@0 | 158  <ul> | 
| webmaster@0 | 159   <li class='Add'><a href='#'>Ajouter un nouveau brouillon</a> | 
| webmaster@0 | 160   <form method='post' action='admin.php'> | 
| webmaster@0 | 161    <div> | 
| webmaster@0 | 162    <input type='hidden' name='mode' value='nvBrouillon' /> | 
| webmaster@0 | 163    <input type='text' name='Titre' value='Titre' /> | 
| webmaster@0 | 164    <textarea name='Contenu' rows='10' cols='30'></textarea> | 
| webmaster@0 | 165    <input type='submit' value='Valider ce brouillon' /> | 
| webmaster@0 | 166    </div> | 
| webmaster@0 | 167   </form> | 
| webmaster@0 | 168   </li> | 
| webmaster@0 | 169 <? | 
| webmaster@0 | 170    $Data->Query("SELECT * FROM Brouillons ORDER BY id_brouillon DESC"); | 
| webmaster@0 | 171    while(0!==($val=$Data->GetRow())) { | 
| webmaster@0 | 172 	echo(" | 
| webmaster@0 | 173    <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 | 174    } | 
| webmaster@0 | 175 ?> | 
| webmaster@0 | 176   </ul> | 
| webmaster@0 | 177 </div> | 
| webmaster@0 | 178 | 
| webmaster@0 | 179 <div id='GestToDo'> | 
| webmaster@0 | 180 <ul> | 
| webmaster@0 | 181  <li class='Add'><a href='#'>Ajouter une nouvelle tâche</a> | 
| webmaster@0 | 182  <form method='post' action='admin.php'> | 
| webmaster@0 | 183   <div> | 
| webmaster@0 | 184   <input type='hidden' name='mode' value='nvTache' /> | 
| webmaster@0 | 185   <input type='text' name='Tache' /> | 
| webmaster@0 | 186   <input type='submit' value='Ajouter cette tâche' /> | 
| webmaster@0 | 187   </div> | 
| webmaster@0 | 188  </form></li> | 
| webmaster@0 | 189  <?php | 
| webmaster@0 | 190   $Data->Query("SELECT * FROM ToDo ORDER By num_thing DESC"); | 
| webmaster@0 | 191   while(0!==($val=$Data->GetRow())) { | 
| webmaster@0 | 192     echo(" | 
| webmaster@0 | 193   <li>{$val['Thing']} <span class='Admin'><a href='#'>Fait</a>  --  <a href='#'>Editer</a>  --  <a href='#'>Supprimer</a></span></li>"); | 
| webmaster@0 | 194   } | 
| webmaster@0 | 195   $Data->Close(); | 
| webmaster@0 | 196 ?> | 
| webmaster@0 | 197 </ul> | 
| webmaster@0 | 198 </div> | 
| webmaster@0 | 199 | 
| webmaster@0 | 200 <form method='post' action='#' id='editPost'> | 
| webmaster@0 | 201  <div> | 
| webmaster@0 | 202    <input type='hidden' name='mode' value='editBrouillon' /> | 
| webmaster@0 | 203    <p><input type='text' name='Titre' value='Titre' /></p> | 
| webmaster@0 | 204    <p><textarea name='Contenu' rows='10' cols='30'></textarea></p> | 
| webmaster@0 | 205    <p><select name='mood' id='mood'> | 
| webmaster@0 | 206 <?php | 
| webmaster@0 | 207 		$handle = opendir('mood'); | 
| webmaster@0 | 208 		while($file = readdir($handle)) | 
| webmaster@0 | 209 		{ | 
| webmaster@0 | 210 		    if(strlen($file) > 3 && substr($file, -3) == 'png') | 
| webmaster@0 | 211 		    { | 
| webmaster@0 | 212 			  $short = substr($file, 0, -4); | 
| webmaster@0 | 213 			  echo("\t\t<option value='$short'><img src='mood/25/$file' alt='' />" . $short . "</option>\n"); | 
| webmaster@0 | 214 		    } | 
| webmaster@0 | 215 		} | 
| webmaster@0 | 216 		closedir($handle); | 
| webmaster@0 | 217 ?> | 
| webmaster@0 | 218    </select></p> | 
| webmaster@0 | 219    <p><input type='text' name='Tags' value='Tags' /></p> | 
| webmaster@0 | 220    <input type='button' name='Save' value='Sauver la modification' /> | 
| webmaster@0 | 221  </div> | 
| webmaster@0 | 222 </form> | 
| webmaster@0 | 223 | 
| webmaster@0 | 224 <form method='post' action='admin.php' id='whichVersion'> | 
| webmaster@0 | 225  <div> | 
| webmaster@0 | 226  <!--a onclick='javascript:hidePubForm()'>Hide</a--> | 
| webmaster@0 | 227  <input type='hidden' name='mode' value='nvPost' /> | 
| webmaster@0 | 228  <input type='hidden' name='id' /> | 
| webmaster@0 | 229  <fieldset> | 
| webmaster@0 | 230 	<legend>Catégorie du post</legend> | 
| webmaster@0 | 231 	<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 | 232 	<select name='versionAc' id='vAc'> | 
| webmaster@0 | 233 	  <option>Version 10</option> | 
| webmaster@0 | 234 	  <option>DeFr.org news</option> | 
| webmaster@0 | 235 	</select> | 
| webmaster@0 | 236 	<label for='nvCat'><br />Pour poster le post dans une catégorie n'existant pas encore, veuillez | 
| webmaster@0 | 237 	entrer son nom : <br /></label> | 
| webmaster@0 | 238 	<input type='text' name='newVersion' id='nvCat' value='Nouvelle version ?' /> | 
| webmaster@0 | 239  </fieldset> | 
| webmaster@0 | 240  <fieldset> | 
| webmaster@0 | 241 	  <legend>Tags</legend> | 
| webmaster@0 | 242 	  <label for='Tags'>Histoire d'organiser les posts, et de pouvoir filtrer par centres d'interet, veuillez | 
| webmaster@0 | 243 	  préciser les <em>tags</em> à attribuer à ce post :<br /></label> | 
| webmaster@0 | 244 	  <input type='text' name='Tags' id='Tags' /> | 
| webmaster@0 | 245  </fieldset> | 
| webmaster@0 | 246  <fieldset> | 
| webmaster@0 | 247 	  <legend>Mood / Emots</legend> | 
| webmaster@0 | 248 	  <label for='mood'>Pour assurer un minimum d'attrait aux posts, et leur attribuer un aspect graphique | 
| webmaster@0 | 249 	  sympathique, veuillez selectionner une emoticone pour le post, dans la liste suivante :<br /></label> | 
| webmaster@0 | 250 	  <select name='mood' id='mood'> | 
| webmaster@0 | 251 <?php | 
| webmaster@0 | 252 		$handle = opendir('mood'); | 
| webmaster@0 | 253 		while($file = readdir($handle)) | 
| webmaster@0 | 254 		{ | 
| webmaster@0 | 255 		    if(strlen($file) > 3 && substr($file, -3) == 'png') | 
| webmaster@0 | 256 		    { | 
| webmaster@0 | 257 			  $short = substr($file, 0, -4); | 
| webmaster@0 | 258 			  echo("\t\t\t<option value='$short'><img src='mood/25/$file' alt='' />" . $short . "</option>\n"); | 
| webmaster@0 | 259 		    } | 
| webmaster@0 | 260 		} | 
| webmaster@0 | 261 		closedir($handle); | 
| webmaster@0 | 262 ?> | 
| webmaster@0 | 263 	  </select> | 
| webmaster@0 | 264  </fieldset> | 
| webmaster@0 | 265  <fieldset> | 
| webmaster@0 | 266 	<legend>Trackback</legend> | 
| webmaster@0 | 267 	<label for='tb'>Pour effectuer un trackback vers un autre post, rentrer son URL :<br /></label> | 
| webmaster@0 | 268 	<input type='text' name='tb' id='tb' value='TrackBack ?' /> | 
| webmaster@0 | 269  </fieldset> | 
| webmaster@0 | 270  <fieldset> | 
| webmaster@0 | 271 	<legend>Publication</legend> | 
| webmaster@0 | 272 	<label id='pubComment' for='pubButton' /> | 
| webmaster@0 | 273 	<input type='submit' name="pubButton" id="pubButton" value='Publier' /> | 
| webmaster@0 | 274  </fieldset> | 
| webmaster@0 | 275 </div> | 
| webmaster@0 | 276 </form> | 
| webmaster@0 | 277 | 
| webmaster@0 | 278 <div id='Infos'> | 
| webmaster@0 | 279 Administration de Dual Blog - Par DeFr - Icones © David Lanham - The IconFactory - | 
| webmaster@0 | 280 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 | 281 </div> | 
| webmaster@0 | 282 </body> | 
| webmaster@0 | 283 </html> |