PageRenderTime 22ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/administration/pub.php

https://code.google.com/
PHP | 279 lines | 219 code | 23 blank | 37 comment | 24 complexity | 91877971767ef044a5103eb666ea1b97 MD5 | raw file
  1. <?php
  2. if (!defined('ROOT'))
  3. define('ROOT', '../');
  4. require ROOT.'administration/config/admin_common.php';
  5. /*************************************************************************************
  6. * GESTION DES pubS
  7. *************************************************************************************/
  8. // Vérifications des droits
  9. if ( !isDroit("pub") ) {
  10. redirect('index.php' );
  11. exit();
  12. }
  13. // Définitions des constantes et variables
  14. if (!isset($_GET['cmd'])) $_GET['cmd'] = false;
  15. if (!isset($_GET['id'])) $_GET['id'] = false;
  16. $FICHIERSTYPE=array('gif','jpg','jpeg','jpe','png','swf');
  17. $longueur=468;
  18. $hauteur=60;
  19. $TITRE = "Gestion des pubs " ;
  20. $RUBRIQUE = "configuration" ;
  21. $MENU = "pub" ;
  22. $SOUSMENU = "pub" ;
  23. define ('SCRIPT', 'pub');
  24. switch ($_GET['cmd']) { // DEBUT SWITCH cmd
  25. ///////////////////////////////////////////////////////////////
  26. // ENREGISTREMENT + SAISIE
  27. ///////////////////////////////////////////////////////////////
  28. case 'saisie':
  29. // Vérification si l'enreg existe (sera utile aussi bien pour MAJ que pour saisie)
  30. $existe=false;
  31. if (!empty($_GET['id']) ){
  32. $result = $db->query("SELECT * FROM pub WHERE id='".$db->escape($_GET['id'])."'");
  33. if ($db->num_rows($result) ){
  34. $existe = true;
  35. $enreg = $db->fetch_assoc($result);
  36. }
  37. }
  38. // On controle si le formulaire a été saisi
  39. if (isset($_POST['enregistrer'])) {
  40. // Controle des saisies
  41. $errors = new Errors($_POST, 'saisie');
  42. //$errors->add("L' url est obligatoire.", 'url', 'notEmpty');
  43. $errors->add("Le texte est obligatoire.", 'texte', 'notEmpty');
  44. $ERREUR = $errors->invalid();
  45. $errors_files = new Errors($_FILES, 'saisie');
  46. $errors_files->add("Le format de l'image n'est pas accepté.", 'photo', 'isExtension', $FICHIERSTYPE);
  47. $errors_files->add("L'image est trop volumineuse : ".size(MAX_FILE_SIZE)." maximum", 'photo', 'isSize', MAX_FILE_SIZE);
  48. $erreur_files = $errors_files->invalid();
  49. if ( !$ERREUR ) {
  50. // Enregistrement
  51. if ( $existe ) {
  52. // Update
  53. $requete = "UPDATE pub SET
  54. url='".$db->escape($_POST['url'])."'
  55. ,texte='".$db->escape($_POST['texte'])."'
  56. WHERE id='".$db->escape($_GET['id'])."'
  57. ";
  58. $db->query($requete);
  59. $id = $_GET['id'];
  60. } else {
  61. // Insert
  62. $requete = "INSERT INTO pub SET
  63. url='".$db->escape($_POST['url'])."'
  64. ,texte='".$db->escape($_POST['texte'])."'
  65. ";
  66. $db->query($requete);
  67. $id = $db->insert_id();
  68. }
  69. //echo "$requete<br>";
  70. // Traitement photo
  71. //--------------------------------------------------------------------------------------------------------
  72. $prefixe = 'pub1-'.$id;
  73. if ( !empty($_POST['supp_photo']) ) {
  74. // Suppression de l'image(s)
  75. delFile($prefixe,REP_PHOTOS,$IMAGE_TYPE);
  76. } elseif ( !empty($_FILES['photo']['name']) and !$erreur_files ) {
  77. // Suppression de(s) image(s) dans le cas d'extensions différentes
  78. delFile($prefixe,REP_PHOTOS,$IMAGE_TYPE);
  79. $feedback = checkUploadFile('photo', $prefixe, REP_PHOTOS )
  80. or $erreur_files[] = 'Erreur lors du chargement sur le serveur.';
  81. if ($feedback and $feedback['ext'] != 'swf') {
  82. // Redim si necessaire
  83. redimImage(REP_PHOTOS.$feedback['nom_fichier'], $longueur, $hauteur)
  84. or $erreur_files[] = 'Erreur lors du redimensionnement de l\'image.';
  85. }
  86. }
  87. // L'enregistrement a était fait dans la bdd, mais erreur dans le fichier
  88. if ($erreur_files) {
  89. $ERREUR = $erreur_files;
  90. }
  91. else
  92. //--------------------------------------------------------------------------------------------------------
  93. // FIN DE CREATION/MAJ
  94. // Selon le cas, si pas d'erreur, on peut réafficher la saisie ou rediriger sur la liste
  95. redirect("?".(isset($_GET['page'])?'page='.$_GET['page']:'').'&CONFIRMATION=L\'enregistrement a bien été effectué.');
  96. }
  97. } // Fin test si MAJ
  98. // Affichage du formulaire
  99. include ROOT.'administration/js/tools.php';
  100. $HEAD = '';
  101. include("include/entete.php");
  102. if ($existe) {
  103. $entete="Modification pub";
  104. $url = isset($_POST['url']) ? $_POST['url'] : $enreg['url'];
  105. $texte = isset($_POST['texte']) ? $_POST['texte'] : $enreg['texte'];
  106. //$date = isset($_POST['date']) ? $_POST['date'] : formateDate($enreg['date']);
  107. // Préparation photo et lien suppression
  108. $mini = findFile('pub1-'.$_GET['id'].'*',REP_PHOTOS,$IMAGE_TYPE);
  109. if ($mini) {
  110. $photo = '<img src="'.REP_PHOTOS.$mini[0].'" alt="Supprimer" />';
  111. $lien_supp_photo='<label for="supp_photo">Supprimer</label><input type="checkbox" name="supp_photo" id="supp_photo" value="o" />';
  112. }
  113. else
  114. {
  115. $mini = findFile('pub1-'.$_GET['id'],REP_PHOTOS,array('swf'));
  116. if($mini)
  117. {
  118. $photo='
  119. <object type="application/x-shockwave-flash" data="'.REP_PHOTOS.$mini[0].'" width="'.$longueur.'" height="'.$hauteur.'">
  120. <param name="movie" value="'.REP_PHOTOS.$mini[0].'" />
  121. <param name="wmode" value="transparent" />
  122. <p>Image ou texte alternatif</p>
  123. </object>
  124. ';
  125. $lien_supp_photo='<label for="supp_photo">Supprimer</label><input type="checkbox" name="supp_photo" id="supp_photo" value="o" />';
  126. }
  127. else
  128. {
  129. $photo = false;
  130. $lien_supp_photo = false;
  131. }
  132. }
  133. } else {
  134. $entete="Nouvelle pub";
  135. $url = isset($_POST['url']) ? $_POST['url'] : '';
  136. $texte = isset($_POST['texte']) ? $_POST['texte'] : '';
  137. //$date = isset($_POST['date']) ? $_POST['date'] : date('d/m/Y');
  138. $photo = false;
  139. $lien_supp_photo = false;
  140. }
  141. ?>
  142. <h2><?php echo $entete;?></h2>
  143. <form method="post" class="saisie" action="?cmd=saisie&amp;id=<?php echo $_GET['id'].(isset($_GET['page'])? '&amp;page='.$_GET['page']:'');?>" enctype="multipart/form-data" >
  144. <fieldset class="bloc_left">
  145. <legend>Description</legend>
  146. <p <?php if ($ERREUR) echo (array_key_exists('url',$ERREUR)?'class="form_erreur"':'') ?>>
  147. <label for="url">Url</label>
  148. <input type="text" name="url" id="url" value="<?php echo htmlspecialchars($url);?>" size="50" maxlength="100" />
  149. </p>
  150. <div class="p">
  151. <label class="oblig" for="texte">Texte</label>
  152. <input name="texte" id="texte4" value="<?php echo htmlspecialchars($texte);?>"></input>
  153. </div>
  154. </fieldset>
  155. <fieldset class="bloc_right">
  156. <legend>Photo</legend>
  157. <p <?php if ($ERREUR) echo (array_key_exists('photo',$ERREUR)?'class="form_erreur"':'') ?>>
  158. <span class="textNote">Formats autorisés :<br /><?php echo implode(', ',$FICHIERSTYPE) ?></span>
  159. <label class="oblig" for="photo">Photo (<?php echo $longueur.'x'.$hauteur ?>)</label>
  160. <!-- MAX_FILE_SIZE doit précéder le champs input de type file -->
  161. <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_FILE_SIZE ?>" />
  162. <input type="file" name="photo" id="photo" value="" size="15" />
  163. </p>
  164. <p>
  165. <?php echo $photo;?><br /><?php echo $lien_supp_photo;?>
  166. </p>
  167. </fieldset>
  168. <div class="bloc_left">
  169. <p>
  170. <label for="submit">&nbsp;</label>
  171. <input class="submit" name="enregistrer" type="submit" value="Enregistrer" />
  172. </p>
  173. </div>
  174. </form>
  175. <?php
  176. include("include/baspage.php");
  177. break;
  178. ///////////////////////////////////////////////////////////////
  179. // SUPPRESSION
  180. ///////////////////////////////////////////////////////////////
  181. case 'supp':
  182. $requete = "DELETE FROM pub WHERE id='".$db->escape($_GET['id'])."'";
  183. $result = $db->query($requete);
  184. // Suppression image(s)
  185. delFile('pub1-'.$_GET['id'],REP_PHOTOS,$FICHIERSTYPE);
  186. redirect("?".(isset($_GET['page'])?'page='.$_GET['page']:'').'&CONFIRMATION=L\'enregistrement a bien été supprimé.');
  187. //redirect("?".(isset($_GET['page'])?'page='.$_GET['page']:'').'&CONFIRMATION=L\'enregistrement a bien été supprimé.');
  188. exit(); // Fin SUPP
  189. break;
  190. ///////////////////////////////////////////////////////////////
  191. // LISTE
  192. ///////////////////////////////////////////////////////////////
  193. default:
  194. include("include/entete.php");
  195. // Création de la requete et de la pagination
  196. $feedback = listeRequete('*', 'pub', 'id', '', array('url','texte'));
  197. ?>
  198. <h2>Liste des pubs <?php echo '('.$feedback['nbtotal'].')';?></h2>
  199. <?php echo $feedback['pagination'];?>
  200. <form method="get" id="recherche" action="">
  201. <div>
  202. <input type="text" name="mot" id="mot" value="<?php echo((!empty($_REQUEST['mot']))?$_REQUEST['mot']:'') ?>" />
  203. <?php /*
  204. <select name="filtre">
  205. <option value="0">All</option>
  206. <option value="sdqf" <?php echo((isset($_REQUEST['filtre']) and $_REQUEST['filtre'] == "sdqf")?'selected="selected"':'') ?>>rubrique 1</option>
  207. <option value="2">rubrique 2</option>
  208. </select>
  209. */ ?>
  210. <input type="submit" name="submit" value="Chercher" />
  211. </div>
  212. </form>
  213. <table class="liste" width="100%">
  214. <tr>
  215. <th>Photo</th>
  216. <th><a href="?tri=url" title="Trier">Url<?php if ($feedback['tri'] == 'url') echo ($_SESSION[SCRIPT]['ORDRE']=='DESC' ? '<img src="images/desc.png" alt="Décroissant" />' : '<img src="images/asc.png" alt="Croissant" />'); ?></a></th>
  217. <th><a href="?tri=texte" title="Trier">Texte<?php if ($feedback['tri'] == 'texte') echo ($_SESSION[SCRIPT]['ORDRE']=='DESC' ? '<img src="images/desc.png" alt="Décroissant" />' : '<img src="images/asc.png" alt="Croissant" />'); ?></a></th>
  218. <th>Modif.</th>
  219. <th>Supp.</th>
  220. </tr>
  221. <?php
  222. $i=0;
  223. while ($liste = $db->fetch_assoc($feedback['result'])) {
  224. // Préparation photo
  225. $mini = findFile('pub1-'.$liste['id'],REP_PHOTOS,$IMAGE_TYPE);
  226. $photo = $mini ? '<img src="'.REP_PHOTOS.$mini[0].'" alt="" />':'';
  227. if(!$mini)
  228. {
  229. $mini = findFile('pub1-'.$liste['id'],REP_PHOTOS,array('swf'));
  230. $mini ? $photo='
  231. <object type="application/x-shockwave-flash" data="'.REP_PHOTOS.$mini[0].'" width="'.$longueur.'" height="'.$hauteur.'">
  232. <param name="movie" value="'.REP_PHOTOS.$mini[0].'" />
  233. <param name="wmode" value="transparent" />
  234. </object>':'';
  235. }
  236. ?>
  237. <tr class="<?php echo (($i%2)==0?"pair":"impair"); ?>">
  238. <td class="center"><?php echo $photo;?></td>
  239. <td><a href="<?php echo htmlspecialchars($liste['url']);?>"><?php echo htmlspecialchars($liste['url']);?></a></td>
  240. <td><?php echo TronquerTexte(strip_tags($liste['texte']));?></td>
  241. <td class="center"><a href="?cmd=saisie&amp;id=<?php echo $liste['id'];?>&amp;page=<?php echo $feedback['page'];?>" title="Modifier"><img src="images/modifier.png" alt="Modifier" /></a></td>
  242. <td class="center"><?php echo '<a href="?cmd=supp&amp;id='.$liste['id'].'&amp;page='.$feedback['page'].'" class="supprimer" title="supprimer '.$liste['texte'].'"><img src="images/supprimer.png" alt="Supprimer" /></a>';?></td>
  243. </tr>
  244. <?php
  245. $i++;
  246. }
  247. ?>
  248. </table>
  249. <?php
  250. echo $feedback['pagination'];
  251. include("include/baspage.php");
  252. exit();
  253. } // FIN SWITCH $_POST['cmd']
  254. ?>