| 
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@53
 | 
   141   $Titre=TextUtils::EnsureUTF8($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> |