Suite outil edition menus

This commit is contained in:
Laurent Destailleur 2007-06-07 22:52:47 +00:00
parent fac3fb3be8
commit 9449542711
4 changed files with 62 additions and 43 deletions

View File

@ -56,6 +56,11 @@ if (isset($_GET["action"]) && $_GET["action"] == 'update')
$sql.=" WHERE m.rowid = ".$_POST['menuId']; $sql.=" WHERE m.rowid = ".$_POST['menuId'];
$db->query($sql); $db->query($sql);
} }
else
{
header("location: index.php?menu_handler=".$menu_handler);
exit;
}
if($_GET['return']) if($_GET['return'])
{ {
@ -121,6 +126,16 @@ if (isset($_GET["action"]) && $_GET["action"] == 'add')
dolibarr_print_error($db); dolibarr_print_error($db);
} }
if ($rowid == $_POST['menuId'])
{
$mesg='<div class="error">'.'FailedToInsertParentdoesNotExist sql='.$sql.'</div>';
$_GET["action"] = 'create';
$error++;
}
}
if (! $error)
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."menu(rowid,menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, `right`, target, user, `order`)"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."menu(rowid,menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, `right`, target, user, `order`)";
$sql.=" VALUES(".$rowid.",'".$_POST['handler']."','".$_POST['type']."','".$_POST['mainmenu']."','".$_POST['leftmenu']."',".$_POST['menuId'].",'".$_POST['url']."','".$_POST['titre']."','".$_POST['level']."','".$_POST['langs']."','".$_POST['right']."','".$_POST['target']."',".$_POST['user'].",0)"; $sql.=" VALUES(".$rowid.",'".$_POST['handler']."','".$_POST['type']."','".$_POST['mainmenu']."','".$_POST['leftmenu']."',".$_POST['menuId'].",'".$_POST['url']."','".$_POST['titre']."','".$_POST['level']."','".$_POST['langs']."','".$_POST['right']."','".$_POST['target']."',".$_POST['user'].",0)";
@ -128,7 +143,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'add')
$result=$db->query($sql); $result=$db->query($sql);
if ($result > 0) if ($result > 0)
{ {
dolibarr_syslog("location: edit.php?action=edit&menuId=".$rowid); dolibarr_syslog("location: edit.php?action=edit&menuId=".$rowid);
header("location: edit.php?action=edit&menuId=".$rowid); header("location: edit.php?action=edit&menuId=".$rowid);
exit; exit;
} }
@ -252,16 +267,11 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Id // Id
if($_GET['menuId'] == 0) $parent_rowid = $_GET['menuId'];
{ if ($_GET['menuId'])
$parent_rowid = $_GET['menuId'];
$parent_level = -2;
}
else
{ {
$sql = "SELECT m.rowid, m.mainmenu, m.level, m.langs FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET['menuId']; $sql = "SELECT m.rowid, m.mainmenu, m.level, m.langs FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET['menuId'];
$res = $db->query($sql); $res = $db->query($sql);
if ($res) if ($res)
{ {
@ -279,7 +289,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
print '<tr><td><b>'.$langs->trans('MenuIdParent').'</b></td>'; print '<tr><td><b>'.$langs->trans('MenuIdParent').'</b></td>';
//$menu_handler //$menu_handler
//print '<td><input type="text" size="50" name="handler" value="all"></td>'; //print '<td><input type="text" size="50" name="handler" value="all"></td>';
print '<td><input type="text" size="50" name="menuId" value="0"></td>'; print '<td><input type="text" size="50" name="menuId" value="'.$parent_rowid.'"></td>';
print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>'; print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>';
//Handler //Handler
@ -320,7 +330,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
print '<option value="_new"'.($menu->target=="_new"?' selected="true"':'').'>'.$langs->trans('_new').'</option>'; print '<option value="_new"'.($menu->target=="_new"?' selected="true"':'').'>'.$langs->trans('_new').'</option>';
print '</select></td></td><td>'.$langs->trans('DetailTarget').'</td></tr>'; print '</select></td></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
//Right //Right
print '<tr><td>'.$langs->trans('Right').'</td><td><input type="text" size="50" name="right" value=""></td><td>'.$langs->trans('DetailRight').'</td></tr>'; print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" size="50" name="right" value=""></td><td>'.$langs->trans('DetailRight').'</td></tr>';
//Mainmenu = group //Mainmenu = group
//print '<tr><td>'.$langs->trans('Group').'</td><td><input type="text" size="50" name="mainmenu" value="'.$mainmenu.'"></td><td>'.$langs->trans('DetailMainmenu').'</td></tr>'; //print '<tr><td>'.$langs->trans('Group').'</td><td><input type="text" size="50" name="mainmenu" value="'.$mainmenu.'"></td><td>'.$langs->trans('DetailMainmenu').'</td></tr>';
@ -488,7 +498,7 @@ elseif (isset($_GET["action"]) && $_GET["action"] == 'edit')
print '<option value="1"'.($menu->user==1?' selected="true"':'').'>'.$langs->trans('Externe').'</option>'; print '<option value="1"'.($menu->user==1?' selected="true"':'').'>'.$langs->trans('Externe').'</option>';
print '<option value="2"'.($menu->user==2?' selected="true"':'').'>Tous</option>'; print '<option value="2"'.($menu->user==2?' selected="true"':'').'>Tous</option>';
print '</td>'; print '</td>';
print '<td align="center"><input type="submit" class="button"></td>'; print '<td align="center"><input type="submit" class="button" value="'.$langs->trans("Add").'"></td>';
print '</tr>'; print '</tr>';
print '</form>'; print '</form>';
@ -523,7 +533,7 @@ elseif (isset($_GET["action"]) && $_GET["action"] == 'edit')
print '<option value="1"'.($menu->user==1?' selected="true"':'').'>'.$langs->trans('Externe').'</option>'; print '<option value="1"'.($menu->user==1?' selected="true"':'').'>'.$langs->trans('Externe').'</option>';
print '<option value="2"'.($menu->user==2?' selected="true"':'').'>Tous</option>'; print '<option value="2"'.($menu->user==2?' selected="true"':'').'>Tous</option>';
print '</td>'; print '</td>';
print '<td align="center"><input type="submit" class="button""></td>'; print '<td align="center"><input type="submit" class="button" value="'.$langs->trans("Add").'"></td>';
print '</tr>'; print '</tr>';
print '</form>'; print '</form>';

View File

@ -32,6 +32,8 @@ require("./pre.inc.php");
if (! $user->admin) if (! $user->admin)
accessforbidden(); accessforbidden();
$dirtop = "../../includes/menus/barre_top";
$dirleft = "../../includes/menus/barre_left";
$menu_handler_top=$conf->global->MAIN_MENU_BARRETOP; $menu_handler_top=$conf->global->MAIN_MENU_BARRETOP;
$menu_handler_left=$conf->global->MAIN_MENU_BARRELEFT; $menu_handler_left=$conf->global->MAIN_MENU_BARRELEFT;
@ -42,6 +44,9 @@ $menu_handler_left=eregi_replace('_frontoffice\.php','',$menu_handler_left);
$menu_handler=$menu_handler_left; $menu_handler=$menu_handler_left;
if ($_REQUEST["menu_handler"]) $menu_handler=$_REQUEST["menu_handler"];
/* /*
* Actions * Actions
*/ */
@ -178,6 +183,7 @@ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes')
/* /*
* Affichage page * Affichage page
*/ */
$html=new Form($db);
llxHeader(); llxHeader();
@ -209,18 +215,21 @@ if ($_GET["action"] == 'delete')
$obj = $db->fetch_object($result); $obj = $db->fetch_object($result);
$html = new Form($db); $html = new Form($db);
$html->form_confirm("index.php?menuId=".$_GET['menuId'],$langs->trans("DeleteMenu"),$langs->trans("ConfirmDeleteMenu",$obj->titre),"confirm_delete"); $html->form_confirm("index.php?menu_handler=".$menu_handler."&menuId=".$_GET['menuId'],$langs->trans("DeleteMenu"),$langs->trans("ConfirmDeleteMenu",$obj->titre),"confirm_delete");
print "<br />\n"; print "<br />\n";
} }
print '<form name="newmenu" class="nocellnopadding" action="'.$_SERVER["PHP_SELF"].'">';
print '<input type="hidden" action="change_menu_handler">';
print $langs->trans("MenuHandler").': ';
print $html->select_menu_families($menu_handler,'menu_handler',$dirleft);
print ' &nbsp; <input type="submit" class="button" value="'.$langs->trans("Refresh").'">';
print '</form>';
print '<br>';
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print '<tr>';
print '<td>'.$langs->trans("MenuHandler").': <b>'.$menu_handler.'</b></td>';
print '</tr>';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td>'.$langs->trans("TreeMenuPersonalized").'</td>'; print '<td>'.$langs->trans("TreeMenuPersonalized").'</td>';
print '</tr>'; print '</tr>';
@ -244,7 +253,7 @@ if ($conf->use_javascript)
*/ */
function affiche($tab,$rang) function affiche($tab,$rang)
{ {
global $rangLast, $idLast; global $rangLast, $idLast, $menu_handler;
if ($conf->use_javascript) if ($conf->use_javascript)
{ {
@ -291,11 +300,12 @@ function affiche($tab,$rang)
} }
print '<li id=li'.$tab[0].'>'; print '<li id=li'.$tab[0].'>';
print '<strong><a href="edit.php?action=edit&menuId='.$tab[0].'">'.$tab[2].'</a></strong>'; print '<strong>';
print '<div class="menuEdit"><a href="edit.php?action=edit&menuId='.$tab[0].'"><img src="../../theme/auguria/img/edit.png" class="menuEdit" id="edit'.$tab[0].'" /></a></div>'; print '<a href="edit.php?menu_handler='.$menu_handler.'&action=edit&menuId='.$tab[0].'">'.$tab[2].'</a></strong>';
print '<div class="menuNew"><a href="edit.php?action=create&menuId='.$tab[0].'"><img src="../../theme/auguria/img/filenew.png" class="menuNew" id="new'.$tab[0].'" /></a></div>'; print '<div class="menuEdit"><a href="edit.php?menu_handler='.$menu_handler.'&action=edit&menuId='.$tab[0].'"><img src="../../theme/auguria/img/edit.png" class="menuEdit" id="edit'.$tab[0].'" /></a></div>';
print '<div class="menuDel"><a href="index.php?action=delete&menuId='.$tab[0].'"><img src="../../theme/auguria/img/stcomm-1.png" class="menuDel" id="del'.$tab[0].'" /></a></div>'; print '<div class="menuNew"><a href="edit.php?menu_handler='.$menu_handler.'&action=create&menuId='.$tab[0].'"><img src="../../theme/auguria/img/filenew.png" class="menuNew" id="new'.$tab[0].'" /></a></div>';
print '<div class="menuFleche"><a href="index.php?action=up&menuId='.$tab[0].'">'.img_picto("Monter","1uparrow").'</a><a href="index.php?action=down&menuId='.$tab[0].'">'.img_picto("Descendre","1downarrow").'</a></div>'; print '<div class="menuDel"><a href="index.php?menu_handler='.$menu_handler.'&action=delete&menuId='.$tab[0].'"><img src="../../theme/auguria/img/stcomm-1.png" class="menuDel" id="del'.$tab[0].'" /></a></div>';
print '<div class="menuFleche"><a href="index.php?menu_handler='.$menu_handler.'&action=up&menuId='.$tab[0].'">'.img_picto("Monter","1uparrow").'</a><a href="index.php?action=down&menuId='.$tab[0].'">'.img_picto("Descendre","1downarrow").'</a></div>';
print '</li>'; print '</li>';
echo "\n"; echo "\n";
@ -311,24 +321,23 @@ function affiche($tab,$rang)
*/ */
function recur($tab,$pere,$rang) { function recur($tab,$pere,$rang) {
//ballayage du tableau if ($rang > 10) return; // Protection contre boucle infinie
for ($x=0;$x<count($tab);$x++) {
//si un élément a pour père : $pere //ballayage du tableau
if ($tab[$x][1]==$pere) { for ($x=0;$x<count($tab);$x++)
{
//si un élément a pour père : $pere
if ($tab[$x][1]==$pere) {
//on l'affiche avec le décallage courrant //on l'affiche avec le décallage courrant
affiche($tab[$x],$rang); affiche($tab[$x],$rang);
/*et on recherche ses fils /*et on recherche ses fils
en rappelant la fonction recur() en rappelant la fonction recur()
(+ incrémentation du décallage)*/ (+ incrémentation du décallage)*/
recur($tab,$tab[$x][0],$rang+1); recur($tab,$tab[$x][0],$rang+1);
} }
}
}
} }
/*-------------------- MAIN ----------------------- /*-------------------- MAIN -----------------------
@ -376,8 +385,6 @@ if ($res)
print '</ul>'; print '</ul>';
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';

View File

@ -366,6 +366,7 @@ NoEMail=No EMail
Owner=Owner Owner=Owner
DetectedVersion=Detected version DetectedVersion=Detected version
FollowingConstantsWillBeSubstituted=Following constants will be substitute with corresponding value. FollowingConstantsWillBeSubstituted=Following constants will be substitute with corresponding value.
Refresh=Refresh
# Countries # Countries
CountryFR=France CountryFR=France
CountryBE=Belgium CountryBE=Belgium

View File

@ -370,6 +370,7 @@ NoEMail=Pas d'email
Owner=Propriétaire Owner=Propriétaire
DetectedVersion=Version détectée DetectedVersion=Version détectée
FollowingConstantsWillBeSubstituted=Les constantes suivantes seront substituées par leur valeur correspondante. FollowingConstantsWillBeSubstituted=Les constantes suivantes seront substituées par leur valeur correspondante.
Refresh=Rafraichir
# Countries # Countries
CountryFR=France CountryFR=France
CountryBE=Belgique CountryBE=Belgique