annotate admin.php @ 89:e37ef9a81737 tip

Merge
author Franck Deroche <franck@defr.org>
date Thu, 13 Dec 2018 00:55:42 +0100
parents 0a57d5321383
children
rev   line source
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 &amp; 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 &copy; 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>