0byt3m1n1
Path:
/
home
/
kassiope
/
www
/
administrer
/
[
Home
]
File: redirections.php
<?php $menu=3; include("../configuration.inc.php"); necessite_identification(); necessite_priv("admin"); /* ini_set('display_errors',1); error_reporting(E_ALL); */ $DOC_TITLE = "Gérer les redirections"; include("modeles/haut.php"); $start = vn($_REQUEST['start']);// Détermine la variable start (début de page) switch (vb($_REQUEST['mode'])) { case "ajout" : affiche_formulaire_ajout_redirection(vn($_REQUEST['parent_id'])); break; case "modif" : affiche_formulaire_modif_redirection($_REQUEST['id']); break; case "positionner" : if (isset($_POST['id'])) { for($i=0;$i<count($_POST['id']);$i++) { mysql_query_override("UPDATE gaia_redirections SET position = '".$i."' WHERE id = '".intval($_POST['id'][$i])."'"); } } maj_htaccess(); echo '<div class="alert alert-success">Le positionnement des redirections a été effectué.</div>'; affiche_formulaire_liste_redirection($_REQUEST['id']); break; case "suppr" : supprime_redirection($_REQUEST['id']); affiche_formulaire_liste_redirection($_REQUEST['id']); break; case "insere" : insere_redirection($_POST); affiche_formulaire_liste_redirection($_REQUEST['id']); break; case "maj" : maj_redirection($_POST); affiche_formulaire_liste_redirection($_REQUEST['id']); break; case "recherche" : affiche_recherche_liste_redirection($_REQUEST['id'], $_POST); break; default : affiche_formulaire_liste_redirection($_REQUEST['id']=0); break; } include("modeles/bas.php"); /****************************************************************************** * FONCTIONS *****************************************************************************/ function maj_htaccess() { global $dirroot, $wwwroot; $data = file($dirroot."/.htaccess"); $out = array(); foreach($data as $line) $out[] = $line; $fp = fopen($dirroot."/.htaccess", "w+"); flock($fp, LOCK_EX); foreach($out as $k => $line) { if(mb_ereg('~~start~~', $line)) exit; else fwrite($fp, $line); } fwrite($fp,"\n\n# ~~start~~ Do not remove this comment, Wagaia will keep automatically the code over this comment when .htaccess will be generated again\n\n"); $rec = mysql_query_override("select * from gaia_redirections where etat = 1 order by position"); while($redir = mysql_fetch_array_override($rec)) { $old = explode('/',$redir['old_url']); $old = $old[(count($old)-1)]; $new = explode('/',$redir['new_url']); $new = $new[(count($new)-1)]; $line = "Redirect 301 /".$old." ".$wwwroot.$new."\n"; fwrite($fp, $line); } flock($fp, LOCK_UN); fclose($fp); } function affiche_formulaire_ajout_redirection($parent_id) { global $frm; global $categorie_options; /* Affiche un formulaire de redirections vide */ /* Valeurs par défaut */ $frm["nouveau_mode"] = "insere"; $frm["old_url"] = ""; $frm["new_url"] = ""; $frm["titre_soumet"] = "Ajouter une redirection"; affiche_formulaire_redirection(); } function affiche_formulaire_modif_redirection($id) { /* Affiche le formulaire de modification de redirections. */ global $frm; /* Charge les infos de Le redirections. */ $qid = mysql_query_override("SELECT * FROM gaia_redirections WHERE id = $id"); $frm = mysql_fetch_array_override($qid); $frm["nouveau_mode"] = "maj"; $frm["titre_soumet"] = "Sauvegarder changements"; /* Affiche la liste des redirections, en présélectionnant Le redirections choisie. */ affiche_formulaire_redirection(); } function supprime_redirection($id) { /* Supprime Le redirections spécifiée par $id, et déplace tous les produits sous * cette redirections au parent immédiat. */ /* Réaffecte toutes les sous-redirections de cette redirections à Le redirections parente */ mysql_query_override("DELETE FROM gaia_redirections WHERE id = $id"); maj_htaccess(); echo '<div class="alert alert-error">Le redirection a été effacée <button type="button" class="close" data-dismiss="alert">×</button></div>'; } function insere_redirection($frm, $sup = '') { /* Ajoute une nouvelle sous-redirections sous le parent $id. Tous les champs sont stockés dans la variable $frm */ valide($frm['etat']); $qid = mysql_query_override(" INSERT INTO gaia_redirections (date, old_url, new_url, etat) VALUES ('".time()."', '".addslashes($frm['old_url'])."', '".addslashes($frm['new_url'])."','".intval($frm['etat'])."')") or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); maj_htaccess(); if (empty($sup)) echo '<div class="alert alert-success">Le redirection a été ajoutée <button type="button" class="close" data-dismiss="alert">×</button></div>'; else return mysql_insert_id_override(); } function maj_redirection($frm) { /* Met à jour Le redirections $id avec les nouvelles valeurs contenues dans $frm */ valide($frm['etat']); valide($frm['is_filter']); $qid = mysql_query_override(" UPDATE gaia_redirections SET old_url = '".addslashes($frm['old_url'])."' ,new_url = '".addslashes($frm['new_url'])."' ,etat = '$frm[etat]' WHERE id = '".intval($_POST['id'])."' ") or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); maj_htaccess(); /* Efface toutes les catégories auxquelles le produit est associé */ echo '<div class="alert alert-success">Le redirection a été modifiée <button type="button" class="close" data-dismiss="alert">×</button></div>'; } function affiche_formulaire_liste_redirection($id) { /* Affiche un formulaire de redirections vide */ /* Valeurs par défaut */ $frm["parent"] = array($id); $frm["nouveau_mode"] = "insere"; $frm["old_url"] = ""; $frm["new_url"] = ""; $frm["etat"] = ""; $frm["titre_soumet"] = "Ajouter une redirection"; /* Affiche la liste des redirections, en présélectionnant Le redirections choisie. */ affiche_liste_redirection(); } function affiche_liste_redirection() { GLOBAL $id; GLOBAL $wwwroot; ?> <form name="entryform" method="post" action="<?=$_SERVER['PHP_SELF']?>"> <input type="hidden" name="mode" value="positionner"> <table border=0 cellpadding=0 cellspacing=0 width="100%" class="tablespace"> <tr> <th colspan="444" class="entete">Liste des redirections</th> </tr> <tr> <td colspan="444" class="action"><a href="<?=$_SERVER['PHP_SELF']?>?mode=ajout"> Ajouter une redirection</a></td> </tr> <tr bgcolor="#6699ff"> <td class="menu">Action</td> <td class="menu">Ancienne URL</td> <td class="menu">Nouvelle URL</td> <td class="menu" align="center">Etat</td> </tr> <?php $result=mysql_query_override("SELECT * FROM gaia_redirections ORDER BY position"); if (mysql_num_rows_override($result) == 0) { echo "<tr><td class=\"normal\" colspan=\"3\"><b>Aucune redirection définie</b></td></tr>"; } else { echo '<tbody id="sortable">'; while ($Bd = mysql_fetch_array_override($result)) { $old = explode('/',$Bd['old_url']); $old = $old[(count($old)-1)]; $new = explode('/',$Bd['new_url']); $new = $new[(count($new)-1)]; ?> <tr> <td style="width:250px"> <input type="hidden" name="id[]" value="<?=$Bd['id']?>"> <a href="#myModal<?=$Bd['id']?>" role="button" data-toggle="modal" title="Supprimer" rel="tooltip" ><i class="ti-close"></i></a> <a title="Modifier" rel="tooltip" href="<?=$_SERVER['PHP_SELF']?>?mode=modif&id=<?=$Bd['id'] ?>"><i class="ti-pencil"></i></a> </td> <td><b><?=stripslashes($old)?></b></td> <td><b><?=stripslashes($new)?></b></td> <td align="center"><?if (empty($Bd['etat'])) {echo '<i class="ti-check-empty"></i>';} else {echo '<i class="ti-check"></i>';} ?></td> </tr> <div id="myModal<?=$Bd['id']?>" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalredirection" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalredirection">Supprimer</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <p>Êtes-vous sur de vouloir supprimer cet enregistrement ?</p> </div> <div class="modal-footer"> <button class="btn" data-dismiss="modal" aria-hidden="true">Annuler</button> <a class="btn btn-primary" href="<?=$_SERVER['PHP_SELF']?>?mode=suppr&id=<?=$Bd['id'] ?>">Supprimer</a> </div> </div> </div> </div> <?php } echo '</tbody>'; } echo '<tr><td colspan="444" align="center" class="bouton" style="background:#fff"><input type="submit" value="Positionner les redirections"></td></tr>'; echo "</table></form>"; } function affiche_formulaire_redirection() { GLOBAL $frm; global $id; global $repertoire_upload; global $wwwroot, $dirroot; global $categorie_options; global $markwidth, $markheight; ?> <form name="entryform" method="post" action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data"> <input type="hidden" name="mode" id="mode" value="<?=$frm["nouveau_mode"]?>"> <input type="hidden" name="id" value="<?=(isset($frm['id'])?$frm['id']:'')?>"> <table border="0" class="tablespace" width="100%" cellpadding="0" cellspacing="0"> <tr> <th class="entete" colspan="2">Ajouter une redirection permanente</th> </tr> <tr> <td class="normal">Etat :</td> <td> <label class="toggle-switch"> <input type="checkbox" name="etat" <?=frmvalide($frm['etat'])?> value="1"> <span data-unchecked="Off" data-checked="On"></span> </label> </td> </tr> <tr> <td>Ancienne URL :</td> <td>Nouvelle URL :</td> </tr> <tr> <td><input type="text" name="old_url" size=25 value="<?=$frm["old_url"] ?>"></td> <td><input type="text" name="new_url" size=25 value="<?=$frm["new_url"] ?>"></td> </tr> <tr> <td colspan="2" class="bouton" align="center"><input type="button" onclick="location.href='<?php echo $wwwroot. $_SERVER['PHP_SELF']; ?>'" value="Annuler"><input class="bouton" type="submit" value="<?=$frm["titre_soumet"] ?>"></td> </tr> </table> </form> <? } ?>