0byt3m1n1
Path:
/
home
/
kassiope
/
www
/
administrer
/
[
Home
]
File: articles.php
<? include("../configuration.inc.php"); necessite_identification(); necessite_priv("admin"); $DOC_TITLE = "Gérer les articles"; include("modeles/haut.php"); $start = vn($_REQUEST['start']);// Détermine la variable start (début de page) $id = vn($_REQUEST['id']); switch (vb($_REQUEST['mode'])) { case "ajout" : affiche_formulaire_ajout_article(vn($_REQUEST['rubrique_id'])); break; case "modif" : affiche_formulaire_modif_article($id); break; case "suppr" : supprime_article($id); affiche_liste_articles($start, $_POST); break; case "supprfile" : supprime_fichier($id, $_GET['file']); affiche_formulaire_modif_article($id); break; case "insere" : if (sizeof($_POST) > 0) { $frm = $_POST; $message_erreur = valide_form_article($frm, $erreurs); } if (empty($message_erreur)) { if (!empty($_FILES['image1']['name'])) { $img1 = upload($_FILES['image1']); } insere_article($id, vb($img1),$_POST); affiche_liste_articles($start, $_POST); } if (!empty($message_erreur)) { echo "<span class='normal'><font color='red' ><b>Attention, votre formulaire est incomplet.</b></font></span><p></p>"; if (! isset($rubrique_id) ) {$rubrique_id = 0;}; $frm = $_POST; affiche_formulaire_ajout_article($id); } break; case "maj" : if (sizeof($_POST) > 0) { $frm = $_POST; $message_erreur = valide_form_article($frm, $erreurs); } if (empty($message_erreur)) { if (!empty($_REQUEST['image1'])) { $img1 = $_POST['image1']; } else { if (!empty($_FILES['image1']['name'])) { $img1 = upload($_FILES['image1']); } } maj_article($frm['id'], vb($img1),$_POST); affiche_liste_articles($start, $_POST); } if (!empty($message_erreur)) { echo "<span class='normal'><font color='red' ><b>Attention, votre formulaire est incomplet.</b></font></span><p></p>"; affiche_formulaire_modif_article($frm['id']); } break; case "recherche" : affiche_liste_articles($start, $_POST); break; case "sansrubrique" : affiche_liste_articles($start, $_POST); break; default : affiche_liste_articles($start, 0); break; } include("modeles/bas.php"); /****************************************************************************** * FONCTIONS *****************************************************************************/ function affiche_formulaire_ajout_article($rubrique_id = 0) { /* Affiche un formulaire vierge pour ajouter un article */ global $rubrique_options, $frm; /* Valeurs par défaut */ $frm['rubriques'] = array($rubrique_id); $frm['nouveau_mode'] = "insere"; foreach ($_SESSION['lng'] as $lng) { $frm['surtitre_'.$lng.''] = ""; $frm['titre_'.$lng.''] = "Titre de votre article"; $frm['chapo_'.$lng.''] = ""; $frm['texte_'.$lng.''] = ""; } $frm['prix'] = ""; $frm['image1'] = ""; $frm['lang'] = $_SESSION['langue']; $frm['tva'] = ""; $frm['on_special'] = ""; $frm['promotion'] = ""; $frm['etat'] = ""; $frm['date_insere'] = ""; $frm['date_maj'] = ""; $frm['normal_bouton'] = "Ajouter"; /* Construit la liste des catégories, préselectionne la catégorie racine */ construit_arbo_rub($rubrique_options, $frm['rubriques']); affiche_formulaire_article(); } function affiche_formulaire_modif_article($id) { /* Affiche le formulaire de modification pour le article sélectionné */ global $frm,$rubrique_options; /* Charge les informations du article */ $qid = mysql_query_override(" SELECT * FROM gaia_articles WHERE id = $id "); $frm = mysql_fetch_array_override($qid); /* Charge les catégories du article */ $qid = mysql_query_override(" SELECT rubrique_id FROM gaia_articles_rubriques WHERE article_id = $id "); $frm['rubriques'] = array(); if ($qid) { if (mysql_num_rows_override($qid) > 0) { while ($cat = mysql_fetch_array_override($qid)) { $frm['rubriques'][] = $cat['rubrique_id']; } } } $frm['nouveau_mode'] = "maj"; $frm['normal_bouton'] = "Sauvegarder changements"; construit_arbo_rub($rubrique_options, $frm['rubriques']); affiche_formulaire_article(); } function affiche_formulaire_article() { GLOBAL $frm; GLOBAL $id; GLOBAL $rubrique_options; GLOBAL $wwwroot; GLOBAL $message_erreur; GLOBAL $erreurs; GLOBAL $repertoire_images; GLOBAL $repertoire_upload; $marqueur_erreur = "<font color=RED>".htmlspecialchars("=>")."</font>"; ?> <form name="entryform" method="post" action="<?=$_SERVER['PHP_SELF']?>?start=0" enctype="multipart/form-data"> <input type="hidden" name="mode" value="<?=$frm['nouveau_mode']?>"> <input type="hidden" name="id" value="<?=$frm['id']?>"> <table border=0 cellpadding=0 cellspacing=1 width=100%> <tr bgcolor="#EEEEEE"> <td class="entete">Ajouter un article</td> </tr> <tr> <td class=normal> <div class=normal><font color=red><b>Choisissez une rubrique *</b></font>:</div> <? if (!empty($erreurs['rubriques'])) {echo $marqueur_erreur." ".$message_erreur['rubriques']; }?> </td> </tr> <tr> <td> <select class="formulaire1" name="rubriques[]" multiple size="10" style="width: 100%"> <?=$rubrique_options?> </select> </td> </tr> <tr valign=top > <td> <table class="normal" border="0" width="760"> <tr><td valign="top" class="normal"> Afficher l'article en page d'accueil : </td> <td><input type="checkbox" name="on_special" <?=frmvalide($frm['on_special'])?>></td> </tr> <tr> <td class=normal>Etat de l'article :</td> <td> <input type="radio" name="etat" value="1" <?php if(($frm['etat']=="1")||(!$frm['etat'])) echo "checked" ?>>En ligne<br /> <input type="radio" name="etat" value="0" <?php if($frm['etat']=="0") {echo "checked";} ?>>En attente </td> </tr> <?php foreach ($_SESSION['lng'] as $lng) { ?> <tr><td colspan="2" class="bloc">BLOC DE LANGUE <?echo strtoupper($lng) ?></td><tr> <tr> <td class="normal" colspan="2">Sur-titre :</td> </tr> <tr> <td colspan=2><input style="width: 100%" class="formulaire1" type="text" name="surtitre_<?echo $lng?>" value="<?=$frm['surtitre_'.$lng.''] ?>" /></td> </tr> <tr> <td class=normal colspan=2><font color="red"><b>Titre *</b></font>: <? if (!empty($erreurs['titre_'.$lng.''])) {echo $marqueur_erreur." ".$message_erreur['titre_'.$lng.'']; }?></td> </tr> <tr> <td colspan=2><input style="width:100%" class="formulaire1" type="text" name="titre_<?echo $lng?>" value="<?=html_entity_decode($frm['titre_'.$lng.''])?>" /></td> </tr> <tr valign=top> <td class="label" colspan="2">Chapo rapide :</td> </tr> <tr valign=top> <td class=normal colspan=2> <textarea style="width: 100%" name="chapo_<?echo $lng?>"><?=html_entity_decode(vb($frm['chapo_'.$lng.'']))?></textarea></td> </tr> <tr valign=top> <td class="label" colspan=2>Texte complet de l'article :</td> </tr> <tr valign=top> <td class="normal" colspan="2"> <input type="hidden" name="p_format" id="p_format" value="html" > <p> <textarea style="width:100%" name="texte_<?echo $lng?>" id="texte_<?echo $lng?>" class="formulaire1"><?=html_entity_decode(vb($frm['texte_'.$lng.'']))?></textarea> </p> </td> </tr> <?php } if (!empty($frm["image1"])){ ?> <tr valign=top> <td colspan=2 class=label>Image : <br /> <img src="<?=$repertoire_upload."/".$frm["image1"] ?>"><br /> Nom du fichier :<?=$frm["image1"]?> <a class="normal" href="<?php echo $_SERVER['PHP_SELF']?>?mode=supprfile&id=<?=vb($frm['id'])?>&file=image1"> <img src="<?=$wwwroot?>/administrer/images/b_drop.png" width="16" height="16" alt="" border="0">supprimer cette image </a> <input type="hidden" name="image1" value="<?=$frm["image1"]?>"> </td> </tr> <? } else {?> <tr valign=top> <td class=label>Image :</tr> <tr> <td class=normal> <input style="width: 100%" name="image1" type="file" class="formulaire1" value=""> </td> </tr> <? } ?> <tr> <td colspan="2" align="center"><input class="bouton" type="submit" value="<?=$frm['normal_bouton'] ?>"></td> </tr> </table> </td> </tr> </table> </form> <? } function supprime_article($id) { /* Supprime le article spécificié par $id. Il faut supprimer le article * puis les entrées correspondantes de la table articles_rubriques. */ /* Charge les infos du article. */ $qid = mysql_query_override("SELECT titre_".$_SESSION['langue']." FROM gaia_articles WHERE id = $id"); $prod = mysql_fetch_array_override($qid); /* Efface le article */ $qid = mysql_query_override("DELETE FROM gaia_articles WHERE id = $id"); /* Efface ce article de la table articles_rubriques */ $qid = mysql_query_override("DELETE FROM gaia_articles_rubriques WHERE article_id = $id"); echo "<p class=\"normal\">L'article <b>".html_entity_decode($prod['titre_'.$_SESSION['langue'].''])."</b> a été effacé.</p>"; } function insere_article($id, $img1, $frm) { /* Ajoute un nouveau sous-article sous le parent $id. Les champs sont dans la variable $frm */ valide($frm['on_special']); valide($frm['etat']); /*ajoute le article dans la table articles */ $sql = ""; $sql .= " INSERT INTO gaia_articles (etat"; foreach ($_SESSION['lng'] as $lng) { $sql .= ",surtitre_".$lng.""; $sql .= ", titre_".$lng.""; $sql .= ", chapo_".$lng.""; $sql .= ", texte_".$lng.""; } $sql .= ", image1 , date_insere , date_maj , on_special ) VALUES ('$frm[etat]'"; foreach ($_SESSION['lng'] as $lng) { $sql .= ", '".htmlspecialchars($frm['surtitre_'.$lng.''], ENT_QUOTES)."', '".htmlspecialchars($frm['titre_'.$lng.''], ENT_QUOTES)."'"; $sql .= ", '".htmlspecialchars($frm['chapo_'.$lng.''], ENT_QUOTES)."', '".htmlspecialchars($frm['texte_'.$lng.''], ENT_QUOTES)."'"; } $sql .= " , '$img1' , now() , now() , '$frm[on_special]') "; mysql_query_override($sql) or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); /* récupère l'id du article créé */ $article_id = mysql_insert_id_override(); /* ajoute le article sous les catégories spécifiées */ for ($i = 0; $i < count($frm['rubriques']); $i++) { $qid = mysql_query_override(" INSERT INTO gaia_articles_rubriques (rubrique_id, article_id) VALUES ('{$frm['rubriques'][$i]}', '$article_id') "); } } function maj_article($id, $img1, $frm) { /* Met à jour le article $id avec de nouvelles valeurs. Les champs sont dans $frm */ valide($frm['on_special']); /* Met à jour la table articles */ $sql= ""; $sql .= "UPDATE gaia_articles SET etat = '$frm[etat]'"; foreach ($_SESSION['lng'] as $lng) { $sql .= ", surtitre_".$lng." = '".htmlspecialchars($frm['surtitre_'.$lng.''], ENT_QUOTES)."'"; $sql .= ",titre_".$lng." = '".htmlspecialchars($frm['titre_'.$lng.''], ENT_QUOTES)."'"; $sql .= ",chapo_".$lng." = '".htmlspecialchars($frm['chapo_'.$lng.''], ENT_QUOTES)."'"; $sql .= ",texte_".$lng." = '".htmlspecialchars($frm['texte_'.$lng.''], ENT_QUOTES)."'"; } $sql .= ",image1 = '$img1' ,date_maj = now() ,on_special = '$frm[on_special]' WHERE id = $id "; mysql_query_override($sql) or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); /* Efface toutes les catégories auxquelles le article est associé */ $qid = mysql_query_override(" DELETE FROM gaia_articles_rubriques WHERE article_id = $id "); /* Ajoute les associations pour toutes les catégories auxquelles ce article * appartient. Si aucune catégorie n'a été sélectionnée, il appartient * à la catégorie racine. */ if (count($frm['rubriques']) == 0) { $frm['rubriques'][] = 0; } for ($i = 0; $i < count($frm['rubriques']); $i++) { $qid = mysql_query_override(" INSERT INTO gaia_articles_rubriques (rubrique_id, article_id) VALUES ('{$frm['rubriques'][$i]}', '$id') "); } } function affiche_liste_articles($start, $frm) { global $wwwroot; global $rubrique_options; ?> <table border="0" class="tablespace" width="760"> <tr> <td class=normal colspan="4"> <form method="POST" action="<?=$_SERVER['PHP_SELF']?>?start=0&mode=recherche"> <table border="0" class="tablespace" width="760"> <tr><td colspan="3" class="entete" bgcolor="#EEEEEE">CHOISIR VOS CRITERES DE RECHERCHE</td></tr> <tr> <td class="label">Critère de recherche : </td> <td class="normal">1. Etat de l'article : <br /> <select size="1" name="etat" class="formulaire1"> <option value="NULL">Tous les articles</option> <option value="1">articles en ligne</option> <option value="0">articles en attente</option> </select> </td> <td class="normal" valign="top">ou 2. L'article est-il en page d'accueil ?<br /> <span class="normal"> <input type="radio" name="homepage" value="NULL" checked>peu importe <input type="radio" name="homepage" value="1" >oui <input type="radio" name="homepage" value="0" >non </span> </td> </tr> <tr> <td align="center" colspan="3"><input class="bouton" type="submit" value="Rechercher" class="formulaire1" name="action"> </td> </tr> </table> </form> </td></tr> <tr> <td class="entete" colspan="4">LISTE DES ARTICLES</td> </tr> <tr> <td colspan="4"><a class="normal" href="<?=$_SERVER['PHP_SELF']?>?mode=ajout"> <img src="images/add.png" width="16" height="16" alt="" border="0" align="middle">Ajouter un article</a> </td> </tr> <? $Links = new MultiPage(); $Links-> ResultPerPage = 15; $Links-> LinkPerPage = 15; $Links-> Template = "tpl1.htm"; // Construction de la clause WHERE $where = ""; if (isset($frm['etat'])) {if ($frm['etat'] != "NULL") {$where = " WHERE a.etat = '".$frm['etat']."'";}} if (isset($frm['homepage']) ) { if ($frm['homepage'] != "NULL") { $where = " WHERE a.on_special = '".$frm['homepage']."'"; } } $Links->SqlRequest = "SELECT a.id, a.titre_".$_SESSION['langue'].", a.etat FROM gaia_articles a ".$where." ORDER BY a.id DESC"; $Links-> Initialize(); $result=mysql_query_override($Links-> LimitSQL); if (mysql_num_rows_override($result) == 0) { echo "<tr><td class=normal><b>Aucun article enregistré dans la base pour la langue ".$_SESSION['langue'].".</b></td></tr>"; } else { ?> <tr bgcolor="#6699ff"> <td class="menu">Action</td> <td class="menu">Rubrique</td> <td class="menu">Titre</td> <td class="menu">Etat</td> </tr> <? $i = 0; while ($ligne = mysql_fetch_array_override($result)) { ?> <tr bgcolor="<?echo ($i % 2 == 0 ? '#F4F4F4' : '#ffffff' );?>"> <td align="center"> <a onClick="Javascript:return confirm('êtes-vous sûr de vouloir supprimer le article ?');" class=normal title="Supprimer <?echo addslashes($ligne['titre_'.$_SESSION['langue'].'']) ?>" href="<?=$_SERVER['PHP_SELF']?>?mode=suppr&id=<?=$ligne['id'] ?>"> <i class="ti-close"></i></a></td> <td> <?php $sqlRUB = "SELECT id, nom_".$_SESSION['langue']." FROM gaia_rubriques r, gaia_articles_rubriques pr WHERE pr.article_id = ".$ligne['id']." AND r.id = pr.rubrique_id"; $resRUB = mysql_query_override($sqlRUB) or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); if (mysql_num_rows_override($resRUB) > 0) { while ($RUB = mysql_fetch_array_override($resRUB)) { echo html_entity_decode($RUB['nom_'.$_SESSION['langue'].''])."<br />"; } } else { echo "<font color=\"red\"><b>n.c</b></font>"; } ?> </td> <td class=normal><a class=normal title="Modifier ce article" href="<?=$_SERVER['PHP_SELF']?>?mode=modif&id=<?=$ligne['id'] ?>"><?=html_entity_decode($ligne['titre_'.$_SESSION['langue'].''])?></a></td> <td align=center class=normal><?if (empty($ligne['etat'])) {echo "<img src=".$wwwroot."/administrer/images/puce-blanche.gif>";} else {echo '<i class="ti-check"></i>';} ?></td> </tr> <?$i++; } } echo "<tr><td align=\"center\" colspan=\"4\">"; //Boutons précédent et suivant $Links-> pMultipage(); echo "</td></tr></table>"; } function valide_form_article(&$frm, &$erreurs) { $erreurs = array(); $msg = array(); if (empty($frm['rubriques'][0])) { $erreurs['rubriques'] = true; $msg['rubriques'] = " Vous devez choisir au moins une rubrique pour cette article."; } if (empty($frm['titre_fr'])) { $erreurs['titre_fr'] = true; $msg['titre_fr'] = " Vous devez insérer un titre d'article."; } return $msg; } function supprime_fichier($id, $file) { /* Supprime le produit spécificié par $id. Il faut supprimer le produit * puis les entrées correspondantes de la table produits_categories. */ global $the_path ; /* Charge les infos du produit. */ switch($file) { case "image1" : $sql = "SELECT image1 FROM gaia_articles WHERE id = '$id'"; $res = mysql_query_override($sql); $file = mysql_fetch_row_override($res); mysql_query_override("UPDATE gaia_articles SET image1 = '' WHERE id = '$id'"); break; } @unlink($the_path.$file[0]); ?> <div class="normal"> Le fichier <b><?=$file[0]?> </b>a été effacé du serveur. </div> <? } ?>