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
This commit is contained in:
cdelambert 2007-04-30 08:35:47 +00:00
parent ecc7bf41da
commit 318d3ae71a
138 changed files with 4453 additions and 0 deletions

521
htdocs/admin/menus/edit.php Normal file
View 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 '&nbsp;';
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 '&nbsp;';
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">&nbsp;</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">&nbsp;</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'].'&amp;return=1">'.$langs->trans('Valid').'</a>';
print '<a class="butActionDelete" href="edit.php?menuId='.$_GET['menuId'].'&amp;action=delete">'.$langs->trans('Supprimer').'</a>';
print '</div>';
}
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

View 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&amp;action=create">'.$langs->trans("NewMenu").'</a>';
print '</div>';
?>

171
htdocs/admin/menus/menu.js Normal file
View 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;
}

View 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;
}
}
?>

View 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);
}
?>

View 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">&nbsp; &nbsp;<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">&nbsp; &nbsp;<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">&nbsp; &nbsp; &nbsp; &nbsp; <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">&nbsp; &nbsp; &nbsp; &nbsp; <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>';
}
}
}
?>

View 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">&nbsp; &nbsp;<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">&nbsp; &nbsp;<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">&nbsp; &nbsp; &nbsp; &nbsp; <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">&nbsp; &nbsp; &nbsp; &nbsp; <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;
}
}
?>

View 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>';
}
}
?>

View 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>';
}
}
?>

View 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);
}
}
?>

View File

@ -0,0 +1 @@
*.db

View File

@ -0,0 +1 @@
2003-2004 Laurent Destailleur <eldy@users.sourceforge.net>

File diff suppressed because it is too large Load Diff

View 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;
}

View 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;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View 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 ;

View File

@ -0,0 +1,2 @@
*.db
*.db

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 829 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

View 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'));
?>

View File

@ -0,0 +1 @@
*.db

Binary file not shown.

After

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1021 B

BIN
htdocs/theme/auguria/img/2.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 974 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1009 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 863 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1011 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1009 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Some files were not shown because too many files have changed in this diff Show More