Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
srv
/
data
/
web
/
vhosts
/
www.rh24.fr
/
htdocs
/
htdocs
/
admin210
/
contenu
/
corps
/
_bin
/
/srv/data/web/vhosts/www.rh24.fr/htdocs/htdocs/admin210/contenu/corps/_bin/fonctioncategorie.php
<?php function insert($nom_cat, $idfather) { require("../../../connexionBD.php"); if($nom_cat=='')$idfather=0; $sql="SELECT level FROM categorie WHERE id=$idfather"; $result=$connexion->query($sql); $R = $result->fetch(); $levelfather=$R[0]; $sql = "SELECT * FROM categorie WHERE level=" . ($levelfather + 1) . " AND id= " . $idfather; $result = $connexion->query($sql); $Res = $result->fetchAll(); if (count($Res) == 0) { $sql = "SELECT lft FROM categorie WHERE level=" . $levelfather . " AND id= " . $idfather; $result = $connexion->query($sql); $r = $result->fetch(); $lft = $r[0] + 1; $rght = $lft + 1; $level = $levelfather + 1; // level du fils $tabup= array($lft); $reqPrep=$connexion->prepare("UPDATE categorie SET rght = rght +2 WHERE rght >= ? "); $reqPrep->execute($tabup); $reqPrep->closeCursor(); $tabup= array($lft); $reqPrep=$connexion->prepare("UPDATE categorie SET lft = lft +2 WHERE lft >= ? "); $reqPrep->execute($tabup); $reqPrep->closeCursor(); $tabin= array($nom_cat, $lft, $rght, $level, $idfather); $reqPrep=$connexion->prepare("INSERT INTO `categorie`(`name`, `lft`, `rght`, `level`, `id_parent`) VALUES (?,?,?,?,?) "); $reqPrep->execute($tabin); $reqPrep->closeCursor(); } else { $sql = "SELECT level FROM categorie WHERE id= " . $idfather; $result = $connexion->query($sql); $r = $result->fetch(); $level = $r[0] + 1; // level du fils $sql = "SELECT MAX(`rght`) FROM categorie WHERE `level`= " . $level; $result = $connexion->query($sql); $r = $result->fetch(); $lft = $r[0] + 1; $rght = $lft + 1; $tabup= array($lft); $reqPrep=$connexion->prepare("UPDATE categorie SET rght = rght +2 WHERE rght >= ? "); $reqPrep->execute($tabup); $reqPrep->closeCursor(); $tabup= array($lft); $reqPrep=$connexion->prepare("UPDATE categorie SET lft = lft +2 WHERE lft >= ? "); $reqPrep->execute($tabup); $reqPrep->closeCursor(); $tabin= array($nom_cat, $lft, $rght, $level, $idfather); $reqPrep=$connexion->prepare("INSERT INTO `categorie`(`name`, `lft`, `rght`, `level`, `id_parent`) VALUES (?,?,?,?,?) "); $reqPrep->execute($tabin); $reqPrep->closeCursor(); } } /* * $id id de l'élèment à supprimer * $sup type de suppression * @ retourne 1 si il y'a suppression 0 sinon **/ function delete($id, $sup) { require("../../../connexionBD.php"); $sql = "SELECT * FROM categorie WHERE id=" . ($id); $result = $connexion->query($sql); $Res = $result->fetch(); $lft = $Res['lft']; $rght = $Res['rght']; $level= $Res['level']; $id_parent=$Res['id_parent']; $del=$rght-$lft+1; $sql="SELECT * FROM produit WHERE produit.categorie IN ( SELECT categorie.id FROM categorie ) "; $result = $connexion->query($sql); $Res = $result->fetchAll(); $sql="SELECT * FROM produit, categorie WHERE produit.categorie = categorie.id AND categorie.id=".$id; $result = $connexion->query($sql); $Res1 = $result->fetchAll(); // suppression de l'élèment courant if($sup==0){ if($rght - $lft == 1 && count($Res1) == 0) { $tabsup= array($lft); $reqPrep=$connexion->prepare("DELETE FROM categorie WHERE lft= ? "); $reqPrep->execute($tabsup); $reqPrep->closeCursor(); $tabup= array($lft); $reqPrep=$connexion->prepare("UPDATE categorie SET rght=rght-2 WHERE rght >= ? "); $reqPrep->execute($tabup); $reqPrep->closeCursor(); $tabup= array($lft); $reqPrep=$connexion->prepare("UPDATE categorie SET lft=lft-2 WHERE lft >= ? "); $reqPrep->execute($tabup); $reqPrep->closeCursor(); return 1; } else if($rght - $lft != 1 && count($Res) == 0) { // mise à jour de tout les fils de l'élement à supprimer(lft,rght,level) $tabup= array($lft,$rght); $reqPrep=$connexion->prepare("UPDATE categorie SET lft=lft-1,rght=rght-1,level=level-1 WHERE lft > ? AND rght < ? "); $reqPrep->execute($tabup); $reqPrep->closeCursor(); // mise à jour que des fils directs de l'élement à supprimer(id du pére) $tabup= array($id_parent,$lft,$rght,$level); $reqPrep=$connexion->prepare("UPDATE categorie SET id_parent= ? WHERE lft >= ? AND rght < ? AND level= ? "); $reqPrep->execute($tabup); $reqPrep->closeCursor(); // suppression de l'élèment $tabsup= array($id); $reqPrep=$connexion->prepare("DELETE FROM categorie WHERE id = ? "); $reqPrep->execute($tabsup); $reqPrep->closeCursor(); //mise à jour du reste de l'arbre $tabup= array($rght); $reqPrep=$connexion->prepare("UPDATE categorie SET rght=rght-2 WHERE rght > ? "); $reqPrep->execute($tabup); $reqPrep->closeCursor(); $tabup= array($rght); $reqPrep=$connexion->prepare("UPDATE categorie SET lft=lft-2 WHERE lft > ? "); $reqPrep->execute($tabup); $reqPrep->closeCursor(); return 1; }else return 0; } //supprimer tout le sous-arbre else if($sup==1){ if ($rght - $lft != 1 && count($Res) == 0) { $tabsup= array($lft, $rght); $reqPrep=$connexion->prepare("DELETE FROM categorie WHERE lft>= ? AND rght<= ? "); $reqPrep->execute($tabsup); $reqPrep->closeCursor(); $tabup= array($del, $lft); $reqPrep=$connexion->prepare("UPDATE categorie SET rght=rght- ? WHERE rght >= ?"); $reqPrep->execute($tabup); $reqPrep->closeCursor(); $tabup= array($del, $lft); $reqPrep=$connexion->prepare("UPDATE categorie SET lft=lft- ? WHERE lft > ?"); $reqPrep->execute($tabup); $reqPrep->closeCursor(); return 1; } else if ($rght - $lft == 1 && count($Res1) == 0) { $tabsup= array($lft); $reqPrep=$connexion->prepare("DELETE FROM categorie WHERE lft= ? "); $reqPrep->execute($tabsup); $reqPrep->closeCursor(); $tabup= array($lft); $reqPrep=$connexion->prepare("UPDATE categorie SET rght=rght-2 WHERE rght >= ?"); $reqPrep->execute($tabup); $reqPrep->closeCursor(); $tabup= array($lft); $reqPrep=$connexion->prepare("UPDATE categorie SET lft=lft-2 WHERE lft >= ?"); $reqPrep->execute($tabup); $reqPrep->closeCursor(); return 1; }else return 0; } } function display($parent, $level, $data) { $html = "<div class='row'>"; foreach ($data AS $menu) { if ($parent == $menu['id_parent']) { if($menu['level']!=0){ $html .= "<div class='span12'>"; $html .= "<div class='span3'>"; for ($i = 1; $i < $level; $i++) $html .= "<i class='icon-asterisk'></i>"; $html .= "</div>"; $html.="<form class='f-left' method='post' action='#'> <input type='hidden' value='$menu[id]' name='cat' /> <input class='f-left' name='newcat' value=\"".htmlspecialchars($menu['name'])."\" type='text' /> <select class='f-left' style='margin:0 5px;' name='listcat' >"; foreach ($data AS $cat2) { if($cat2['id'] != $menu['id']){ $html.="<option value='$cat2[id]' ".(($menu['id_parent']==$cat2['id'])?"selected='selected'":"")."> $cat2[name] </option> "; } } $html.=" </select> <button name='update' class='btn btn-mini btn-warning f-left' style='margin-top:3px;' type='submit'><i class='icon-edit icon-white'></i></button> </form>"; $html.="<div class='f-left'><a href='#suppr$menu[id]' class='btn btn-mini btn-danger ' data-toggle='modal'><i class='icon-remove icon-white'></i></a></div>"; $html.="<div class='modal hide ta-left' id='suppr$menu[id]'> <div class='modal-header'> <button type='button' class='close' data-dismiss='modal'>×</button> <h3>Suppression d'une catégorie</h3> </div> <div class='modal-body'> </div> <div class='modal-footer'> <form method='post' class='ta-right' action='#'> <input type='hidden' value='$menu[id]' name='cat' /> <button name='del1' class='btn btn-warning' type='submit'>Supprimer uniquement l'élèment sélectionné</button> </form> <form method='post' class='ta-right' action='#'> <input type='hidden' value='$menu[id]' name='cat' /> <button name='del2' class='btn btn-danger' type='submit'>Tout Supprimer</button> </form> <a class='btn' data-dismiss='modal' aria-hidden='true'>Annuler</a> </div> </div> "; $html .= "</div>"; } $html .= display($menu['id'], ($level + 1), $data); } } $html .= "</div>"; return $html; } function recursive_table($parent, $level, $data) { $result = array(); foreach ($data AS $menu) { if ($parent == $menu['id_parent']) { $result[] = array( 'id' => $menu['id'], 'name' => $menu['name'], 'children' => recursive_table($menu['id'], ($level + 1), $data) ); } } return $result; } function move_it(){ } function display_categorie(){ require("../../../connexionBD.php"); $sql="SELECT * FROM categorie ORDER BY name ASC"; $result=$connexion->query($sql); $data = array(); while ($row = $result->fetch(PDO::FETCH_ASSOC)) $data[] = $row; // si l'erbre est vide if(count($data) <= 0){ $sql='INSERT INTO `categorie`(`name`, `lft`, `rght`, `level`, `id_parent`) VALUES ("Nouvelle Categorie",1,2,0,0)'; $connexion->exec($sql); } return $data; } function display_in_list(){ require("../../../connexionBD.php"); $sql="SELECT * FROM categorie ORDER BY lft ASC"; $result=$connexion->query($sql); $data = array(); while ($row = $result->fetch(PDO::FETCH_ASSOC)) $data[] = $row; return $data; } function update($name,$id){ require("../../../connexionBD.php"); $tabup= array($name,$id); $reqPrep=$connexion->prepare("UPDATE categorie SET name= ? WHERE id = ?"); $reqPrep->execute($tabup); $reqPrep->closeCursor(); } ?>