Ajout de la gestion des menus par table
Modification des tables et ajout de données Ajout du thème Auguria utilisant le système de menus en base
521
htdocs/admin/menus/edit.php
Normal file
@ -0,0 +1,521 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/admin/menus/edit.php
|
||||
\ingroup admin
|
||||
\brief Edition des menus
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
|
||||
require("./pre.inc.php");
|
||||
|
||||
|
||||
|
||||
if (!$user->admin)
|
||||
accessforbidden();
|
||||
|
||||
|
||||
|
||||
|
||||
if (isset($_GET["action"]) && $_GET["action"] == 'update')
|
||||
{
|
||||
|
||||
|
||||
if(!$_POST['cancel'])
|
||||
{
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m SET m.titre = '".$_POST['titre']."', m.leftmenu = '".$_POST['leftmenu']."', m.url = '".$_POST['url']."', m.langs = '".$_POST['langs']."', m.right = '".$_POST['right']."',m.target = '".$_POST['target']."', m.user = ".$_POST['user']." WHERE m.rowid = ".$_POST['menuId'];
|
||||
$db->query($sql);
|
||||
}
|
||||
|
||||
if($_GET['return'])
|
||||
{
|
||||
header("location: index.php");
|
||||
}
|
||||
else
|
||||
{
|
||||
header("location: edit.php?action=edit&menuId=".$_POST['menuId']);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (isset($_GET["action"]) && $_GET["action"] == 'add')
|
||||
{
|
||||
|
||||
if($_POST['cancel'])
|
||||
{
|
||||
header("location:index.php");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if($_POST['level'] == -1)
|
||||
{
|
||||
$sql = "SELECT max(m.rowid) as maxId FROM ".MAIN_DB_PREFIX."menu as m WHERE m.level = ".$_POST['level'];
|
||||
$result = $db->query($sql);
|
||||
$lastMenu = $db->fetch_object($result);
|
||||
$rowid = $lastMenu->maxId + 1;
|
||||
|
||||
$sql = "SELECT max(m.order) as maxOrder FROM ".MAIN_DB_PREFIX."menu as m WHERE m.level = ".$_POST['level'];
|
||||
$result = $db->query($sql);
|
||||
$lastMenu = $db->fetch_object($result);
|
||||
$order = $lastMenu->maxOrder + 1;
|
||||
|
||||
}
|
||||
elseif($_POST['level'] == 0)
|
||||
{
|
||||
|
||||
$sql = "SELECT max(m.rowid) as maxId FROM ".MAIN_DB_PREFIX."menu as m WHERE m.level = ".$_POST['level'];
|
||||
$result = $db->query($sql);
|
||||
$lastMenu = $db->fetch_object($result);
|
||||
|
||||
$rowid = $lastMenu->maxId + 100 ;
|
||||
|
||||
$sql = "SELECT max(m.order) as maxOrder FROM ".MAIN_DB_PREFIX."menu as m WHERE m.fk_menu = ".$_GET['menuId'];
|
||||
$result = $db->query($sql);
|
||||
$lastMenu = $db->fetch_object($result);
|
||||
if(isset($lastMenu->maxOrder))
|
||||
{
|
||||
$order = ($lastMenu->maxOrder) + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$order = 0;
|
||||
}
|
||||
|
||||
}
|
||||
elseif($_POST['level'] > 0)
|
||||
{
|
||||
|
||||
$parentId = round($_GET['menuId'] / 100);
|
||||
|
||||
$sql = "SELECT max(m.rowid) as maxId FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid LIKE '".$parentId."__' AND m.rowid <> '".$parentId."00'";
|
||||
$result = $db->query($sql);
|
||||
$lastMenu = $db->fetch_object($result);
|
||||
|
||||
if(isset($lastMenu->maxId))
|
||||
{
|
||||
$rowid = ($lastMenu->maxId) + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$rowid = ($parentId * 100) + 1;
|
||||
}
|
||||
|
||||
$sql = "SELECT max(m.order) as maxOrder FROM ".MAIN_DB_PREFIX."menu as m WHERE m.fk_menu = ".$_GET['menuId'];
|
||||
$result = $db->query($sql);
|
||||
$lastMenu = $db->fetch_object($result);
|
||||
if(isset($lastMenu->maxOrder))
|
||||
{
|
||||
$order = ($lastMenu->maxOrder) + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$order = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."menu VALUES($rowid, '".$_POST['mainmenu']."','".$_POST['leftmenu']."',".$_GET['menuId'].",'".$_POST['url']."','".$_POST['titre']."',".$_POST['level'].",'".$_POST['langs']."','".$_POST['right']."','',".$_POST['user'].",".$order.")";
|
||||
$db->query($sql);
|
||||
|
||||
header("location: edit.php?action=edit&menuId=".$rowid);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (isset($_GET["action"]) && $_GET["action"] == 'add_const')
|
||||
{
|
||||
|
||||
if($_POST['type'] == 'prede')
|
||||
{
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."menu_const(fk_menu, fk_constraint, user) VALUES(".$_POST['menuId'].",".$_POST['constraint'].",".$_POST['user'].")";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
$sql = "SELECT max(rowid) as maxId FROM ".MAIN_DB_PREFIX."menu_constraint";
|
||||
$result = $db->query($sql);
|
||||
$objc = $db->fetch_object($result);
|
||||
$constraint = ($objc->maxId) + 1;
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."menu_constraint(rowid,action) VALUES(".$constraint.",'".$_POST['constraint']."')";
|
||||
$db->query($sql);
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."menu_const(fk_menu, fk_constraint, user) VALUES(".$_POST['menuId'].",".$constraint.",".$_POST['user'].")";
|
||||
}
|
||||
|
||||
$db->query($sql);
|
||||
|
||||
header("location:edit.php?action=edit&menuId=".$_POST['menuId']);
|
||||
|
||||
}
|
||||
|
||||
if (isset($_GET["action"]) && $_GET["action"] == 'del_const')
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu_const WHERE fk_menu = ".$_GET['menuId']." AND fk_constraint = ".$_GET['constId'];
|
||||
$db->query($sql);
|
||||
|
||||
$sql = "SELECT count(rowid) as countId FROM ".MAIN_DB_PREFIX."menu_const WHERE fk_constraint = ".$_GET['constId'];
|
||||
$result = $db->query($sql);
|
||||
$objc = $db->fetch_object($result);
|
||||
if($objc->countId == 0)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu_constraint WHERE rowid = ".$_GET['constId'];
|
||||
$db->query($sql);
|
||||
}
|
||||
|
||||
header("location:edit.php?action=edit&menuId=".$_GET['menuId']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes')
|
||||
{
|
||||
|
||||
|
||||
$sql = "SELECT c.rowid, c.fk_constraint FROM ".MAIN_DB_PREFIX."menu_const as c WHERE c.fk_menu = ".$_GET['menuId'];
|
||||
$res = $db->query($sql);
|
||||
if ($res)
|
||||
{
|
||||
|
||||
while ($obj = $db->fetch_object ($res))
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu_const WHERE rowid = ".$obj->rowid;
|
||||
$db->query($sql);
|
||||
|
||||
$sql = "SELECT count(rowid) as countId FROM ".MAIN_DB_PREFIX."menu_const WHERE fk_constraint = ".$obj->fk_constraint;
|
||||
$result = $db->query($sql);
|
||||
$objc = $db->fetch_object($result);
|
||||
|
||||
if($objc->countId == 0)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu_constraint WHERE rowid = ".$obj->fk_constraint;
|
||||
$db->query($sql);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
;
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu WHERE rowid = ".$_GET['menuId'];
|
||||
$db->query($sql);
|
||||
|
||||
if ($result == 0)
|
||||
{
|
||||
llxHeader();
|
||||
print '<div class="ok">'.$langs->trans("MenuDeleted").'</div>';
|
||||
llxFooter();
|
||||
exit ;
|
||||
}
|
||||
else
|
||||
{
|
||||
$reload = 0;
|
||||
$_GET["action"]='';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Affichage page
|
||||
*/
|
||||
|
||||
llxHeader();
|
||||
|
||||
|
||||
|
||||
if (isset($_GET["action"]) && $_GET["action"] == 'create')
|
||||
{
|
||||
print_titre($langs->trans("NewMenu"),'','setup');
|
||||
|
||||
print '<form action="./edit.php?action=add&menuId='.$_GET['menuId'].'" method="post" name="formmenucreate">';
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
if($_GET['menuId'] == 0)
|
||||
{
|
||||
$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'];
|
||||
$res = $db->query($sql);
|
||||
|
||||
if ($res)
|
||||
{
|
||||
|
||||
while ($menu = $db->fetch_array ($res))
|
||||
{
|
||||
$parent_rowid = $menu['rowid'];
|
||||
$parent_mainmenu = $menu['mainmenu'];
|
||||
$parent_langs = $menu['langs'];
|
||||
$parent_level = $menu['level'];
|
||||
}
|
||||
}
|
||||
}
|
||||
//Titre
|
||||
print '<tr><td>'.$langs->trans('Titre').'</td><td><input type="text" size="50" name="titre" value=""></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
||||
//Mainmenu
|
||||
print '<tr><td>'.$langs->trans('Mainmenu').'</td><td><input type="text" size="50" name="mainmenu" value="'.$mainmenu.'"></td><td>'.$langs->trans('DetailMainmenu').'</td></tr>';
|
||||
//Level
|
||||
print '<input type="hidden" size="50" name="level" value="'.($parent_level + 1).'">';
|
||||
//URL
|
||||
print '<tr><td>'.$langs->trans('URL').'</td><td><input type="text" size="50" name="url" value=""></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
||||
//Leftmenu
|
||||
print '<tr><td>'.$langs->trans('Leftmenu').'</td><td><input type="text" size="50" name="leftmenu" value=""></td><td>'.$langs->trans('DetailLeftmenu').'</td></tr>';
|
||||
//Langs
|
||||
print '<tr><td>'.$langs->trans('Langs').'</td><td><input type="text" size="50" name="langs" value="'.$parent_langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
||||
//Right
|
||||
print '<tr><td>'.$langs->trans('Right').'</td><td><input type="text" size="50" name="right" value=""></td><td>'.$langs->trans('DetailRight').'</td></tr>';
|
||||
//User
|
||||
print '<tr><td>'.$langs->trans('User').'</td>';
|
||||
print '<td><select class="flat" name="user">';
|
||||
print '<option value="0">'.$langs->trans('Interne').'</option>';
|
||||
print '<option value="1">'.$langs->trans('Externe').'</option>';
|
||||
print '<option value="2" selected>Tous</option>';
|
||||
print '</select></td>';
|
||||
print '<td>'.$langs->trans('DetailUser').'</td></tr>';
|
||||
// target
|
||||
print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
|
||||
print '<option value=""'.($menu->target==""?' selected="true"':'').'>'.$langs->trans('').'</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 '<tr><td colspan="3" align="center"><input type="submit" class="button" name="save" value="Enregistrer">';
|
||||
print ' ';
|
||||
print '<input type="submit" class="button" name="cancel" value="Annuler"></td></tr>';
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
print '</form>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
elseif (isset($_GET["action"]) && $_GET["action"] == 'edit')
|
||||
{
|
||||
print_titre($langs->trans("ModifMenu"),'','setup');
|
||||
|
||||
print '<form action="./edit.php?action=update" method="post" name="formmenuedit">';
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
|
||||
$sql = "SELECT m.rowid, m.titre, m.mainmenu, m.leftmenu, m.fk_menu, m.url, m.langs, m.level, m.right, m.target, m.user, m.order FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET['menuId'];
|
||||
$result = $db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$num = $db->num_rows();
|
||||
$i = 0;
|
||||
|
||||
while($i < $num)
|
||||
{
|
||||
$menu = $db->fetch_object($result);
|
||||
|
||||
|
||||
// rowid
|
||||
print '<input type="hidden" name="menuId" value="'.$_GET['menuId'].'">';
|
||||
print '<tr><td>'.$langs->trans('rowid').'</td><td>'.$menu->rowid.'</td><td>'.$langs->trans('DetailId').'</td></tr>';
|
||||
// titre
|
||||
print '<tr><td>'.$langs->trans('Titre').'</td><td><input type="text" size="70" name="titre" value="'.$menu->titre.'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
||||
// mainmenu
|
||||
print '<tr><td>'.$langs->trans('Mainmenu').'</td><td><input type="text" size="70" name="mainmenu" value="'.$menu->mainmenu.'"></td><td>'.$langs->trans('DetailMainmenu').'</td></tr>';
|
||||
// Niveau
|
||||
print '<tr><td>'.$langs->trans('Level').'</td><td>'.$menu->level.'</td><td>'.$langs->trans('DetailLevel').'</td></tr>';
|
||||
// url
|
||||
print '<tr><td>'.$langs->trans('URL').'</td><td><input type="text" size="70" name="url" value="'.$menu->url.'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
||||
// Leftmenu
|
||||
print '<tr><td>'.$langs->trans('Leftmenu').'</td><td><input type="text" size="70" name="leftmenu" value="'.htmlentities($menu->leftmenu).'"></td><td>'.$langs->trans('DetailLeftmenu').'</td></tr>';
|
||||
// langs
|
||||
print '<tr><td>'.$langs->trans('Langs').'</td><td><input type="text" size="70" name="langs" value="'.$menu->langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
||||
// right
|
||||
print '<tr><td>'.$langs->trans('Right').'</td><td><input type="text" size="70" name="right" value="'.$menu->right.'"></td><td>'.$langs->trans('DetailRight').'</td></tr>';
|
||||
// user
|
||||
print '<tr><td>'.$langs->trans('User').'</td><td><select class="flat" name="user">';
|
||||
print '<option value="0"'.($menu->user==0?' selected="true"':'').'>'.$langs->trans('Interne').'</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 '</select></td><td>'.$langs->trans('DetailUser').'</td></tr>';
|
||||
// target
|
||||
print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
|
||||
print '<option value=""'.($menu->target==""?' selected="true"':'').'>'.$langs->trans('').'</option>';
|
||||
print '<option value="_new"'.($menu->target=="_new"?' selected="true"':'').'>'.$langs->trans('_new').'</option>';
|
||||
print '</select></td></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
|
||||
|
||||
// Bouton
|
||||
print '<tr><td colspan="3" align="center"><input type="submit" class="button" name="save" value="Enregistrer">';
|
||||
print ' ';
|
||||
print '<input type="submit" class="button" name="cancel" value="Annuler"></td></tr>';
|
||||
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
print '</form>';
|
||||
|
||||
/*
|
||||
* Lignes de contraintes
|
||||
*/
|
||||
$sql = 'SELECT c.rowid, c.action, mc.user ';
|
||||
$sql.= 'FROM '.MAIN_DB_PREFIX.'menu_constraint as c, '.MAIN_DB_PREFIX.'menu_const as mc ';
|
||||
$sql.= 'WHERE c.rowid = mc.fk_constraint ';
|
||||
$sql.= 'AND mc.fk_menu = '.$_GET['menuId'];
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
if ($num)
|
||||
{
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans('Constraint').'</td>';
|
||||
print '<td>'.$langs->trans('User').'</td>';
|
||||
print '<td width="16"> </td>';
|
||||
print "</tr>\n";
|
||||
}
|
||||
$var=true;
|
||||
|
||||
$var = true;
|
||||
while ($i < $num)
|
||||
{
|
||||
$objc = $db->fetch_object($resql);
|
||||
|
||||
$var = !$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$objc->action.'</td>';
|
||||
print '<td>';
|
||||
|
||||
switch ($objc->user)
|
||||
{
|
||||
case 0: print 'Interne';
|
||||
break;
|
||||
case 1: print 'Externe';
|
||||
break;
|
||||
case 2: print 'Tous';
|
||||
break;
|
||||
}
|
||||
print '</td>';
|
||||
print '<td align="center"><a href="edit.php?action=del_const&menuId='.$_GET['menuId'].'&constId='.$objc->rowid.'">'.img_delete().'</a></td>';
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans('Constraint').'</td>';
|
||||
print '<td width="250">'.$langs->trans('User').'</td>';
|
||||
print '<td width="16"> </td>';
|
||||
print "</tr>\n";
|
||||
|
||||
|
||||
// Ajout de contraintes personalisés
|
||||
print '<form action="edit.php?action=add_const" method="post">';
|
||||
print '<input type="hidden" name="menuId" value="'.$_GET['menuId'].'">';
|
||||
print '<input type="hidden" name="type" value="perso">';
|
||||
|
||||
$var=true;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print ' <td><textarea cols="70" name="constraint" rows="1"></textarea></td>';
|
||||
print '<td>';
|
||||
print '<select name="user">';
|
||||
print '<option value="0"'.($menu->user==0?' selected="true"':'').'>'.$langs->trans('Interne').'</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 '</td>';
|
||||
print '<td align="center"><input type="submit" class="button"></td>';
|
||||
print '</tr>';
|
||||
print '</form>';
|
||||
|
||||
|
||||
// Ajout de contraintes prédéfinis
|
||||
print '<form action="edit.php?action=add_const" method="post">';
|
||||
print '<input type="hidden" name="menuId" value="'.$_GET['menuId'].'">';
|
||||
print '<input type="hidden" name="type" value="prede">';
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>';
|
||||
print '<select name="constraint">';
|
||||
$sql = 'SELECT c.rowid, c.action FROM '.MAIN_DB_PREFIX.'menu_constraint as c ORDER BY c.action';
|
||||
$resql = $db->query($sql);
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
{
|
||||
$objc = $db->fetch_object($resql);
|
||||
print '<option value="'.$objc->rowid.'">'.$objc->action.'</option>';
|
||||
$i++;
|
||||
|
||||
}
|
||||
|
||||
|
||||
print '</select>';
|
||||
print '</td>';
|
||||
print '<td>';
|
||||
print '<select name="user">';
|
||||
print '<option value="0"'.($menu->user==0?' selected="true"':'').'>'.$langs->trans('Interne').'</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 '</td>';
|
||||
print '<td align="center"><input type="submit" class="button""></td>';
|
||||
print '</tr>';
|
||||
|
||||
print '</form>';
|
||||
|
||||
print '</table>';
|
||||
$db->free($resql);
|
||||
}
|
||||
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
print '<a class="butAction" href="edit.php?action=update&menuId='.$_GET['menuId'].'&return=1">'.$langs->trans('Valid').'</a>';
|
||||
print '<a class="butActionDelete" href="edit.php?menuId='.$_GET['menuId'].'&action=delete">'.$langs->trans('Supprimer').'</a>';
|
||||
print '</div>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
BIN
htdocs/admin/menus/images/arbre-deplier.png
Normal file
|
After Width: | Height: | Size: 309 B |
BIN
htdocs/admin/menus/images/arbre-plier.png
Normal file
|
After Width: | Height: | Size: 315 B |
BIN
htdocs/admin/menus/images/arbre-puce.png
Normal file
|
After Width: | Height: | Size: 288 B |
BIN
htdocs/admin/menus/images/arbre-trait.png
Normal file
|
After Width: | Height: | Size: 157 B |
375
htdocs/admin/menus/index.php
Normal file
@ -0,0 +1,375 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/admin/menus/index.php
|
||||
\ingroup admin
|
||||
\brief Gestion des menus
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
|
||||
require("./pre.inc.php");
|
||||
|
||||
|
||||
|
||||
if (!$user->rights->menudb->creer)
|
||||
accessforbidden();
|
||||
|
||||
|
||||
if (isset($_GET["action"]) && $_GET["action"] == 'up')
|
||||
{
|
||||
|
||||
$sql = "SELECT m.rowid, m.order FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET["menuId"];
|
||||
$result = $db->query($sql);
|
||||
|
||||
$num = $db->num_rows();
|
||||
$i = 0;
|
||||
|
||||
while($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
$precedent['rowid'] = $obj->rowid;
|
||||
$precedent['order'] = $obj->order;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$sql = "SELECT m.rowid, m.order FROM ".MAIN_DB_PREFIX."menu as m WHERE m.order = ".($precedent['order'] - 1)." AND m.level = -1";
|
||||
$result = $db->query($sql);
|
||||
|
||||
$num = $db->num_rows();
|
||||
$i = 0;
|
||||
|
||||
while($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
$suivant['rowid'] = $obj->rowid;
|
||||
$suivant['order'] = $obj->order;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m SET m.order = ".$suivant['order']." WHERE m.rowid = ".$precedent['rowid'].""; // Monte celui select
|
||||
$db->query($sql);
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m SET m.order = ".$precedent['order']." WHERE m.rowid = ".$suivant['rowid'].""; // Descend celui du dessus
|
||||
$db->query($sql);
|
||||
}
|
||||
|
||||
if (isset($_GET["action"]) && $_GET["action"] == 'down')
|
||||
{
|
||||
|
||||
$sql = "SELECT m.rowid, m.order FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET["menuId"];
|
||||
$result = $db->query($sql);
|
||||
|
||||
$num = $db->num_rows();
|
||||
$i = 0;
|
||||
|
||||
while($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
$precedent['rowid'] = $obj->rowid;
|
||||
$precedent['order'] = $obj->order;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$sql = "SELECT m.rowid, m.order FROM ".MAIN_DB_PREFIX."menu as m WHERE m.order = ".($precedent['order'] + 1)." AND m.level = -1";
|
||||
$result = $db->query($sql);
|
||||
|
||||
$num = $db->num_rows();
|
||||
$i = 0;
|
||||
|
||||
while($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
$suivant['rowid'] = $obj->rowid;
|
||||
$suivant['order'] = $obj->order;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m SET m.order = ".$suivant['order']." WHERE m.rowid = ".$precedent['rowid'].""; // Monte celui select
|
||||
$db->query($sql);
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m SET m.order = ".$precedent['order']." WHERE m.rowid = ".$suivant['rowid'].""; // Descend celui du dessus
|
||||
$db->query($sql);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Affichage page
|
||||
*/
|
||||
|
||||
llxHeader();
|
||||
|
||||
|
||||
|
||||
print_fiche_titre($langs->trans("Admin Menu"),'','setup');
|
||||
|
||||
print '<br>';
|
||||
|
||||
if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes')
|
||||
{
|
||||
|
||||
|
||||
$sql = "SELECT c.rowid, c.fk_constraint FROM ".MAIN_DB_PREFIX."menu_const as c WHERE c.fk_menu = ".$_GET['menuId'];
|
||||
$res = $db->query($sql);
|
||||
if ($res)
|
||||
{
|
||||
|
||||
while ($obj = $db->fetch_object ($res))
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu_const WHERE rowid = ".$obj->rowid;
|
||||
$db->query($sql);
|
||||
|
||||
$sql = "SELECT count(rowid) as countId FROM ".MAIN_DB_PREFIX."menu_const WHERE fk_constraint = ".$obj->fk_constraint;
|
||||
$result = $db->query($sql);
|
||||
$objc = $db->fetch_object($result);
|
||||
|
||||
if($objc->countId == 0)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu_constraint WHERE rowid = ".$obj->fk_constraint;
|
||||
$db->query($sql);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
;
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu WHERE rowid = ".$_GET['menuId'];
|
||||
$db->query($sql);
|
||||
|
||||
if ($result == 0)
|
||||
{
|
||||
llxHeader();
|
||||
print '<div class="ok">'.$langs->trans("MenuDeleted").'</div>';
|
||||
llxFooter();
|
||||
exit ;
|
||||
}
|
||||
else
|
||||
{
|
||||
$reload = 0;
|
||||
$_GET["action"]='';
|
||||
}
|
||||
}
|
||||
|
||||
// Confirmation de la suppression de la facture
|
||||
if ($_GET["action"] == 'delete')
|
||||
{
|
||||
|
||||
$sql = "SELECT m.titre FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET['menuId'];
|
||||
$result = $db->query($sql);
|
||||
$obj = $db->fetch_object($result);
|
||||
|
||||
$html = new Form($db);
|
||||
$html->form_confirm("index.php?menuId=".$_GET['menuId'],$langs->trans("DeleteMenu"),$langs->trans("ConfirmDeleteMenu")." ".$obj->titre,"confirm_delete");
|
||||
print "<br />\n";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans("TreeMenu").'</td>';
|
||||
|
||||
print '</tr>';
|
||||
print '<tr>';
|
||||
print '<td>';
|
||||
|
||||
|
||||
/*************************
|
||||
* ARBORESCENCE *
|
||||
*************************/
|
||||
|
||||
|
||||
/* cette fonction gère le décallage des éléments
|
||||
suivant leur position dans l'arborescence
|
||||
*/
|
||||
|
||||
|
||||
|
||||
$rangLast = 0;
|
||||
$idLast = -1;
|
||||
if ($conf->use_javascript)
|
||||
{
|
||||
print '<script src="menu.js" type="text/javascript"></script>';
|
||||
}
|
||||
|
||||
function affiche($tab,$rang)
|
||||
{
|
||||
global $rangLast, $idLast;
|
||||
|
||||
if ($conf->use_javascript)
|
||||
{
|
||||
if($rang == $rangLast)
|
||||
{
|
||||
print '<script type="text/javascript">imgDel('.$idLast.');</script>';
|
||||
}
|
||||
elseif($rang > $rangLast)
|
||||
{
|
||||
|
||||
print '<li><ul>';
|
||||
|
||||
}
|
||||
elseif($rang < $rangLast)
|
||||
{
|
||||
print '<script type="text/javascript">imgDel('.$idLast.')</script>';
|
||||
|
||||
for($i=$rang; $i < $rangLast; $i++)
|
||||
{
|
||||
print '</ul></li>';
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($rang > $rangLast)
|
||||
{
|
||||
|
||||
print '<li><ul>';
|
||||
|
||||
}
|
||||
elseif($rang < $rangLast)
|
||||
{
|
||||
|
||||
for($i=$rang; $i < $rangLast; $i++)
|
||||
{
|
||||
print '</ul></li>';
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
print '<li id=li'.$tab[0].'>';
|
||||
print '<strong><a href="edit.php?action=edit&menuId='.$tab[0].'">'.$tab[2].'</a></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 '<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="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="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 '</li>';
|
||||
echo "\n";
|
||||
|
||||
$rangLast = $rang;
|
||||
$idLast = $tab[0];
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*fonction récursive d'affichage de l'arbre
|
||||
$tab :tableau des éléments
|
||||
$pere :index de l'élément courrant
|
||||
$rang :décallage de l'élément
|
||||
*/
|
||||
function recur($tab,$pere,$rang) {
|
||||
|
||||
//ballayage du tableau
|
||||
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
|
||||
affiche($tab[$x],$rang);
|
||||
|
||||
/*et on recherche ses fils
|
||||
en rappelant la fonction recur()
|
||||
(+ incrémentation du décallage)*/
|
||||
recur($tab,$tab[$x][0],$rang+1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------- MAIN -----------------------
|
||||
tableau des éléments de l'arbre:
|
||||
c'est un tableau à 2 dimensions.
|
||||
Une ligne représente un élément : data[$x]
|
||||
chaque ligne est décomposée en 3 données:
|
||||
- l'index de l'élément
|
||||
- l'index de l'élément parent
|
||||
- la chaîne à afficher
|
||||
ie: data[]= array (index, index parent, chaine )
|
||||
*/
|
||||
//il faut d'abord déclarer un élément racine de l'arbre
|
||||
|
||||
$data[] = array(0,-1,"racine");
|
||||
|
||||
//puis tous les éléments enfants
|
||||
|
||||
|
||||
$sql = "SELECT m.rowid, m.fk_menu, m.titre, m.langs FROM ".MAIN_DB_PREFIX."menu as m ORDER BY m.order, m.rowid";
|
||||
$res = $db->query($sql);
|
||||
|
||||
if ($res)
|
||||
{
|
||||
$num = $db->num_rows();
|
||||
|
||||
$i = 1;
|
||||
while ($menu = $db->fetch_array ($res))
|
||||
{
|
||||
$langs->load($menu['langs']);
|
||||
$titre = $langs->trans($menu['titre']);
|
||||
$data[] = array($menu['rowid'],$menu['fk_menu'],$titre);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
//appelle de la fonction récursive (ammorce)
|
||||
//avec recherche depuis la racine.
|
||||
print '<ul class="arbre">';
|
||||
recur($data,0,0);
|
||||
print '<script type="text/javascript">imgDel('.$idLast.')</script>';
|
||||
print '</ul>';
|
||||
|
||||
|
||||
|
||||
|
||||
print '</td>';
|
||||
|
||||
print '</tr>';
|
||||
|
||||
print '</table>';
|
||||
print '<br>';
|
||||
|
||||
|
||||
|
||||
|
||||
print '</div>';
|
||||
|
||||
print '<div class="tabsAction">';
|
||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/admin/menus/edit.php?menuId=0&action=create">'.$langs->trans("NewMenu").'</a>';
|
||||
print '</div>';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
171
htdocs/admin/menus/menu.js
Normal file
@ -0,0 +1,171 @@
|
||||
/* -----------------------------------------------------
|
||||
|
||||
-------------------------------------------------------- */
|
||||
// Tests pour navigateurs
|
||||
var OPE = (window.opera) ? true : false;
|
||||
var IE = (document.all && !OPE) ? true : false;
|
||||
var MOZ = (!IE && !OPE) ? true : false;
|
||||
// -----------------------------------------------------
|
||||
// Fonction d'initialisation de l'arbre
|
||||
function arbre() {
|
||||
// Choix de la balise contenant le texte. <strong> par defaut.
|
||||
balise = "STRONG";
|
||||
// Presentation de l'arbre au depart : deployee ('yes') ou fermee ('no')
|
||||
extend = "yes";
|
||||
// Textes du lien plier / deplier
|
||||
plier_text = 'Replier tout';
|
||||
plier_title = 'Replier tous les noeuds de l\'arbre'
|
||||
deplier_text = 'Deplier tout';
|
||||
deplier_title = 'Deplier tous les noeuds de l\'arbre'
|
||||
// Recuperation de tous les arbres de la page
|
||||
uls = getElBy('ul','class','arbre');
|
||||
for (uli=0;uli<uls.length;uli++) {
|
||||
ul = uls[uli];
|
||||
linkSwitch(ul);
|
||||
processULEL(ul);
|
||||
plier(ul,'replier');
|
||||
}
|
||||
|
||||
}
|
||||
// -------------------------------------------------------
|
||||
// Creation des liens plier /deplier tout
|
||||
function linkSwitch(ul) {
|
||||
var a=document.createElement('a');
|
||||
a.setAttribute('href','#');
|
||||
if (extend=='yes') {
|
||||
a.appendChild(document.createTextNode(plier_text));
|
||||
a.setAttribute('title',plier_title);
|
||||
}
|
||||
else {
|
||||
a.appendChild(document.createTextNode(deplier_text));
|
||||
a.setAttribute('title',deplier_title);
|
||||
}
|
||||
var parbre = document.createElement('p');
|
||||
parbre.setAttribute('class','arbre-switch');
|
||||
parbre.appendChild(a);
|
||||
ul.parentNode.insertBefore(parbre,ul);
|
||||
listenlink(ul);
|
||||
}
|
||||
// Gestion des Clics sur les liens plier / deplier tout
|
||||
function listenlink(ul) {
|
||||
var link = ul.previousSibling.childNodes[0];
|
||||
link.onclick = function() {
|
||||
if (this.childNodes[0].nodeValue == plier_text) {
|
||||
plier(ul,'replier');
|
||||
this.childNodes[0].nodeValue = deplier_text;
|
||||
this.setAttribute('title',deplier_title);
|
||||
}
|
||||
else {
|
||||
plier(ul,'deplier');
|
||||
this.childNodes[0].nodeValue = plier_text;
|
||||
this.setAttribute('title',plier_title);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// Action Plier / deplier tout
|
||||
function plier(ul,act) {
|
||||
for (var i=0; i<ul.childNodes.length; i++) {
|
||||
var li = ul.childNodes[i];
|
||||
if (li.nodeName == 'LI') {
|
||||
for (var j=0; j<li.childNodes.length; j++) {
|
||||
var child = li.childNodes[j];
|
||||
if (child.nodeName==balise) {
|
||||
var strong = child;
|
||||
}
|
||||
if (child.nodeName=='UL') {
|
||||
if (act=='replier') {
|
||||
child.className='hide';
|
||||
strong.className='arbre-plier';
|
||||
}
|
||||
else {
|
||||
child.className='';
|
||||
strong.className='arbre-deplier';
|
||||
}
|
||||
var sub = child;
|
||||
plier(sub,act);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// ---------------------------------------------------------
|
||||
// Analyse de l'arbre
|
||||
function processULEL(ul) {
|
||||
if (!ul.childNodes || ul.childNodes.length == 0) return;
|
||||
// Iterate LIs
|
||||
for (var itemi=0;itemi<ul.childNodes.length;itemi++) {
|
||||
var item = ul.childNodes[itemi];
|
||||
if (item.nodeName == "LI") {
|
||||
// Contenu des balises LI
|
||||
var a;
|
||||
var subul;
|
||||
subul = "";
|
||||
for (var sitemi=0;sitemi<item.childNodes.length;sitemi++) {
|
||||
// Uniquement pour moz-firefox
|
||||
if (MOZ) {item.style.background = "url(./images/arbre-trait.png) repeat-y 0 0";}
|
||||
// Enfants des li : balise ou sous-ul
|
||||
var sitem = item.childNodes[sitemi];
|
||||
switch (sitem.nodeName) {
|
||||
case balise:
|
||||
a = sitem;
|
||||
break;
|
||||
case "UL":
|
||||
subul = sitem;
|
||||
if (extend != "yes") {sitem.className = 'hide';}
|
||||
processULEL(subul);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (subul) {
|
||||
if (extend!="yes") {
|
||||
a.className='arbre-plier';
|
||||
}
|
||||
else {
|
||||
a.className='arbre-deplier';
|
||||
subul.className='';
|
||||
|
||||
}
|
||||
associateEL(a,subul);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Swicth des noeuds
|
||||
function associateEL(a,ul) {
|
||||
a.onclick = function () {
|
||||
this.className = (ul.className=='hide') ? 'arbre-deplier' : 'arbre-plier';
|
||||
ul.className = (ul.className=='hide') ? '' : 'hide';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// -----------------------------------------------------
|
||||
// Nom : GetElBy(tag,attr,val)
|
||||
// By : Rui Nibau
|
||||
// Date : aout 2005
|
||||
// Func : Tableau des elements 'tag' dont l'attribut 'attr' a la valeur 'val'.
|
||||
// -----------------------------------------------------
|
||||
function getElBy(tag,attr,val) {
|
||||
var dbRes = [];
|
||||
var dbEl = document.getElementsByTagName(tag);
|
||||
for (e=0; e<dbEl.length; e++) {
|
||||
if (attr == 'class') {if (dbEl[e].className==val) {dbRes.push(dbEl[e]);}}
|
||||
else {if (dbEl[e].getAttribute(attr)==val) {dbRes.push(dbEl[e]);}}
|
||||
}
|
||||
return dbRes;
|
||||
}
|
||||
// -----------------------------------------------------
|
||||
// A l'affichage de la page, lancer la fonction arbre
|
||||
window.onload = function() {
|
||||
arbre();
|
||||
}
|
||||
|
||||
function imgDel(id)
|
||||
{
|
||||
var delId='del'+id;
|
||||
|
||||
var imgDel = document.getElementById('del'+id);
|
||||
imgDel.style.display='block';
|
||||
|
||||
return true;
|
||||
}
|
||||
255
htdocs/admin/menus/module_menudb.php
Normal file
@ -0,0 +1,255 @@
|
||||
<?php
|
||||
|
||||
/* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* or see http://www.gnu.org/
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/modules/menudb/modules_menudb.php
|
||||
\ingroup menudb
|
||||
\brief Fichier contenant la classe mère d'affichage des menus'
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
class menuDb {
|
||||
var $newmenu;
|
||||
var $mainmenu;
|
||||
var $leftmenu;
|
||||
|
||||
function menuDb($db) {
|
||||
$this->db = $db;
|
||||
}
|
||||
|
||||
function menuCharger($mainmenu, $newmenu,$type_user, $leftmenu)
|
||||
{
|
||||
|
||||
global $langs,$user, $conf;
|
||||
|
||||
$this->mainmenu = $mainmenu;
|
||||
$this->newmenu = $newmenu;
|
||||
$this->leftmenu = $leftmenu;
|
||||
|
||||
$sql = "SELECT m.rowid, m.titre, m.level FROM " . MAIN_DB_PREFIX . "menu as m WHERE m.mainmenu = '" . $this->mainmenu . "'";
|
||||
$result = $this->db->query($sql);
|
||||
$menuTop = $this->db->fetch_object($result);
|
||||
|
||||
$data[] = array ($menutop->rowid,-1,$this->mainmenu);
|
||||
|
||||
$sql = "SELECT m.rowid, m.fk_menu, m.url, m.titre, m.langs, m.right, m.target, m.mainmenu, m.leftmenu FROM " . MAIN_DB_PREFIX . "menu as m ";
|
||||
if($type_user == 0)$sql.= "WHERE m.user <> 1 ";
|
||||
else $sql.= "WHERE m.user > 0 ";
|
||||
$sql.= "ORDER BY m.order, m.rowid";
|
||||
$res = $this->db->query($sql);
|
||||
|
||||
if ($res) {
|
||||
$num = $this->db->num_rows();
|
||||
|
||||
$i = 1;
|
||||
while ($menu = $this->db->fetch_array($res)) {
|
||||
$langs->load($menu['langs']);
|
||||
$titre = $langs->trans($menu['titre']);
|
||||
$rights = $this->verifRights($menu['right']);
|
||||
$data[] = array (
|
||||
$menu['rowid'],
|
||||
$menu['fk_menu'],
|
||||
$menu['url'],
|
||||
$titre,
|
||||
$rights,
|
||||
$menu['target'],
|
||||
$menu['leftmenu']
|
||||
);
|
||||
$i++;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->recur($data, $menuTop->rowid, 1);
|
||||
|
||||
return $this->newmenu;
|
||||
|
||||
}
|
||||
|
||||
function recur($tab, $pere, $rang) {
|
||||
$leftmenu = $this->leftmenu;
|
||||
//ballayage du tableau
|
||||
for ($x = 0; $x < count($tab); $x++) {
|
||||
|
||||
//si un élément a pour père : $pere
|
||||
if ($tab[$x][1] == $pere) {
|
||||
|
||||
//on affiche le menu
|
||||
|
||||
if ($this->verifConstraint($tab[$x][0], $tab[$x][6], $tab[$x][7]) != 0) {
|
||||
|
||||
if ($tab[$x][6]) {
|
||||
|
||||
$leftmenuConstraint = false;
|
||||
$str = "if(" . $tab[$x][6] . ") \$leftmenuConstraint = true;";
|
||||
|
||||
eval ($str);
|
||||
if ($leftmenuConstraint == true) {
|
||||
$this->newmenu->add_submenu(DOL_URL_ROOT . $tab[$x][2], $tab[$x][3], $rang -1, $tab[$x][4], $tab[$x][5]);
|
||||
$this->recur($tab, $tab[$x][0], $rang +1);
|
||||
}
|
||||
} else {
|
||||
$this->newmenu->add_submenu(DOL_URL_ROOT . $tab[$x][2], $tab[$x][3], $rang -1, $tab[$x][4], $tab[$x][5]);
|
||||
$this->recur($tab, $tab[$x][0], $rang +1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function verifConstraint($rowid, $mainmenu = "", $leftmenu = "")
|
||||
{
|
||||
global $user, $conf, $user;
|
||||
|
||||
$constraint = true;
|
||||
|
||||
$sql = "SELECT c.rowid, c.action, mc.user FROM " . MAIN_DB_PREFIX . "menu_constraint as c, " . MAIN_DB_PREFIX . "menu_const as mc WHERE mc.fk_constraint = c.rowid AND (mc.user = 0 OR mc.user = 2 ) AND mc.fk_menu = '" . $rowid . "'";
|
||||
$result = $this->db->query($sql);
|
||||
|
||||
if ($result)
|
||||
{
|
||||
//echo $sql;
|
||||
$num = $this->db->num_rows();
|
||||
$i = 0;
|
||||
while (($i < $num) && $constraint == true)
|
||||
{
|
||||
$obj = $this->db->fetch_object($result);
|
||||
$strconstraint = "if(!(" . $obj->action . ")) { \$constraint = false;}";
|
||||
|
||||
eval ($strconstraint);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
return $constraint;
|
||||
}
|
||||
|
||||
function verifRights($strRights) {
|
||||
|
||||
global $user,$conf,$user;
|
||||
|
||||
if ($strRights != "") {
|
||||
$rights = true;
|
||||
|
||||
$tab_rights = explode(" || ", $strRights);
|
||||
$i = 0;
|
||||
while (($i < count($tab_rights)) && ($rights == true)) {
|
||||
$str = "if(!(" . $strRights . ")) { \$rights = false;}";
|
||||
eval ($str);
|
||||
$i++;
|
||||
}
|
||||
} else
|
||||
$rights = true;
|
||||
|
||||
return $rights;
|
||||
}
|
||||
|
||||
function listeMainmenu() {
|
||||
$sql = "SELECT DISTINCT m.mainmenu FROM " . MAIN_DB_PREFIX . "menu as m";
|
||||
$res = $this->db->query($sql);
|
||||
|
||||
if ($res) {
|
||||
$i = 0;
|
||||
while ($menu = $this->db->fetch_array($res)) {
|
||||
$overwritemenufor[$i] = $menu['mainmenu'];
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
return $overwritemenufor;
|
||||
}
|
||||
|
||||
|
||||
function menutopCharger($type_user,$mainmenu)
|
||||
{
|
||||
|
||||
global $langs, $user, $conf;
|
||||
|
||||
$sql = "SELECT m.rowid, m.mainmenu, m.titre, m.url, m.langs, m.right FROM ".MAIN_DB_PREFIX."menu as m WHERE m.level = -1 ";
|
||||
if($type_user == 0)$sql.= "AND m.user <> 1 ";
|
||||
else $sql.= "AND m.user > 0 ";
|
||||
$sql.= "ORDER BY m.order";
|
||||
$result = $this->db->query($sql);
|
||||
|
||||
if ($result)
|
||||
{
|
||||
|
||||
$numa = $this->db->num_rows();
|
||||
|
||||
$a = 0;
|
||||
$b = 0;
|
||||
while ($a < $numa)
|
||||
{
|
||||
// Affichage entete menu
|
||||
$objm = $this->db->fetch_object($result);
|
||||
|
||||
if ($this->verifConstraint($objm->rowid))
|
||||
{
|
||||
$langs->load($objm->langs);
|
||||
|
||||
$class="";
|
||||
if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == $objm->mainmenu)
|
||||
{
|
||||
$class='id="sel"';
|
||||
}
|
||||
$chaine="";
|
||||
|
||||
$right = true;
|
||||
|
||||
if ($objm->right)
|
||||
{
|
||||
$str = "if(!(".$objm->right.")) \$right = false;";
|
||||
eval($str);
|
||||
}
|
||||
|
||||
if(eregi("/",$objm->titre))
|
||||
{
|
||||
$tab_titre = explode("/",$objm->titre);
|
||||
$chaine = $langs->trans($tab_titre[0])."/".$langs->trans($tab_titre[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$chaine = $langs->trans($objm->titre);
|
||||
}
|
||||
|
||||
$tabMenu[$b]['titre'] = $chaine;
|
||||
$tabMenu[$b]['url'] = $objm->url;
|
||||
$tabMenu[$b]['atarget'] = $this->atarget;
|
||||
$tabMenu[$b]['class'] = $class;
|
||||
$tabMenu[$b]['right'] = $right;
|
||||
|
||||
$b++;
|
||||
|
||||
}
|
||||
|
||||
$a++;
|
||||
}
|
||||
}
|
||||
|
||||
return $tabMenu;
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
191
htdocs/admin/menus/pre.inc.php
Normal file
@ -0,0 +1,191 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
\file htdocs/admin/menus/pre.inc.php
|
||||
\brief Fichier gestionnaire du menu de gauche de l'accueil
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
require ("../../main.inc.php");
|
||||
$user->getrights();
|
||||
|
||||
function llxHeader($head = "")
|
||||
{
|
||||
global $user, $conf, $langs;
|
||||
|
||||
top_menu($head);
|
||||
|
||||
$menu = new Menu();
|
||||
|
||||
if ($conf->societe->enabled && $user->rights->societe->lire)
|
||||
{
|
||||
$langs->load("companies");
|
||||
$menu->add(DOL_URL_ROOT."/societe.php", $langs->trans("Companies"));
|
||||
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create", $langs->trans("MenuNewCompany"));
|
||||
}
|
||||
|
||||
if(is_dir("societe/groupe"))
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/societe/groupe/index.php", $langs->trans("MenuSocGroup"));
|
||||
}
|
||||
$menu->add_submenu(DOL_URL_ROOT."/contact/index.php",$langs->trans("Contacts"));
|
||||
}
|
||||
|
||||
if ($conf->commercial->enabled && $user->rights->commercial->lire)
|
||||
{
|
||||
$langs->load("commercial");
|
||||
$menu->add(DOL_URL_ROOT."/comm/index.php",$langs->trans("Commercial"));
|
||||
|
||||
$menu->add_submenu(DOL_URL_ROOT."/comm/clients.php",$langs->trans("Customers"));
|
||||
$menu->add_submenu(DOL_URL_ROOT."/comm/prospect/prospects.php",$langs->trans("Prospects"));
|
||||
|
||||
if ($user->rights->propale->lire)
|
||||
{
|
||||
$langs->load("propal");
|
||||
$menu->add_submenu(DOL_URL_ROOT."/comm/propal.php", $langs->trans("Prop"));
|
||||
}
|
||||
}
|
||||
|
||||
if ($conf->compta->enabled || $conf->comptaexpert->enabled)
|
||||
{
|
||||
$langs->load("compta");
|
||||
$menu->add(DOL_URL_ROOT."/compta/index.php", $langs->trans("MenuFinancial"));
|
||||
|
||||
if ($user->rights->facture->lire) {
|
||||
$langs->load("bills");
|
||||
$menu->add_submenu(DOL_URL_ROOT."/compta/facture.php", $langs->trans("Bills"));
|
||||
}
|
||||
}
|
||||
|
||||
if ($conf->fichinter->enabled && $user->rights->ficheinter->lire)
|
||||
{
|
||||
$langs->trans("interventions");
|
||||
$menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions"));
|
||||
}
|
||||
|
||||
if (($conf->produit->enabled || $conf->service->enabled) && $user->rights->produit->lire)
|
||||
{
|
||||
$langs->load("products");
|
||||
$chaine="";
|
||||
if ($conf->produit->enabled) { $chaine.= $langs->trans("Products"); }
|
||||
if ($conf->produit->enabled && $conf->service->enabled) { $chaine.="/"; }
|
||||
if ($conf->service->enabled) { $chaine.= $langs->trans("Services"); }
|
||||
$menu->add(DOL_URL_ROOT."/product/index.php", "$chaine");
|
||||
|
||||
/*
|
||||
if ($conf->boutique->enabled)
|
||||
{
|
||||
if ($conf->boutique->livre->enabled)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/boutique/livre/index.php", "Livres");
|
||||
}
|
||||
|
||||
if ($conf->boutique->album->enabled)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/product/album/index.php", "Albums");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
if ($conf->commande->enabled && $user->rights->commande->lire)
|
||||
{
|
||||
$langs->load("orders");
|
||||
$menu->add(DOL_URL_ROOT."/commande/index.php", $langs->trans("Orders"));
|
||||
}
|
||||
|
||||
if ($conf->expedition->enabled && $user->rights->expedition->lire)
|
||||
{
|
||||
$langs->load("sendings");
|
||||
$menu->add(DOL_URL_ROOT."/expedition/index.php", $langs->trans("Sendings"));
|
||||
}
|
||||
|
||||
if ($conf->mailing->enabled && $user->rights->mailing->lire)
|
||||
{
|
||||
$langs->load("mails");
|
||||
$menu->add(DOL_URL_ROOT."/comm/mailing/index.php",$langs->trans("EMailings"));
|
||||
}
|
||||
|
||||
if ($conf->telephonie->enabled)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/telephonie/index.php", "Téléphonie");
|
||||
}
|
||||
|
||||
if ($conf->don->enabled)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/compta/dons/index.php", $langs->trans("Donations"));
|
||||
}
|
||||
|
||||
if ($conf->fournisseur->enabled && $user->rights->fournisseur->commande->lire)
|
||||
{
|
||||
$langs->load("suppliers");
|
||||
$menu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers"));
|
||||
}
|
||||
|
||||
if ($conf->voyage->enabled && $user->societe_id == 0)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/compta/voyage/index.php","Voyages");
|
||||
$menu->add_submenu(DOL_URL_ROOT."/compta/voyage/index.php","Voyages");
|
||||
$menu->add_submenu(DOL_URL_ROOT."/compta/voyage/reduc.php","Reduc");
|
||||
}
|
||||
|
||||
if ($conf->domaine->enabled)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/domain/index.php", "Domaines");
|
||||
}
|
||||
|
||||
if ($conf->postnuke->enabled)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/postnuke/articles/index.php", "Editorial");
|
||||
}
|
||||
|
||||
if ($conf->bookmark->enabled && $user->rights->bookmark->lire)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/bookmarks/liste.php", $langs->trans("Bookmarks"));
|
||||
}
|
||||
|
||||
if ($conf->export->enabled)
|
||||
{
|
||||
$langs->load("exports");
|
||||
$menu->add(DOL_URL_ROOT."/exports/index.php", $langs->trans("Exports"));
|
||||
}
|
||||
|
||||
if ($user->rights->user->user->lire || $user->admin)
|
||||
{
|
||||
$langs->load("users");
|
||||
$menu->add(DOL_URL_ROOT."/user/home.php", $langs->trans("MenuUsersAndGroups"));
|
||||
}
|
||||
|
||||
if ($user->admin)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/admin/index.php", $langs->trans("Setup"));
|
||||
}
|
||||
|
||||
|
||||
left_menu($menu->liste);
|
||||
}
|
||||
?>
|
||||
229
htdocs/includes/menus/barre_left/auguria_backoffice.php
Normal file
@ -0,0 +1,229 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/menus/barre_left/auguria_backoffice.php
|
||||
\brief Gestionnaire du menu du gauche Auguria
|
||||
\version $Revision$
|
||||
|
||||
\remarks La construction d'un gestionnaire pour le menu de gauche est simple:
|
||||
\remarks A l'aide d'un objet $newmenu=new Menu() et des méthode add et add_submenu,
|
||||
\remarks définir la liste des entrées menu à faire apparaitre.
|
||||
\remarks En fin de code, mettre la ligne $menu=$newmenu->liste.
|
||||
\remarks Ce qui est défini dans un tel gestionnaire sera alors prioritaire sur
|
||||
\remarks les définitions de menu des fichiers pre.inc.php
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
\class MenuLeft
|
||||
\brief Classe permettant la gestion du menu du gauche Auguria
|
||||
*/
|
||||
|
||||
class MenuLeft {
|
||||
|
||||
var $require_top=array("auguria_backoffice"); // Si doit etre en phase avec un gestionnaire de menu du haut particulier
|
||||
var $newmenu;
|
||||
var $menuArbo;
|
||||
|
||||
var $overwritemenufor = array();
|
||||
var $leftmenu;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Constructeur
|
||||
* \param db Handler d'accès base de donnée
|
||||
* \param menu_array Tableau des entrée de menu défini dans les fichier pre.inc.php
|
||||
*/
|
||||
function MenuLeft($db,&$menu_array)
|
||||
{
|
||||
|
||||
require_once(DOL_DOCUMENT_ROOT."/admin/menus/module_menudb.php");
|
||||
|
||||
$this->db=$db;
|
||||
$this->menu_array=$menu_array;
|
||||
$this->newmenu = new Menu();
|
||||
|
||||
$this->menuArbo = new menudb($this->db);
|
||||
$this->overwritemenufor = $this->menuArbo->listeMainmenu();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Affiche le menu
|
||||
*/
|
||||
function showmenu()
|
||||
{
|
||||
global $user,$conf,$langs,$dolibarr_main_db_name;
|
||||
|
||||
|
||||
|
||||
|
||||
if (! session_id()) {
|
||||
session_name("DOLSESSID_".$dolibarr_main_db_name);
|
||||
session_start(); // En mode authentification PEAR, la session a déjà été ouverte
|
||||
}
|
||||
|
||||
$user->getrights("");
|
||||
|
||||
// On récupère mainmenu et leftmenu qui définissent le menu à afficher
|
||||
if (isset($_GET["mainmenu"])) {
|
||||
// On sauve en session le menu principal choisi
|
||||
$mainmenu=$_GET["mainmenu"];
|
||||
$_SESSION["mainmenu"]=$mainmenu;
|
||||
$_SESSION["leftmenuopened"]="";
|
||||
} else {
|
||||
// On va le chercher en session si non défini par le lien
|
||||
$mainmenu=$_SESSION["mainmenu"];
|
||||
}
|
||||
|
||||
if (isset($_GET["leftmenu"])) {
|
||||
// On sauve en session le menu principal choisi
|
||||
$this->leftmenu=$_GET["leftmenu"];
|
||||
$_SESSION["leftmenu"]=$this->leftmenu;
|
||||
if ($_SESSION["leftmenuopened"]==$this->leftmenu) {
|
||||
//$leftmenu="";
|
||||
$_SESSION["leftmenuopened"]="";
|
||||
}
|
||||
else {
|
||||
$_SESSION["leftmenuopened"]=$this->leftmenu;
|
||||
}
|
||||
} else {
|
||||
// On va le chercher en session si non défini par le lien
|
||||
$this->leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* On definit newmenu en fonction de mainmenu et leftmenu
|
||||
* ------------------------------------------------------
|
||||
*/
|
||||
if ($mainmenu)
|
||||
{
|
||||
|
||||
|
||||
$this->newmenu = $this->menuArbo->menuCharger($mainmenu, $this->newmenu,0,$this->leftmenu);
|
||||
|
||||
|
||||
/*
|
||||
* Menu AUTRES (Pour les menus du haut qui ne serait pas gérés)
|
||||
*/
|
||||
|
||||
if ($mainmenu && ! in_array($mainmenu,$this->overwritemenufor)) { $mainmenu=""; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Si on est sur un cas géré de surcharge du menu, on ecrase celui par defaut
|
||||
*/
|
||||
if ($mainmenu) {
|
||||
$this->menu_array=$this->newmenu->liste;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Affichage du menu
|
||||
$alt=0;
|
||||
if (! sizeof($this->menu_array))
|
||||
{
|
||||
print '<div class="blockvmenuimpair">'."\n";
|
||||
print $langs->trans("NoPermission");
|
||||
print '</div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$contenu = 0;
|
||||
for ($i = 0 ; $i < sizeof($this->menu_array) ; $i++)
|
||||
{
|
||||
$alt++;
|
||||
if ($this->menu_array[$i]['level']==0) {
|
||||
if (($alt%2==0))
|
||||
{
|
||||
print '<div class="menu">'."\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<div class="menu">'."\n";
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->menu_array[$i]['level']==0)
|
||||
{
|
||||
|
||||
if ($contenu == 1) print '<div class="menu_fin"></div>';
|
||||
if ($this->menu_array[$i]['enabled'])
|
||||
{
|
||||
|
||||
print '<div class="menu_titre"><a class="menu_titre" href="'.$this->menu_array[$i]['url'].'"'.($this->menu_array[$i]['target']?' target="'.$this->menu_array[$i]['target'].'"':'').'>'.$this->menu_array[$i]['titre'].'</a></div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<div class="menu_titre"><font class="menu_titre_disabled">'.$this->menu_array[$i]['titre'].'</font></div>';
|
||||
}
|
||||
$contenu = 0;
|
||||
}
|
||||
|
||||
|
||||
if ($this->menu_array[$i]['level']==1) {
|
||||
if ($this->menu_array[$i]['enabled'])
|
||||
print '<div class="menu_contenu"><a class="vsmenu" href="'.$this->menu_array[$i]['url'].'"'.($this->menu_array[$i]['target']?' target="'.$this->menu_array[$i]['target'].'"':'').'>'.$this->menu_array[$i]['titre'].'</a></div>';
|
||||
else
|
||||
print '<div class="menu_contenu"><font class="vsmenudisabled">'.$this->menu_array[$i]['titre'].'</font></div>';
|
||||
$contenu = 1;
|
||||
}
|
||||
|
||||
|
||||
if ($this->menu_array[$i]['level']==2) {
|
||||
if ($this->menu_array[$i]['enabled'])
|
||||
print '<div class="menu_contenu"> <a class="vsmenu" href="'.$this->menu_array[$i]['url'].'"'.($this->menu_array[$i]['target']?' target="'.$this->menu_array[$i]['target'].'"':'').'>'.$this->menu_array[$i]['titre'].'</a></div>';
|
||||
else
|
||||
print '<div class="menu_contenu"> <font class="vsmenudisabled">'.$this->menu_array[$i]['titre'].'</font></div>';
|
||||
}
|
||||
if ($this->menu_array[$i]['level']==3) {
|
||||
if ($this->menu_array[$i]['enabled'])
|
||||
print '<div class="menu_contenu"> <a class="vsmenu" href="'.$this->menu_array[$i]['url'].'"'.($this->menu_array[$i]['target']?' target="'.$this->menu_array[$i]['target'].'"':'').'>'.$this->menu_array[$i]['titre'].'</a></div>';
|
||||
else
|
||||
print '<div class="menu_contenu"> <font class="vsmenudisabled">'.$this->menu_array[$i]['titre'].'</font></div>';
|
||||
}
|
||||
|
||||
if ($i == (sizeof($this->menu_array)-1) || $this->menu_array[$i+1]['level']==0) {
|
||||
print "</div>\n";
|
||||
}
|
||||
|
||||
}
|
||||
if ($contenu == 1) print '<div class="menu_fin"></div>';
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
321
htdocs/includes/menus/barre_left/auguria_frontoffice.php
Normal file
@ -0,0 +1,321 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/menus/barre_left/auguria_backoffice.php
|
||||
\brief Gestionnaire du menu du gauche Auguria
|
||||
\version $Revision$
|
||||
|
||||
\remarks La construction d'un gestionnaire pour le menu de gauche est simple:
|
||||
\remarks A l'aide d'un objet $newmenu=new Menu() et des méthode add et add_submenu,
|
||||
\remarks définir la liste des entrées menu à faire apparaitre.
|
||||
\remarks En fin de code, mettre la ligne $menu=$newmenu->liste.
|
||||
\remarks Ce qui est défini dans un tel gestionnaire sera alors prioritaire sur
|
||||
\remarks les définitions de menu des fichiers pre.inc.php
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
\class MenuLeft
|
||||
\brief Classe permettant la gestion du menu du gauche Auguria
|
||||
*/
|
||||
|
||||
class MenuLeft {
|
||||
|
||||
var $require_top=array("auguria_backoffice"); // Si doit etre en phase avec un gestionnaire de menu du haut particulier
|
||||
var $newmenu;
|
||||
var $menuArbo;
|
||||
|
||||
var $overwritemenufor = array();
|
||||
var $leftmenu;
|
||||
|
||||
/**
|
||||
* \brief Constructeur
|
||||
* \param db Handler d'accès base de donnée
|
||||
* \param menu_array Tableau des entrée de menu défini dans les fichier pre.inc.php
|
||||
*/
|
||||
function MenuLeft($db,&$menu_array)
|
||||
{
|
||||
require_once(DOL_DOCUMENT_ROOT."/admin/menus/module_menudb.php");
|
||||
|
||||
$this->db=$db;
|
||||
$this->menu_array=$menu_array;
|
||||
|
||||
$this->newmenu = new Menu();
|
||||
|
||||
$this->menuArbo = new menudb($this->db);
|
||||
$this->overwritemenufor = $this->menuArbo->listeMainmenu();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Affiche le menu
|
||||
*/
|
||||
function showmenu()
|
||||
{
|
||||
global $user,$conf,$langs,$dolibarr_main_db_name;
|
||||
|
||||
if (! session_id()) {
|
||||
session_name("DOLSESSID_".$dolibarr_main_db_name);
|
||||
session_start(); // En mode authentification PEAR, la session a déjà été ouverte
|
||||
}
|
||||
|
||||
$user->getrights("");
|
||||
|
||||
// On récupère mainmenu et leftmenu qui définissent le menu à afficher
|
||||
if (isset($_GET["mainmenu"])) {
|
||||
// On sauve en session le menu principal choisi
|
||||
$mainmenu=$_GET["mainmenu"];
|
||||
$_SESSION["mainmenu"]=$mainmenu;
|
||||
$_SESSION["leftmenuopened"]="";
|
||||
} else {
|
||||
// On va le chercher en session si non défini par le lien
|
||||
$mainmenu=$_SESSION["mainmenu"];
|
||||
}
|
||||
|
||||
if (isset($_GET["leftmenu"])) {
|
||||
// On sauve en session le menu principal choisi
|
||||
$this->leftmenu=$_GET["leftmenu"];
|
||||
$_SESSION["leftmenu"]=$this->leftmenu;
|
||||
if ($_SESSION["leftmenuopened"]==$this->leftmenu) {
|
||||
//$leftmenu="";
|
||||
$_SESSION["leftmenuopened"]="";
|
||||
}
|
||||
else {
|
||||
$_SESSION["leftmenuopened"]=$this->leftmenu;
|
||||
}
|
||||
} else {
|
||||
// On va le chercher en session si non défini par le lien
|
||||
$this->leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* On definit newmenu en fonction de mainmenu et leftmenu
|
||||
* ------------------------------------------------------
|
||||
*/
|
||||
if ($mainmenu)
|
||||
{
|
||||
|
||||
$this->newmenu = $this->menuArbo->menuCharger($mainmenu, $this->newmenu,1,$this->leftmenu);
|
||||
|
||||
/*
|
||||
* Menu AUTRES (Pour les menus du haut qui ne serait pas gérés)
|
||||
*/
|
||||
|
||||
if ($mainmenu && ! in_array($mainmenu,$this->overwritemenufor)) { $mainmenu=""; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Si on est sur un cas géré de surcharge du menu, on ecrase celui par defaut
|
||||
*/
|
||||
if ($mainmenu) {
|
||||
$this->menu_array=$this->newmenu->liste;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Affichage du menu
|
||||
$alt=0;
|
||||
if (! sizeof($this->menu_array))
|
||||
{
|
||||
print '<div class="blockvmenuimpair">'."\n";
|
||||
print $langs->trans("NoPermission");
|
||||
print '</div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$contenu = 0;
|
||||
for ($i = 0 ; $i < sizeof($this->menu_array) ; $i++)
|
||||
{
|
||||
$alt++;
|
||||
if ($this->menu_array[$i]['level']==0) {
|
||||
if (($alt%2==0))
|
||||
{
|
||||
print '<div class="menu">'."\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<div class="menu">'."\n";
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->menu_array[$i]['level']==0)
|
||||
{
|
||||
|
||||
if ($contenu == 1) print '<div class="menu_fin"></div>';
|
||||
if ($this->menu_array[$i]['enabled'])
|
||||
{
|
||||
|
||||
print '<div class="menu_titre"><a class="menu_titre" href="'.$this->menu_array[$i]['url'].'"'.($this->menu_array[$i]['target']?' target="'.$this->menu_array[$i]['target'].'"':'').'>'.$this->menu_array[$i]['titre'].'</a></div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<div class="menu_titre"><font class="menu_titre_disabled">'.$this->menu_array[$i]['titre'].'</font></div>';
|
||||
}
|
||||
$contenu = 0;
|
||||
}
|
||||
|
||||
|
||||
if ($this->menu_array[$i]['level']==1) {
|
||||
if ($this->menu_array[$i]['enabled'])
|
||||
print '<div class="menu_contenu"><a class="vsmenu" href="'.$this->menu_array[$i]['url'].'"'.($this->menu_array[$i]['target']?' target="'.$this->menu_array[$i]['target'].'"':'').'>'.$this->menu_array[$i]['titre'].'</a></div>';
|
||||
else
|
||||
print '<div class="menu_contenu"><font class="vsmenudisabled">'.$this->menu_array[$i]['titre'].'</font></div>';
|
||||
$contenu = 1;
|
||||
}
|
||||
|
||||
|
||||
if ($this->menu_array[$i]['level']==2) {
|
||||
if ($this->menu_array[$i]['enabled'])
|
||||
print '<div class="menu_contenu"> <a class="vsmenu" href="'.$this->menu_array[$i]['url'].'"'.($this->menu_array[$i]['target']?' target="'.$this->menu_array[$i]['target'].'"':'').'>'.$this->menu_array[$i]['titre'].'</a></div>';
|
||||
else
|
||||
print '<div class="menu_contenu"> <font class="vsmenudisabled">'.$this->menu_array[$i]['titre'].'</font></div>';
|
||||
}
|
||||
if ($this->menu_array[$i]['level']==3) {
|
||||
if ($this->menu_array[$i]['enabled'])
|
||||
print '<div class="menu_contenu"> <a class="vsmenu" href="'.$this->menu_array[$i]['url'].'"'.($this->menu_array[$i]['target']?' target="'.$this->menu_array[$i]['target'].'"':'').'>'.$this->menu_array[$i]['titre'].'</a></div>';
|
||||
else
|
||||
print '<div class="menu_contenu"> <font class="vsmenudisabled">'.$this->menu_array[$i]['titre'].'</font></div>';
|
||||
}
|
||||
|
||||
if ($i == (sizeof($this->menu_array)-1) || $this->menu_array[$i+1]['level']==0) {
|
||||
print "</div>\n";
|
||||
}
|
||||
|
||||
}
|
||||
if ($contenu == 1) print '<div class="menu_fin"></div>';
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function recur($tab,$pere,$rang)
|
||||
{
|
||||
$leftmenu = $this->leftmenu;
|
||||
//ballayage du tableau
|
||||
for ($x=0;$x<count($tab);$x++) {
|
||||
|
||||
//si un élément a pour père : $pere
|
||||
if ($tab[$x][1]==$pere) {
|
||||
|
||||
//on affiche le menu
|
||||
|
||||
if ($this->verifConstraint($tab[$x][0],$tab[$x][6],$tab[$x][7]) != 0)
|
||||
{
|
||||
|
||||
|
||||
if ($tab[$x][6])
|
||||
{
|
||||
|
||||
$leftmenuConstraint = false;
|
||||
$str = "if(".$tab[$x][6].") \$leftmenuConstraint = true;";
|
||||
|
||||
|
||||
eval($str);
|
||||
if ($leftmenuConstraint == true)
|
||||
{
|
||||
//echo $tab[$x][0].'-'.$tab[$x][6].'-'.$leftmenu.'<br>';
|
||||
$this->newmenu->add_submenu(DOL_URL_ROOT.$tab[$x][2], $tab[$x][3],$rang-1,$tab[$x][4],$tab[$x][5]);
|
||||
$this->recur($tab,$tab[$x][0],$rang+1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//echo $tab[$x][0].'-'.$tab[$x][3].'-'.$leftmenu.'<br>';
|
||||
$this->newmenu->add_submenu(DOL_URL_ROOT.$tab[$x][2], $tab[$x][3],$rang-1,$tab[$x][4],$tab[$x][5]);
|
||||
$this->recur($tab,$tab[$x][0],$rang+1);
|
||||
}
|
||||
|
||||
//$this->newmenu->add(DOL_URL_ROOT.$tab[$x][2], $tab[$x][3],$rang-1,$tab[$x][4],$tab[$x][5]);
|
||||
|
||||
/*et on recherche ses fils
|
||||
en rappelant la fonction recur()
|
||||
(+ incrémentation du décallage)*/
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function verifConstraint($rowid,$mainmenu,$leftmenu)
|
||||
{
|
||||
global $user,$conf,$user;
|
||||
|
||||
$constraint = true;
|
||||
|
||||
$sql = "SELECT c.rowid, c.action, mc.user FROM ".MAIN_DB_PREFIX."menu_constraint as c, ".MAIN_DB_PREFIX."menu_const as mc WHERE mc.fk_constraint = c.rowid AND (mc.user = 0 OR mc.user = 2 ) AND mc.fk_menu = '".$rowid."'";
|
||||
$result = $this->db->query($sql);
|
||||
|
||||
if ($result)
|
||||
{
|
||||
$num = $this->db->num_rows();
|
||||
$i = 0;
|
||||
while (($i < $num) && $constraint == true)
|
||||
{
|
||||
|
||||
$obj = $this->db->fetch_object($result);
|
||||
$strconstraint = "if(!(".$obj->action.")) { \$constraint = false;}";
|
||||
|
||||
eval($strconstraint);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
return $constraint;
|
||||
}
|
||||
|
||||
function verifRights($strRights)
|
||||
{
|
||||
|
||||
global $user;
|
||||
|
||||
if ($strRights != "")
|
||||
{
|
||||
$rights = true;
|
||||
|
||||
$tab_rights = explode(" || ",$strRights);
|
||||
$i = 0;
|
||||
while(($i < count($tab_rights)) && ($rights == true))
|
||||
{
|
||||
$str = "if(!(".$strRights.")) { \$rights = false;}";
|
||||
eval($str);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
else $rights = true;
|
||||
|
||||
|
||||
return $rights;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
117
htdocs/includes/menus/barre_top/auguria_backoffice.php
Normal file
@ -0,0 +1,117 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/menus/barre_top/auguria_backoffice.php
|
||||
\brief Gestionnaire nommé Auguria du menu du haut
|
||||
\version $Revision$
|
||||
|
||||
\remarks La construction d'un gestionnaire pour le menu du haut est simple:
|
||||
\remarks Toutes les entrées de menu à faire apparaitre dans la barre du haut
|
||||
\remarks doivent être affichées par <a class="tmenu" href="...?mainmenu=...">...</a>
|
||||
\remarks On peut éventuellement ajouter l'attribut id="sel" dans la balise <a>
|
||||
\remarks quand il s'agit de l'entrée du menu qui est sélectionnée.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
\class MenuTop
|
||||
\brief Classe permettant la gestion du menu du haut Auguria
|
||||
*/
|
||||
|
||||
class MenuTop {
|
||||
|
||||
var $require_left=array("auguria_backoffice"); // Si doit etre en phase avec un gestionnaire de menu gauche particulier
|
||||
var $atarget=""; // Valeur du target a utiliser dans les liens
|
||||
|
||||
|
||||
/**
|
||||
* \brief Constructeur
|
||||
* \param db Handler d'accès base de donnée
|
||||
*/
|
||||
function MenuTop($db)
|
||||
{
|
||||
global $langs;
|
||||
$this->db=$db;
|
||||
|
||||
$langs->setTransFromTab("Company",$langs->trans("ThirdParty"));
|
||||
$langs->setTransFromTab("NewCompany",$langs->trans("NewThirdParty"));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Affiche le menu
|
||||
*/
|
||||
function showmenu()
|
||||
{
|
||||
require_once(DOL_DOCUMENT_ROOT."/admin/menus/module_menudb.php");
|
||||
|
||||
global $user,$conf,$langs,$dolibarr_main_db_name;;
|
||||
|
||||
|
||||
if (! session_id()) {
|
||||
session_name("DOLSESSID_".$dolibarr_main_db_name);
|
||||
session_start(); // En mode authentification PEAR, la session a déjà été ouverte
|
||||
}
|
||||
|
||||
$user->getrights("");
|
||||
|
||||
// On récupère mainmenu
|
||||
if (isset($_GET["mainmenu"])) {
|
||||
// On sauve en session le menu principal choisi
|
||||
$mainmenu=$_GET["mainmenu"];
|
||||
$_SESSION["mainmenu"]=$mainmenu;
|
||||
$_SESSION["leftmenuopened"]="";
|
||||
} else {
|
||||
// On va le chercher en session si non défini par le lien
|
||||
$mainmenu=$_SESSION["mainmenu"];
|
||||
}
|
||||
|
||||
|
||||
$menuArbo = new menudb($this->db);
|
||||
$tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu']);
|
||||
|
||||
print '<ul>';
|
||||
|
||||
for($i=0;$i<count($tabMenu);$i++)
|
||||
{
|
||||
if ($tabMenu[$i]['right'] == true)
|
||||
{
|
||||
|
||||
print '<li><a '.$tabMenu[$i]['class'].' href="'.DOL_URL_ROOT.$tabMenu[$i]['url'].'"'.($this->atarget?" target=$tabMenu[$i]['atarget']":"").'>'.$tabMenu[$i]['titre'].'</a></li>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<li><div class="tmenudisabled">'.$tabMenu[$i]['titre'].'</div></li>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
print '</ul>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
117
htdocs/includes/menus/barre_top/auguria_frontoffice.php
Normal file
@ -0,0 +1,117 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/menus/barre_top/auguria_backoffice.php
|
||||
\brief Gestionnaire nommé Auguria du menu du haut
|
||||
\version $Revision$
|
||||
|
||||
\remarks La construction d'un gestionnaire pour le menu du haut est simple:
|
||||
\remarks Toutes les entrées de menu à faire apparaitre dans la barre du haut
|
||||
\remarks doivent être affichées par <a class="tmenu" href="...?mainmenu=...">...</a>
|
||||
\remarks On peut éventuellement ajouter l'attribut id="sel" dans la balise <a>
|
||||
\remarks quand il s'agit de l'entrée du menu qui est sélectionnée.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
\class MenuTop
|
||||
\brief Classe permettant la gestion du menu du haut Auguria
|
||||
*/
|
||||
|
||||
class MenuTop {
|
||||
|
||||
var $require_left=array("auguria_backoffice"); // Si doit etre en phase avec un gestionnaire de menu gauche particulier
|
||||
var $atarget=""; // Valeur du target a utiliser dans les liens
|
||||
|
||||
|
||||
/**
|
||||
* \brief Constructeur
|
||||
* \param db Handler d'accès base de donnée
|
||||
*/
|
||||
function MenuTop($db)
|
||||
{
|
||||
global $langs;
|
||||
$this->db=$db;
|
||||
|
||||
$langs->setTransFromTab("Company",$langs->trans("ThirdParty"));
|
||||
$langs->setTransFromTab("NewCompany",$langs->trans("NewThirdParty"));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Affiche le menu
|
||||
*/
|
||||
function showmenu()
|
||||
{
|
||||
require_once(DOL_DOCUMENT_ROOT."/admin/menus/module_menudb.php");
|
||||
|
||||
global $user,$conf,$langs,$dolibarr_main_db_name;;
|
||||
|
||||
|
||||
if (! session_id()) {
|
||||
session_name("DOLSESSID_".$dolibarr_main_db_name);
|
||||
session_start(); // En mode authentification PEAR, la session a déjà été ouverte
|
||||
}
|
||||
|
||||
$user->getrights("");
|
||||
|
||||
// On récupère mainmenu
|
||||
if (isset($_GET["mainmenu"])) {
|
||||
// On sauve en session le menu principal choisi
|
||||
$mainmenu=$_GET["mainmenu"];
|
||||
$_SESSION["mainmenu"]=$mainmenu;
|
||||
$_SESSION["leftmenuopened"]="";
|
||||
} else {
|
||||
// On va le chercher en session si non défini par le lien
|
||||
$mainmenu=$_SESSION["mainmenu"];
|
||||
}
|
||||
|
||||
|
||||
$menuArbo = new menudb($this->db);
|
||||
$tabMenu = $menuArbo->menutopCharger(1,$_SESSION['mainmenu']);
|
||||
|
||||
print '<ul>';
|
||||
|
||||
for($i=0;$i<count($tabMenu);$i++)
|
||||
{
|
||||
if ($tabMenu[$i]['right'] == true)
|
||||
{
|
||||
|
||||
print '<li><a '.$tabMenu[$i]['class'].' href="'.DOL_URL_ROOT.$tabMenu[$i]['url'].'"'.($this->atarget?" target=$tabMenu[$i]['atarget']":"").'>'.$tabMenu[$i]['titre'].'</a></li>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<li><div class="tmenudisabled">'.$tabMenu[$i]['titre'].'</div></li>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
print '</ul>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
114
htdocs/includes/modules/modMenuDb.class.php
Normal file
@ -0,0 +1,114 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\defgroup menuDb Module menuDb
|
||||
\brief Module pour administrer les menus par bdd
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/modules/modMenuBd.class.php
|
||||
\ingroup menuDb
|
||||
\brief Fichier de description et activation du module menuDb
|
||||
*/
|
||||
|
||||
include_once "DolibarrModules.class.php";
|
||||
|
||||
/**
|
||||
\class modMenuDb
|
||||
\brief Classe de description et activation du module menuDb
|
||||
*/
|
||||
|
||||
class modMenuDb extends DolibarrModules
|
||||
{
|
||||
|
||||
/**
|
||||
* \brief Constructeur. Definit les noms, constantes et boites
|
||||
* \param DB handler d'accès base
|
||||
*/
|
||||
function modMenuDb($DB)
|
||||
{
|
||||
$this->db = $DB ;
|
||||
$this->id = 'menudb'; // Same value xxx than in file modXxx.class.php file
|
||||
$this->numero = 2300 ;
|
||||
|
||||
$this->family = "technic";
|
||||
$this->name = "Menu Db";
|
||||
$this->description = "Administration des menus par base de données";
|
||||
$this->version = '1.1-beta'; // 'experimental' or 'dolibarr' or version
|
||||
$this->const_name = 'MAIN_MODULE_MENUDB';
|
||||
$this->special = 1;
|
||||
|
||||
// Dir
|
||||
$this->dirs = array();
|
||||
|
||||
// Dépendances
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
|
||||
|
||||
// Constantes
|
||||
$this->const = array();
|
||||
|
||||
// Boxes
|
||||
$this->boxes = array();
|
||||
|
||||
// Permissions
|
||||
$this->rights = array();
|
||||
$this->rights_class = 'menudb';
|
||||
|
||||
|
||||
$this->rights[2][0] = 2301;
|
||||
$this->rights[2][1] = 'Créer/modifier les menus';
|
||||
$this->rights[2][2] = 'w';
|
||||
$this->rights[2][3] = 0;
|
||||
$this->rights[2][4] = 'creer';
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* \brief Fonction appelée lors de l'activation du module. Insère en base les constantes, boites, permissions du module.
|
||||
* Définit également les répertoires de données à créer pour ce module.
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
$sql = array();
|
||||
|
||||
return $this->_init($sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Fonction appelée lors de la désactivation d'un module.
|
||||
* Supprime de la base les constantes, boites et permissions du module.
|
||||
*/
|
||||
function remove()
|
||||
{
|
||||
$sql = array();
|
||||
|
||||
return $this->_remove($sql);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
1
htdocs/theme/auguria/.cvsignore
Normal file
@ -0,0 +1 @@
|
||||
*.db
|
||||
1
htdocs/theme/auguria/AUTHOR
Normal file
@ -0,0 +1 @@
|
||||
2003-2004 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
1142
htdocs/theme/auguria/auguria.css.php
Normal file
132
htdocs/theme/auguria/fckeditor/fck_dialog.css
Normal file
@ -0,0 +1,132 @@
|
||||
/*
|
||||
* FCKeditor - The text editor for internet
|
||||
* Copyright (C) 2003-2006 Frederico Caldeira Knabben
|
||||
*
|
||||
* Licensed under the terms of the GNU Lesser General Public License:
|
||||
* http://www.opensource.org/licenses/lgpl-license.php
|
||||
*
|
||||
* For further information visit:
|
||||
* http://www.fckeditor.net/
|
||||
*
|
||||
* "Support Open Source software. What about a donation today?"
|
||||
*
|
||||
* File Name: fck_dialog.css
|
||||
* Styles used by the dialog boxes.
|
||||
*
|
||||
* File Authors:
|
||||
* Frederico Caldeira Knabben (fredck@fckeditor.net)
|
||||
*/
|
||||
|
||||
body
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
|
||||
body, td, input, select, textarea
|
||||
{
|
||||
font-size: 11px;
|
||||
font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
|
||||
}
|
||||
|
||||
body, .BackColor
|
||||
{
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
|
||||
.PopupBody
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.PopupTitle
|
||||
{
|
||||
padding-right: 10px;
|
||||
padding-left: 10px;
|
||||
font-weight: bold;
|
||||
font-size: 14pt;
|
||||
padding-bottom: 3px;
|
||||
color: #504845;
|
||||
padding-top: 3px;
|
||||
background-color: #dedede;
|
||||
}
|
||||
|
||||
.PopupButtons
|
||||
{
|
||||
border-top: #cec6b5 1px solid;
|
||||
background-color: #DEDEDE;
|
||||
padding: 7px 10px 7px 10px;
|
||||
}
|
||||
|
||||
.Button
|
||||
{
|
||||
border: #7a7261 1px solid;
|
||||
color: #504845;
|
||||
background-color: #cec6b5;
|
||||
}
|
||||
|
||||
.DarkBackground
|
||||
{
|
||||
background-color: #d7d79f;
|
||||
}
|
||||
|
||||
.LightBackground
|
||||
{
|
||||
background-color: #ffffbe;
|
||||
}
|
||||
|
||||
.PopupTitleBorder
|
||||
{
|
||||
border-bottom: #cec6b5 1px solid;
|
||||
}
|
||||
|
||||
.PopupTabArea
|
||||
{
|
||||
color: #504845;
|
||||
background-color: #DEDEDE;
|
||||
}
|
||||
|
||||
.PopupTabEmptyArea
|
||||
{
|
||||
padding-left: 10px ;
|
||||
border-bottom: #cec6b5 1px solid;
|
||||
}
|
||||
|
||||
.PopupTab, .PopupTabSelected
|
||||
{
|
||||
border-right: #cec6b5 1px solid;
|
||||
border-top: #cec6b5 1px solid;
|
||||
border-left: #cec6b5 1px solid;
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
padding-bottom: 3px;
|
||||
padding-top: 3px;
|
||||
color: #504845;
|
||||
}
|
||||
|
||||
.PopupTab
|
||||
{
|
||||
margin-top: 1px;
|
||||
border-bottom: #cec6b5 1px solid;
|
||||
cursor: pointer;
|
||||
cursor: hand;
|
||||
}
|
||||
|
||||
.PopupTabSelected
|
||||
{
|
||||
font-weight:bold;
|
||||
cursor: default;
|
||||
padding-top: 4px;
|
||||
border-bottom: #f1f1e3 1px solid;
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
|
||||
.PopupSelectionBox
|
||||
{
|
||||
border: #a9a9a9 1px solid;
|
||||
background-color: #dcdcdc;
|
||||
cursor: pointer;
|
||||
cursor: hand;
|
||||
}
|
||||
467
htdocs/theme/auguria/fckeditor/fck_editor.css
Normal file
@ -0,0 +1,467 @@
|
||||
/*
|
||||
* FCKeditor - The text editor for internet
|
||||
* Copyright (C) 2003-2006 Frederico Caldeira Knabben
|
||||
*
|
||||
* Licensed under the terms of the GNU Lesser General Public License:
|
||||
* http://www.opensource.org/licenses/lgpl-license.php
|
||||
*
|
||||
* For further information visit:
|
||||
* http://www.fckeditor.net/
|
||||
*
|
||||
* "Support Open Source software. What about a donation today?"
|
||||
*
|
||||
* File Name: fck_editor.css
|
||||
* Styles used by the editor IFRAME and Toolbar.
|
||||
*
|
||||
* File Authors:
|
||||
* Frederico Caldeira Knabben (fredck@fckeditor.net)
|
||||
* gazou[Fr]
|
||||
*/
|
||||
|
||||
/*
|
||||
### Basic Editor IFRAME Styles.
|
||||
*/
|
||||
|
||||
body
|
||||
{
|
||||
padding: 1px 1px 1px 1px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
}
|
||||
|
||||
#xEditingArea
|
||||
{
|
||||
border: #696969 1px solid;
|
||||
}
|
||||
|
||||
.SourceField
|
||||
{
|
||||
padding: 5px;
|
||||
margin: 0px;
|
||||
font-family: Monospace;
|
||||
}
|
||||
|
||||
/*
|
||||
Toolbar
|
||||
*/
|
||||
|
||||
.TB_ToolbarSet, .TB_Expand, .TB_Collapse
|
||||
{
|
||||
cursor: default;
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
|
||||
.TB_ToolbarSet
|
||||
{
|
||||
border-top: #efefde 1px outset;
|
||||
border-bottom: #efefde 1px outset;
|
||||
}
|
||||
|
||||
.TB_ToolbarSet TD
|
||||
{
|
||||
font-size: 11px;
|
||||
font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
|
||||
}
|
||||
|
||||
.TB_Toolbar
|
||||
{
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.TB_Separator
|
||||
{
|
||||
width: 1px;
|
||||
height: 18px;
|
||||
margin: 2px;
|
||||
background-color: #C6C3BD;
|
||||
}
|
||||
|
||||
.TB_Start
|
||||
{
|
||||
background-image: url(images/toolbar.start.gif);
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
width: 3px;
|
||||
background-repeat: no-repeat;
|
||||
height: 20px;
|
||||
background-position: center center;
|
||||
}
|
||||
|
||||
.TB_End
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.TB_ExpandImg
|
||||
{
|
||||
background-image: url(images/toolbar.expand.gif);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.TB_CollapseImg
|
||||
{
|
||||
background-image: url(images/toolbar.collapse.gif);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.TB_SideBorder
|
||||
{
|
||||
background-color: #696969;
|
||||
}
|
||||
|
||||
.TB_Expand, .TB_Collapse
|
||||
{
|
||||
padding: 2px 2px 2px 2px;
|
||||
border: #efefde 1px outset;
|
||||
}
|
||||
|
||||
.TB_Collapse
|
||||
{
|
||||
border: #efefde 1px outset;
|
||||
width: 5px;
|
||||
}
|
||||
|
||||
.TB_Break
|
||||
{
|
||||
height: 24px; /* IE needs the height to be set, otherwise no break */
|
||||
}
|
||||
|
||||
/*
|
||||
Toolbar Button
|
||||
*/
|
||||
|
||||
.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
|
||||
{
|
||||
padding: 1px ;
|
||||
margin:1px;
|
||||
height: 21px;
|
||||
}
|
||||
|
||||
.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
|
||||
{
|
||||
border: #cec6b5 1px solid;
|
||||
}
|
||||
|
||||
.TB_Button_On
|
||||
{
|
||||
border-color: #316ac5;
|
||||
background-color: #c1d2ee;
|
||||
}
|
||||
|
||||
.TB_Button_On_Over, .TB_Button_Off_Over
|
||||
{
|
||||
border: #316ac5 1px solid;
|
||||
background-color: #dff1ff;
|
||||
}
|
||||
|
||||
.TB_Button_Off
|
||||
{
|
||||
background: #efefef url(images/toolbar.buttonbg.gif) repeat-x;
|
||||
}
|
||||
|
||||
.TB_Button_Off, .TB_Combo_Off
|
||||
{
|
||||
opacity: 0.70; /* Safari, Opera and Mozilla */
|
||||
filter: alpha(opacity=70); /* IE */
|
||||
/* -moz-opacity: 0.70; Mozilla (Old) */
|
||||
}
|
||||
|
||||
.TB_Button_Disabled
|
||||
{
|
||||
opacity: 0.30; /* Safari, Opera and Mozilla */
|
||||
filter: gray() alpha(opacity=30); /* IE */
|
||||
}
|
||||
|
||||
.TB_Button_Padding
|
||||
{
|
||||
visibility: hidden;
|
||||
width: 3px;
|
||||
height: 21px;
|
||||
}
|
||||
|
||||
.TB_Button_Image
|
||||
{
|
||||
overflow: hidden;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 2px;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
/* For composed button ( icon + text, icon + arrow ), we must compensate the table */
|
||||
.TB_Button_On TABLE .TB_Button_Image,
|
||||
.TB_Button_Off TABLE .TB_Button_Image,
|
||||
.TB_Button_On_Over TABLE .TB_Button_Image,
|
||||
.TB_Button_Off_Over TABLE .TB_Button_Image,
|
||||
.TB_Button_Disabled TABLE .TB_Button_Image
|
||||
{
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.TB_Button_Image img
|
||||
{
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.TB_ConnectionLine
|
||||
{
|
||||
background-color: #ffffff;
|
||||
height: 1px;
|
||||
margin-left: 1px; /* ltr */
|
||||
margin-right: 1px; /* rtl */
|
||||
}
|
||||
|
||||
/*
|
||||
Menu
|
||||
*/
|
||||
|
||||
.MN_Menu
|
||||
{
|
||||
border: 1px solid #8f8f73;
|
||||
padding: 2px;
|
||||
background-color: #f7f7f7;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.MN_Menu, .MN_Menu .MN_Label
|
||||
{
|
||||
font-size: 11px;
|
||||
font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
|
||||
}
|
||||
|
||||
.MN_Item_Padding
|
||||
{
|
||||
visibility: hidden;
|
||||
width: 3px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.MN_Icon
|
||||
{
|
||||
background-color: #dedede;
|
||||
text-align: center;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.MN_Label
|
||||
{
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
.MN_Separator
|
||||
{
|
||||
height: 3px;
|
||||
}
|
||||
|
||||
.MN_Separator_Line
|
||||
{
|
||||
border-top: #b9b99d 1px solid;
|
||||
}
|
||||
|
||||
.MN_Item .MN_Icon IMG
|
||||
{
|
||||
filter: alpha(opacity=70);
|
||||
opacity: 0.70;
|
||||
}
|
||||
|
||||
.MN_Item_Over
|
||||
{
|
||||
color: #ffffff;
|
||||
background-color: #8a857d;
|
||||
}
|
||||
|
||||
.MN_Item_Over .MN_Icon
|
||||
{
|
||||
background-color: #6c6761;
|
||||
}
|
||||
|
||||
.MN_Item_Disabled IMG
|
||||
{
|
||||
filter: gray() alpha(opacity=30); /* IE */
|
||||
opacity: 0.30; /* Safari, Opera and Mozilla */
|
||||
}
|
||||
|
||||
.MN_Item_Disabled .MN_Label
|
||||
{
|
||||
color: #b7b7b7;
|
||||
}
|
||||
|
||||
.MN_Arrow
|
||||
{
|
||||
padding-right: 3px;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
.MN_ConnectionLine
|
||||
{
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.Menu .TB_Button_On, .Menu .TB_Button_On_Over
|
||||
{
|
||||
border: #8f8f73 1px solid;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
/*
|
||||
### Panel Styles
|
||||
*/
|
||||
|
||||
.FCK_Panel
|
||||
{
|
||||
border: #8f8f73 1px solid;
|
||||
padding: 2px;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.FCK_Panel, .FCK_Panel TD
|
||||
{
|
||||
font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
/*
|
||||
### Special Combos
|
||||
*/
|
||||
|
||||
.SC_Panel
|
||||
{
|
||||
overflow: auto;
|
||||
white-space: nowrap;
|
||||
cursor: default;
|
||||
border: 1px solid #8f8f73;
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.SC_Panel, .SC_Panel TD
|
||||
{
|
||||
font-size: 11px;
|
||||
font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
|
||||
}
|
||||
|
||||
.SC_Item, .SC_ItemSelected
|
||||
{
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
background-position: left center;
|
||||
padding-left: 11px;
|
||||
padding-right: 3px;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
background-repeat: no-repeat;
|
||||
border: #dddddd 1px solid;
|
||||
}
|
||||
|
||||
.SC_Item *, .SC_ItemSelected *
|
||||
{
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.SC_ItemSelected
|
||||
{
|
||||
border: #9a9afb 1px solid;
|
||||
background-image: url(images/toolbar.arrowright.gif);
|
||||
}
|
||||
|
||||
.SC_ItemOver
|
||||
{
|
||||
border: #404040 1px solid;
|
||||
}
|
||||
|
||||
.SC_Field
|
||||
{
|
||||
margin-top:1px ;
|
||||
border: #b7b7a6 1px solid;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.SC_FieldCaption
|
||||
{
|
||||
padding-top: 1px ;
|
||||
overflow: visible;
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
opacity: 0.75; /* Safari, Opera and Mozilla */
|
||||
filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
|
||||
height: 23px;
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
|
||||
.SC_FieldLabel
|
||||
{
|
||||
white-space: nowrap;
|
||||
padding: 2px;
|
||||
width: 100%;
|
||||
cursor: default;
|
||||
background-color: #ffffff;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.SC_FieldButton
|
||||
{
|
||||
background-position: center center;
|
||||
background-image: url(images/toolbar.buttonarrow.gif);
|
||||
border-left: #b7b7a6 1px solid;
|
||||
width: 14px;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
|
||||
{
|
||||
opacity: 0.30; /* Safari, Opera and Mozilla */
|
||||
filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
|
||||
}
|
||||
|
||||
.SC_FieldOver
|
||||
{
|
||||
border: #316ac5 1px solid;
|
||||
}
|
||||
|
||||
.SC_FieldOver .SC_FieldButton
|
||||
{
|
||||
border-left: #316ac5 1px solid;
|
||||
}
|
||||
|
||||
/*
|
||||
### Color Selector Panel
|
||||
*/
|
||||
|
||||
.ColorBoxBorder
|
||||
{
|
||||
border: #808080 1px solid;
|
||||
position: static;
|
||||
}
|
||||
|
||||
.ColorBox
|
||||
{
|
||||
font-size: 1px;
|
||||
width: 10px;
|
||||
position: static;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.ColorDeselected, .ColorSelected
|
||||
{
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.ColorDeselected
|
||||
{
|
||||
border: #ffffff 1px solid;
|
||||
padding: 2px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.ColorSelected
|
||||
{
|
||||
border: #316ac5 1px solid;
|
||||
padding: 2px;
|
||||
float: left;
|
||||
background-color: #c1d2ee;
|
||||
}
|
||||
BIN
htdocs/theme/auguria/fckeditor/fck_strip.gif
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
260
htdocs/theme/auguria/fckeditor/fckconfig.js
Normal file
@ -0,0 +1,260 @@
|
||||
/*
|
||||
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
||||
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
||||
*
|
||||
* == BEGIN LICENSE ==
|
||||
*
|
||||
* Licensed under the terms of any of the following licenses at your
|
||||
* choice:
|
||||
*
|
||||
* - GNU General Public License Version 2 or later (the "GPL")
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
||||
* http://www.gnu.org/licenses/lgpl.html
|
||||
*
|
||||
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
||||
* http://www.mozilla.org/MPL/MPL-1.1.html
|
||||
*
|
||||
* == END LICENSE ==
|
||||
*
|
||||
* File Name: fckconfig.js
|
||||
* Editor configuration settings.
|
||||
*
|
||||
* Follow this link for more information:
|
||||
* http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings
|
||||
*
|
||||
* File Authors:
|
||||
* Frederico Caldeira Knabben (www.fckeditor.net)
|
||||
*/
|
||||
|
||||
// Disable the custom Enter Key Handler (this configuration will be removed in
|
||||
// version 2.5).
|
||||
FCKConfig.DisableEnterKeyHandler = false ;
|
||||
|
||||
FCKConfig.CustomConfigurationsPath = '' ;
|
||||
|
||||
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;
|
||||
FCKConfig.ToolbarComboPreviewCSS = '' ;
|
||||
|
||||
FCKConfig.DocType = '' ;
|
||||
|
||||
FCKConfig.BaseHref = '' ;
|
||||
|
||||
FCKConfig.FullPage = false ;
|
||||
|
||||
FCKConfig.Debug = false ;
|
||||
FCKConfig.AllowQueryStringDebug = true ;
|
||||
|
||||
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;
|
||||
FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'images/toolbar.start.gif', FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif' ] ;
|
||||
|
||||
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;
|
||||
|
||||
// FCKConfig.Plugins.Add( 'autogrow' ) ;
|
||||
FCKConfig.AutoGrowMax = 400 ;
|
||||
|
||||
FCKConfig.ProtectedSource.Add( /<script[\s\S]*?\/script>/gi ) ; // <SCRIPT> tags.
|
||||
// FCKConfig.ProtectedSource.Add( /<%[\s\S]*?%>/g ) ; // ASP style server side code <%...%>
|
||||
FCKConfig.ProtectedSource.Add( /<\?[\s\S]*?\?>/g ) ; // PHP style server side code
|
||||
// FCKConfig.ProtectedSource.Add( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ) ; // ASP.Net style tags <asp:control>
|
||||
|
||||
FCKConfig.AutoDetectLanguage = true ;
|
||||
FCKConfig.DefaultLanguage = 'fr' ;
|
||||
FCKConfig.ContentLangDirection = 'ltr' ;
|
||||
|
||||
FCKConfig.ProcessHTMLEntities = true ;
|
||||
FCKConfig.IncludeLatinEntities = true ;
|
||||
FCKConfig.IncludeGreekEntities = true ;
|
||||
|
||||
FCKConfig.ProcessNumericEntities = false ;
|
||||
|
||||
FCKConfig.AdditionalNumericEntities = '' ; // Single Quote: "'"
|
||||
|
||||
FCKConfig.FillEmptyBlocks = true ;
|
||||
|
||||
FCKConfig.FormatSource = false ;
|
||||
FCKConfig.FormatOutput = false ;
|
||||
FCKConfig.FormatIndentator = ' ' ;
|
||||
|
||||
FCKConfig.ForceStrongEm = true ;
|
||||
FCKConfig.GeckoUseSPAN = false ;
|
||||
FCKConfig.StartupFocus = false ;
|
||||
FCKConfig.ForcePasteAsPlainText = false ;
|
||||
FCKConfig.AutoDetectPasteFromWord = true ; // IE only.
|
||||
FCKConfig.ForceSimpleAmpersand = false ;
|
||||
FCKConfig.TabSpaces = 0 ;
|
||||
FCKConfig.ShowBorders = true ;
|
||||
FCKConfig.SourcePopup = false ;
|
||||
FCKConfig.ToolbarStartExpanded = false ;
|
||||
FCKConfig.ToolbarCanCollapse = true ;
|
||||
FCKConfig.IgnoreEmptyParagraphValue = true ;
|
||||
FCKConfig.PreserveSessionOnFileBrowser = false ;
|
||||
FCKConfig.FloatingPanelsZIndex = 10000 ;
|
||||
|
||||
FCKConfig.TemplateReplaceAll = true ;
|
||||
FCKConfig.TemplateReplaceCheckbox = true ;
|
||||
|
||||
FCKConfig.ToolbarLocation = 'In' ;
|
||||
|
||||
FCKConfig.ToolbarSets["dolibarr_mailings"] = [
|
||||
['FitWindow','Source'],
|
||||
['Cut','Copy','Paste','PasteText','PasteWord','-','SpellCheck','-','Preview','Print'],
|
||||
['Undo','Redo','-','Find','Replace','-','SelectAll'],
|
||||
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript','-','TextColor','BGColor','-','RemoveFormat'],
|
||||
['OrderedList','UnorderedList','-','Outdent','Indent'],
|
||||
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
|
||||
['Link','Unlink','Anchor','Image','Table','Rule','Smiley','SpecialChar'],
|
||||
['FontName','FontSize']
|
||||
] ;
|
||||
|
||||
FCKConfig.ToolbarSets["dolibarr_notes"] = [
|
||||
['FitWindow','Source'],
|
||||
['Cut','Copy','Paste','PasteText','PasteWord','-','SpellCheck','-','Preview','Print'],
|
||||
['Undo','Redo','-','Find','Replace','-','SelectAll'],
|
||||
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript','-','TextColor','BGColor','-','RemoveFormat'],
|
||||
['OrderedList','UnorderedList','-','Outdent','Indent'],
|
||||
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
|
||||
['Link','Unlink','Anchor','Image','Table','Rule','SpecialChar'],
|
||||
['FontName','FontSize']
|
||||
] ;
|
||||
|
||||
FCKConfig.ToolbarSets["dolibarr_details"] = [
|
||||
['FitWindow','Source'],
|
||||
['Cut','Copy','Paste','-','Preview'],
|
||||
['Undo','Redo'],
|
||||
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript','-','TextColor','BGColor','-','RemoveFormat'],
|
||||
['OrderedList','UnorderedList','-','Outdent','Indent'],
|
||||
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
|
||||
['SpecialChar'],
|
||||
['FontName','FontSize']
|
||||
] ;
|
||||
|
||||
FCKConfig.ToolbarSets["Default"] = [
|
||||
['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
|
||||
['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
|
||||
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
|
||||
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
|
||||
'/',
|
||||
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
|
||||
['OrderedList','UnorderedList','-','Outdent','Indent'],
|
||||
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
|
||||
['Link','Unlink','Anchor'],
|
||||
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
|
||||
'/',
|
||||
['Style','FontFormat','FontName','FontSize'],
|
||||
['TextColor','BGColor'],
|
||||
['FitWindow','-','About']
|
||||
] ;
|
||||
|
||||
FCKConfig.ToolbarSets["Basic"] = [
|
||||
['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
|
||||
] ;
|
||||
|
||||
FCKConfig.EnterMode = 'br' ; // p | div | br
|
||||
FCKConfig.ShiftEnterMode = 'p' ; // p | div | br
|
||||
|
||||
FCKConfig.Keystrokes = [
|
||||
[ CTRL + 65 /*A*/, true ],
|
||||
[ CTRL + 67 /*C*/, true ],
|
||||
[ CTRL + 88 /*X*/, true ],
|
||||
[ CTRL + 86 /*V*/, 'Paste' ],
|
||||
[ SHIFT + 45 /*INS*/, 'Paste' ],
|
||||
[ CTRL + 90 /*Z*/, 'Undo' ],
|
||||
[ CTRL + 89 /*Y*/, 'Redo' ],
|
||||
[ CTRL + SHIFT + 90 /*Z*/, 'Redo' ],
|
||||
[ CTRL + 76 /*L*/, 'Link' ],
|
||||
[ CTRL + 66 /*B*/, 'Bold' ],
|
||||
[ CTRL + 73 /*I*/, 'Italic' ],
|
||||
[ CTRL + 85 /*U*/, 'Underline' ],
|
||||
[ CTRL + ALT + 83 /*S*/, 'Save' ],
|
||||
[ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ],
|
||||
[ CTRL + 9 /*TAB*/, 'Source' ]
|
||||
] ;
|
||||
|
||||
FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form'] ;
|
||||
|
||||
FCKConfig.FontColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF' ;
|
||||
|
||||
FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
|
||||
FCKConfig.FontSizes = '1/xx-small;2/x-small;3/small;4/medium;5/large;6/x-large;7/xx-large' ;
|
||||
FCKConfig.FontFormats = 'p;div;pre;address;h1;h2;h3;h4;h5;h6' ;
|
||||
|
||||
FCKConfig.StylesXmlPath = FCKConfig.EditorPath + 'fckstyles.xml' ;
|
||||
FCKConfig.TemplatesXmlPath = FCKConfig.EditorPath + 'fcktemplates.xml' ;
|
||||
|
||||
FCKConfig.SpellChecker = 'ieSpell' ; // 'ieSpell' | 'SpellerPages'
|
||||
FCKConfig.IeSpellDownloadUrl = 'http://wcarchive.cdrom.com/pub/simtelnet/handheld/webbrow1/ieSpellSetup240428.exe' ;
|
||||
FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ; // Available extension: .php .cfm .pl
|
||||
|
||||
FCKConfig.MaxUndoLevels = 15 ;
|
||||
|
||||
FCKConfig.DisableObjectResizing = false ;
|
||||
FCKConfig.DisableFFTableHandles = true ;
|
||||
|
||||
FCKConfig.LinkDlgHideTarget = false ;
|
||||
FCKConfig.LinkDlgHideAdvanced = false ;
|
||||
|
||||
FCKConfig.ImageDlgHideLink = false ;
|
||||
FCKConfig.ImageDlgHideAdvanced = false ;
|
||||
|
||||
FCKConfig.FlashDlgHideAdvanced = false ;
|
||||
|
||||
FCKConfig.ProtectedTags = '' ;
|
||||
|
||||
// This will be applied to the body element of the editor
|
||||
FCKConfig.BodyId = '' ;
|
||||
FCKConfig.BodyClass = '' ;
|
||||
|
||||
// The option switches between trying to keep the html structure or do the changes so the content looks like it was in Word
|
||||
FCKConfig.CleanWordKeepsStructure = false ;
|
||||
|
||||
// The following value defines which File Browser connector and Quick Upload
|
||||
// "uploader" to use. It is valid for the default implementaion and it is here
|
||||
// just to make this configuration file cleaner.
|
||||
// It is not possible to change this value using an external file or even
|
||||
// inline when creating the editor instance. In that cases you must set the
|
||||
// values of LinkBrowserURL, ImageBrowserURL and so on.
|
||||
// Custom implementations should just ignore it.
|
||||
var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
|
||||
var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | php
|
||||
|
||||
// Don't care about the following line. It just calculates the correct connector
|
||||
// extension to use for the default File Browser (Perl uses "cgi").
|
||||
var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;
|
||||
|
||||
FCKConfig.LinkBrowser = true ;
|
||||
FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
|
||||
FCKConfig.LinkBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70%
|
||||
FCKConfig.LinkBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70%
|
||||
|
||||
FCKConfig.ImageBrowser = true ;
|
||||
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
|
||||
FCKConfig.ImageBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70% ;
|
||||
FCKConfig.ImageBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70% ;
|
||||
|
||||
FCKConfig.FlashBrowser = true ;
|
||||
FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
|
||||
FCKConfig.FlashBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; //70% ;
|
||||
FCKConfig.FlashBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; //70% ;
|
||||
|
||||
FCKConfig.LinkUpload = false ;
|
||||
FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage ;
|
||||
FCKConfig.LinkUploadAllowedExtensions = "" ; // empty for all
|
||||
FCKConfig.LinkUploadDeniedExtensions = ".(html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis)$" ; // empty for no one
|
||||
|
||||
FCKConfig.ImageUpload = false ;
|
||||
FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Image' ;
|
||||
FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png|bmp)$" ; // empty for all
|
||||
FCKConfig.ImageUploadDeniedExtensions = "" ; // empty for no one
|
||||
|
||||
FCKConfig.FlashUpload = false ;
|
||||
FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Flash' ;
|
||||
FCKConfig.FlashUploadAllowedExtensions = ".(swf|fla)$" ; // empty for all
|
||||
FCKConfig.FlashUploadDeniedExtensions = "" ; // empty for no one
|
||||
|
||||
FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;
|
||||
FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif','devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'] ;
|
||||
FCKConfig.SmileyColumns = 8 ;
|
||||
FCKConfig.SmileyWindowWidth = 320 ;
|
||||
FCKConfig.SmileyWindowHeight = 240 ;
|
||||
2
htdocs/theme/auguria/fckeditor/images/.cvsignore
Normal file
@ -0,0 +1,2 @@
|
||||
*.db
|
||||
*.db
|
||||
BIN
htdocs/theme/auguria/fckeditor/images/toolbar.arrowright.gif
Normal file
|
After Width: | Height: | Size: 53 B |
BIN
htdocs/theme/auguria/fckeditor/images/toolbar.buttonarrow.gif
Normal file
|
After Width: | Height: | Size: 46 B |
BIN
htdocs/theme/auguria/fckeditor/images/toolbar.buttonbg.gif
Normal file
|
After Width: | Height: | Size: 829 B |
BIN
htdocs/theme/auguria/fckeditor/images/toolbar.collapse.gif
Normal file
|
After Width: | Height: | Size: 152 B |
BIN
htdocs/theme/auguria/fckeditor/images/toolbar.end.gif
Normal file
|
After Width: | Height: | Size: 43 B |
BIN
htdocs/theme/auguria/fckeditor/images/toolbar.expand.gif
Normal file
|
After Width: | Height: | Size: 152 B |
BIN
htdocs/theme/auguria/fckeditor/images/toolbar.separator.gif
Normal file
|
After Width: | Height: | Size: 58 B |
BIN
htdocs/theme/auguria/fckeditor/images/toolbar.start.gif
Normal file
|
After Width: | Height: | Size: 105 B |
36
htdocs/theme/auguria/graph-color.php
Executable file
@ -0,0 +1,36 @@
|
||||
<?PHP
|
||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/theme/eldy/graph-color.php
|
||||
\brief Fichier de déclaration des couleurs pour les graphiques
|
||||
\ingroup core
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
global $theme_bordercolor, $theme_datacolor, $theme_bgcolor, $theme_bgcoloronglet;
|
||||
$theme_bordercolor = array(235,235,224);
|
||||
$theme_datacolor = array(array(120,130,150), array(160,160,180), array(190,190,220));
|
||||
$theme_bgcolor = array(hexdec('F4'),hexdec('F4'),hexdec('F4'));
|
||||
$theme_bgcoloronglet = array(hexdec('DE'),hexdec('E7'),hexdec('EC'));
|
||||
|
||||
?>
|
||||
1
htdocs/theme/auguria/img/.cvsignore
Normal file
@ -0,0 +1 @@
|
||||
*.db
|
||||
BIN
htdocs/theme/auguria/img/1downarrow.png
Normal file
|
After Width: | Height: | Size: 1021 B |
BIN
htdocs/theme/auguria/img/1leftarrow.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/1rightarrow.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/1uparrow.png
Normal file
|
After Width: | Height: | Size: 1021 B |
BIN
htdocs/theme/auguria/img/2.png
Executable file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
htdocs/theme/auguria/img/addfile.png
Normal file
|
After Width: | Height: | Size: 827 B |
BIN
htdocs/theme/auguria/img/bg-bas-rubrique.png
Normal file
|
After Width: | Height: | Size: 355 B |
BIN
htdocs/theme/auguria/img/bg-rubrique.png
Normal file
|
After Width: | Height: | Size: 153 B |
BIN
htdocs/theme/auguria/img/bg-titre-rubrique.png
Normal file
|
After Width: | Height: | Size: 474 B |
BIN
htdocs/theme/auguria/img/bouton/menu_l_title_bg.png
Normal file
|
After Width: | Height: | Size: 147 B |
BIN
htdocs/theme/auguria/img/bouton/round_black_tr.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
htdocs/theme/auguria/img/button_bg.png
Normal file
|
After Width: | Height: | Size: 199 B |
BIN
htdocs/theme/auguria/img/button_edit.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
htdocs/theme/auguria/img/calendar.png
Normal file
|
After Width: | Height: | Size: 308 B |
BIN
htdocs/theme/auguria/img/call.png
Normal file
|
After Width: | Height: | Size: 336 B |
BIN
htdocs/theme/auguria/img/call_out.png
Normal file
|
After Width: | Height: | Size: 398 B |
BIN
htdocs/theme/auguria/img/delete.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/disable.png
Normal file
|
After Width: | Height: | Size: 1002 B |
BIN
htdocs/theme/auguria/img/edit.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
htdocs/theme/auguria/img/edit_add.png
Executable file
|
After Width: | Height: | Size: 232 B |
BIN
htdocs/theme/auguria/img/edit_remove.png
Executable file
|
After Width: | Height: | Size: 931 B |
BIN
htdocs/theme/auguria/img/editdelete.png
Normal file
|
After Width: | Height: | Size: 1002 B |
BIN
htdocs/theme/auguria/img/error.png
Normal file
|
After Width: | Height: | Size: 669 B |
BIN
htdocs/theme/auguria/img/file.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/filenew.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/filter.png
Normal file
|
After Width: | Height: | Size: 253 B |
BIN
htdocs/theme/auguria/img/folder-open.png
Normal file
|
After Width: | Height: | Size: 814 B |
BIN
htdocs/theme/auguria/img/folder.png
Normal file
|
After Width: | Height: | Size: 736 B |
BIN
htdocs/theme/auguria/img/help.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
htdocs/theme/auguria/img/high.png
Normal file
|
After Width: | Height: | Size: 669 B |
BIN
htdocs/theme/auguria/img/history.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
htdocs/theme/auguria/img/info.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
htdocs/theme/auguria/img/liste_menu.gif
Normal file
|
After Width: | Height: | Size: 54 B |
BIN
htdocs/theme/auguria/img/liste_titre.png
Normal file
|
After Width: | Height: | Size: 220 B |
BIN
htdocs/theme/auguria/img/lock.png
Normal file
|
After Width: | Height: | Size: 719 B |
BIN
htdocs/theme/auguria/img/login_background.png
Normal file
|
After Width: | Height: | Size: 229 B |
BIN
htdocs/theme/auguria/img/login_logo.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
htdocs/theme/auguria/img/logout.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/nav.jpg
Normal file
|
After Width: | Height: | Size: 329 B |
BIN
htdocs/theme/auguria/img/next.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
htdocs/theme/auguria/img/object_account.png
Normal file
|
After Width: | Height: | Size: 470 B |
BIN
htdocs/theme/auguria/img/object_action.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
htdocs/theme/auguria/img/object_barcode.png
Normal file
|
After Width: | Height: | Size: 974 B |
BIN
htdocs/theme/auguria/img/object_bill.png
Executable file
|
After Width: | Height: | Size: 1021 B |
BIN
htdocs/theme/auguria/img/object_billa.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/object_billr.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/object_book.png
Executable file
|
After Width: | Height: | Size: 426 B |
BIN
htdocs/theme/auguria/img/object_bookmark.png
Normal file
|
After Width: | Height: | Size: 307 B |
BIN
htdocs/theme/auguria/img/object_calendar.png
Normal file
|
After Width: | Height: | Size: 266 B |
BIN
htdocs/theme/auguria/img/object_commercial.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/object_company.png
Executable file
|
After Width: | Height: | Size: 492 B |
BIN
htdocs/theme/auguria/img/object_contact.png
Executable file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
htdocs/theme/auguria/img/object_contact_all.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
htdocs/theme/auguria/img/object_contract.png
Executable file
|
After Width: | Height: | Size: 1010 B |
BIN
htdocs/theme/auguria/img/object_email.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/object_energie.png
Normal file
|
After Width: | Height: | Size: 376 B |
BIN
htdocs/theme/auguria/img/object_generic.png
Normal file
|
After Width: | Height: | Size: 1009 B |
BIN
htdocs/theme/auguria/img/object_group.png
Normal file
|
After Width: | Height: | Size: 863 B |
BIN
htdocs/theme/auguria/img/object_intervention.png
Normal file
|
After Width: | Height: | Size: 340 B |
BIN
htdocs/theme/auguria/img/object_order.png
Executable file
|
After Width: | Height: | Size: 1011 B |
BIN
htdocs/theme/auguria/img/object_payment.png
Normal file
|
After Width: | Height: | Size: 455 B |
BIN
htdocs/theme/auguria/img/object_phoning.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/object_product.png
Executable file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/theme/auguria/img/object_project.png
Normal file
|
After Width: | Height: | Size: 736 B |
BIN
htdocs/theme/auguria/img/object_propal.png
Executable file
|
After Width: | Height: | Size: 342 B |
BIN
htdocs/theme/auguria/img/object_reduc.png
Normal file
|
After Width: | Height: | Size: 1009 B |
BIN
htdocs/theme/auguria/img/object_rss.png
Normal file
|
After Width: | Height: | Size: 578 B |
BIN
htdocs/theme/auguria/img/object_sending.png
Normal file
|
After Width: | Height: | Size: 340 B |