Modules can add menu entries on left menu.
This commit is contained in:
parent
98ebbf7571
commit
debb9cee8a
@ -318,7 +318,14 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
|
|||||||
|
|
||||||
// MenuId Parent
|
// MenuId Parent
|
||||||
print '<tr><td><b>'.$langs->trans('MenuIdParent').'</b></td>';
|
print '<tr><td><b>'.$langs->trans('MenuIdParent').'</b></td>';
|
||||||
print '<td><input type="text" size="10" name="menuId" value="'.$parent_rowid.'"></td>';
|
if ($parent_rowid)
|
||||||
|
{
|
||||||
|
print '<td>'.$parent_rowid.'<input type="hidden" size="10" name="menuId" value="'.$parent_rowid.'"></td>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<td><input type="text" size="10" name="menuId" value="'.$parent_rowid.'"></td>';
|
||||||
|
}
|
||||||
print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>';
|
print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>';
|
||||||
|
|
||||||
// Handler
|
// Handler
|
||||||
@ -339,11 +346,19 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
|
|||||||
|
|
||||||
// Type
|
// Type
|
||||||
print '<tr><td><b>'.$langs->trans('Type').'</b></td><td>';
|
print '<tr><td><b>'.$langs->trans('Type').'</b></td><td>';
|
||||||
print '<select name="type" class="flat">';
|
if ($parent_rowid)
|
||||||
print '<option value=""> </option>';
|
{
|
||||||
print '<option value="top"'.($_POST["type"] && $_POST["type"]=='top'?' selected="true"':'').'>Top</option>';
|
print 'Left';
|
||||||
print '<option value="left"'.($_POST["type"] && $_POST["type"]=='left'?' selected="true"':'').'>Left</option>';
|
print '<input type="hidden" name="type" value="left">';
|
||||||
print '</select>';
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<select name="type" class="flat">';
|
||||||
|
print '<option value=""> </option>';
|
||||||
|
print '<option value="top"'.($_POST["type"] && $_POST["type"]=='top'?' selected="true"':'').'>Top</option>';
|
||||||
|
print '<option value="left"'.($_POST["type"] && $_POST["type"]=='left'?' selected="true"':'').'>Left</option>';
|
||||||
|
print '</select>';
|
||||||
|
}
|
||||||
// print '<input type="text" size="50" name="type" value="'.$type.'">';
|
// print '<input type="text" size="50" name="type" value="'.$type.'">';
|
||||||
print '</td><td>'.$langs->trans('DetailType').'</td></tr>';
|
print '</td><td>'.$langs->trans('DetailType').'</td></tr>';
|
||||||
|
|
||||||
|
|||||||
@ -332,9 +332,10 @@ class Menubase
|
|||||||
* @param unknown_type $mainmenu Value for mainmenu that defined top menu
|
* @param unknown_type $mainmenu Value for mainmenu that defined top menu
|
||||||
* @param unknown_type $leftmenu Value for left that defined leftmenu
|
* @param unknown_type $leftmenu Value for left that defined leftmenu
|
||||||
* @param unknown_type $type_user 0=Internal,1=External,2=All
|
* @param unknown_type $type_user 0=Internal,1=External,2=All
|
||||||
|
* @param menu_handler Name of menu_handler used (auguria, eldy...)
|
||||||
* @return array Menu array completed
|
* @return array Menu array completed
|
||||||
*/
|
*/
|
||||||
function menuLeftCharger($newmenu, $mainmenu, $leftmenu, $type_user)
|
function menuLeftCharger($newmenu, $mainmenu, $leftmenu, $type_user, $menu_handler)
|
||||||
{
|
{
|
||||||
global $langs, $user, $conf;
|
global $langs, $user, $conf;
|
||||||
global $rights; // To export to dol_eval function
|
global $rights; // To export to dol_eval function
|
||||||
@ -349,7 +350,7 @@ class Menubase
|
|||||||
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
|
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."menu_const as mc ON m.rowid = mc.fk_menu";
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."menu_const as mc ON m.rowid = mc.fk_menu";
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."menu_constraint as mo ON mc.fk_constraint = mo.rowid";
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."menu_constraint as mo ON mc.fk_constraint = mo.rowid";
|
||||||
$sql.= " WHERE m.menu_handler in('".$this->menu_handler."','all')";
|
$sql.= " WHERE m.menu_handler in('".$menu_handler."','all')";
|
||||||
if ($type_user == 0) $sql.= " AND m.user in (0,2)";
|
if ($type_user == 0) $sql.= " AND m.user in (0,2)";
|
||||||
if ($type_user == 1) $sql.= " AND m.user in (1,2)";
|
if ($type_user == 1) $sql.= " AND m.user in (1,2)";
|
||||||
// If type_user == 2, no test requires
|
// If type_user == 2, no test requires
|
||||||
@ -372,15 +373,12 @@ class Menubase
|
|||||||
// Define $chaine
|
// Define $chaine
|
||||||
$chaine="";
|
$chaine="";
|
||||||
$title = $langs->trans($menu['titre']);
|
$title = $langs->trans($menu['titre']);
|
||||||
if (! eregi('\(dotnoloadlang\)$',$title))
|
if ($title == $menu['titre'] && ! empty($menu['langs']))
|
||||||
{
|
{
|
||||||
if (! empty($menu['langs'])) $langs->load($menu['langs']);
|
$title = $langs->trans($menu['titre']);
|
||||||
|
$langs->load($menu['langs']);
|
||||||
}
|
}
|
||||||
else
|
if (eregi("/",$title))
|
||||||
{
|
|
||||||
$title=eregi_replace('\(dotnoloadlang\)$','',$title);
|
|
||||||
}
|
|
||||||
if (eregi("/",$title))
|
|
||||||
{
|
{
|
||||||
$tab_titre = explode("/",$title);
|
$tab_titre = explode("/",$title);
|
||||||
$chaine = $langs->trans($tab_titre[0])."/".$langs->trans($tab_titre[1]);
|
$chaine = $langs->trans($tab_titre[0])."/".$langs->trans($tab_titre[1]);
|
||||||
@ -412,7 +410,6 @@ class Menubase
|
|||||||
$tabMenu[$b][1] = $menu['fk_menu'];
|
$tabMenu[$b][1] = $menu['fk_menu'];
|
||||||
$tabMenu[$b][2] = $menu['url'];
|
$tabMenu[$b][2] = $menu['url'];
|
||||||
$tabMenu[$b][3] = $chaine;
|
$tabMenu[$b][3] = $chaine;
|
||||||
// $tabMenu[$b][4] = $perms;
|
|
||||||
$tabMenu[$b][5] = $menu['target'];
|
$tabMenu[$b][5] = $menu['target'];
|
||||||
$tabMenu[$b][6] = $menu['leftmenu'];
|
$tabMenu[$b][6] = $menu['leftmenu'];
|
||||||
if (! isset($tabMenu[$b][4])) $tabMenu[$b][4] = $perms;
|
if (! isset($tabMenu[$b][4])) $tabMenu[$b][4] = $perms;
|
||||||
@ -429,24 +426,23 @@ class Menubase
|
|||||||
dolibarr_print_error($this->db);
|
dolibarr_print_error($this->db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Get menutopid
|
// Get menutopid
|
||||||
$sql = "SELECT m.rowid, m.titre, m.type";
|
$sql = "SELECT m.rowid, m.titre, m.type";
|
||||||
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
|
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
|
||||||
$sql.= " WHERE m.mainmenu = '".$mainmenu."'";
|
$sql.= " WHERE m.mainmenu = '".$mainmenu."'";
|
||||||
$sql.= " AND m.menu_handler= '".$this->menu_handler."'";
|
$sql.= " AND m.menu_handler in('".$menu_handler."','all')";
|
||||||
$sql.= " AND type = 'top'";
|
$sql.= " AND type = 'top'";
|
||||||
// It should have only one response
|
// It should have only one response
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
$menutop = $this->db->fetch_object($resql);
|
$menutop = $this->db->fetch_object($resql);
|
||||||
$menutopid=$menutop->rowid;
|
$menutopid=$menutop->rowid;
|
||||||
$this->db->free($resql);
|
$this->db->free($resql);
|
||||||
|
//print "menutopid=".$menutopid." sql=".$sql;
|
||||||
// Now edit this->newmenu to add entries in data that are in parent sons
|
|
||||||
|
// Now edit this->newmenu to add entries in tabMenu that are in parent sons
|
||||||
$this->recur($tabMenu, $menutopid, 1);
|
$this->recur($tabMenu, $menutopid, 1);
|
||||||
|
|
||||||
return $this->newmenu;
|
return $this->newmenu;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -470,7 +466,6 @@ class Menubase
|
|||||||
{
|
{
|
||||||
if ($tab[$x][7])
|
if ($tab[$x][7])
|
||||||
{
|
{
|
||||||
|
|
||||||
$leftmenuConstraint = true;
|
$leftmenuConstraint = true;
|
||||||
if ($tab[$x][6])
|
if ($tab[$x][6])
|
||||||
{
|
{
|
||||||
@ -479,6 +474,8 @@ class Menubase
|
|||||||
|
|
||||||
if ($leftmenuConstraint)
|
if ($leftmenuConstraint)
|
||||||
{
|
{
|
||||||
|
// print "x".$pere." ".$tab[$x][6];
|
||||||
|
|
||||||
$this->newmenu->add_submenu(DOL_URL_ROOT . $tab[$x][2], $tab[$x][3], $rang -1, $tab[$x][4], $tab[$x][5]);
|
$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->recur($tab, $tab[$x][0], $rang +1);
|
||||||
}
|
}
|
||||||
@ -487,53 +484,14 @@ class Menubase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if constraint defined by rowid is ok or not
|
* Verify if condition in string is ok or not
|
||||||
* \TODO Avoid call for each
|
*
|
||||||
*
|
* @param string $strRights
|
||||||
* @param unknown_type $rowid
|
* @return boolean true or false
|
||||||
* @param unknown_type $mainmenu
|
|
||||||
* @param unknown_type $leftmenu
|
|
||||||
* @return unknown
|
|
||||||
*/
|
*/
|
||||||
function verifConstraint($rowid, $mainmenu = "", $leftmenu = "")
|
function verifCond($strRights)
|
||||||
{
|
{
|
||||||
global $user, $conf, $lang;
|
|
||||||
global $constraint; // To export to dol_eval function
|
|
||||||
|
|
||||||
include_once(DOL_DOCUMENT_ROOT.'/lib/admin.lib.php'); // Because later some eval try to run dynamic call to dolibarr_get_const
|
|
||||||
$constraint = true;
|
|
||||||
|
|
||||||
$sql = "SELECT c.rowid, c.action";
|
|
||||||
$sql.= " FROM " . MAIN_DB_PREFIX . "menu_constraint as c, " . MAIN_DB_PREFIX . "menu_const as mc";
|
|
||||||
$sql.= " WHERE mc.fk_constraint = c.rowid AND mc.fk_menu = '" . $rowid . "'";
|
|
||||||
|
|
||||||
dolibarr_syslog("Menubase::verifConstraint sql=".$sql);
|
|
||||||
$result = $this->db->query($sql);
|
|
||||||
if ($result)
|
|
||||||
{
|
|
||||||
//echo $sql;
|
|
||||||
$num = $this->db->num_rows($result);
|
|
||||||
$i = 0;
|
|
||||||
while (($i < $num) && $constraint == true)
|
|
||||||
{
|
|
||||||
$obj = $this->db->fetch_object($result);
|
|
||||||
$strconstraint = 'if(!(' . $obj->action . ')) { $constraint = false; }';
|
|
||||||
dol_eval($strconstraint);
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dolibarr_print_error($this->db);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $constraint;
|
|
||||||
}
|
|
||||||
|
|
||||||
function verifCond($strRights) {
|
|
||||||
|
|
||||||
global $user,$conf,$lang;
|
global $user,$conf,$lang;
|
||||||
global $rights; // To export to dol_eval function
|
global $rights; // To export to dol_eval function
|
||||||
|
|
||||||
@ -560,7 +518,7 @@ class Menubase
|
|||||||
{
|
{
|
||||||
$sql = "SELECT DISTINCT m.mainmenu";
|
$sql = "SELECT DISTINCT m.mainmenu";
|
||||||
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
|
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
|
||||||
$sql.= " WHERE m.menu_handler= '".$this->menu_handler."'";
|
$sql.= " WHERE m.menu_handler in ('".$this->menu_handler."','all')";
|
||||||
|
|
||||||
$res = $this->db->query($sql);
|
$res = $this->db->query($sql);
|
||||||
if ($res) {
|
if ($res) {
|
||||||
@ -619,14 +577,11 @@ class Menubase
|
|||||||
|
|
||||||
// Define $chaine
|
// Define $chaine
|
||||||
$chaine="";
|
$chaine="";
|
||||||
$title=$objm->titre;
|
$title=$langs->trans($objm->titre);
|
||||||
if (! eregi('\(dotnoloadlang\)$',$title))
|
if ($title == $objm->titre && ! empty($menu['langs']))
|
||||||
{
|
{
|
||||||
if (! empty($objm->langs)) $langs->load($objm->langs);
|
$langs->load($menu['langs']);
|
||||||
}
|
$title=$langs->trans($objm->titre);
|
||||||
else
|
|
||||||
{
|
|
||||||
$title=eregi_replace('\(dotnoloadlang\)$','',$title);
|
|
||||||
}
|
}
|
||||||
if (eregi("/",$title))
|
if (eregi("/",$title))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -61,7 +61,6 @@ class MenuLeft {
|
|||||||
|
|
||||||
$this->menuArbo = new Menubase($this->db,'auguria','left');
|
$this->menuArbo = new Menubase($this->db,'auguria','left');
|
||||||
$this->overwritemenufor = $this->menuArbo->listeMainmenu();
|
$this->overwritemenufor = $this->menuArbo->listeMainmenu();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -105,25 +104,25 @@ class MenuLeft {
|
|||||||
$this->leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
|
$this->leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//this->menu_array contains menu in pre.inc.php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* On definit newmenu en fonction de mainmenu et leftmenu
|
* On definit newmenu en fonction de mainmenu et leftmenu
|
||||||
* ------------------------------------------------------
|
* ------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
if ($mainmenu)
|
if ($mainmenu)
|
||||||
{
|
{
|
||||||
|
$this->newmenu = $this->menuArbo->menuLeftCharger($this->newmenu,$mainmenu,$this->leftmenu,0,'auguria');
|
||||||
|
|
||||||
$this->newmenu = $this->menuArbo->menuLeftCharger($this->newmenu,$mainmenu,$this->leftmenu,0);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Menu AUTRES (Pour les menus du haut qui ne serait pas gérés)
|
* Menu AUTRES (Pour les menus du haut qui ne serait pas gérés)
|
||||||
*/
|
*/
|
||||||
|
if ($mainmenu && ! in_array($mainmenu,$this->overwritemenufor)) { $mainmenu=""; }
|
||||||
if ($mainmenu && ! in_array($mainmenu,$this->overwritemenufor)) { $mainmenu=""; }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//var_dump($this->newmenu->liste);
|
||||||
|
//var_dump($this->menu_array);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Si on est sur un cas géré de surcharge du menu, on ecrase celui par defaut
|
* Si on est sur un cas géré de surcharge du menu, on ecrase celui par defaut
|
||||||
@ -133,8 +132,7 @@ class MenuLeft {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Affichage du menu
|
// Affichage du menu
|
||||||
$alt=0;
|
$alt=0;
|
||||||
if (! sizeof($this->menu_array))
|
if (! sizeof($this->menu_array))
|
||||||
|
|||||||
@ -23,11 +23,11 @@
|
|||||||
\version $Id$
|
\version $Id$
|
||||||
|
|
||||||
\remarks La construction d'un gestionnaire pour le menu de gauche est simple:
|
\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<EFBFBD>thode add et add_submenu,
|
\remarks A l'aide d'un objet $newmenu=new Menu() et des méthode add et add_submenu,
|
||||||
\remarks d<EFBFBD>finir la liste des entr<EFBFBD>es menu <EFBFBD> faire apparaitre.
|
\remarks définir la liste des entrées menu à faire apparaitre.
|
||||||
\remarks En fin de code, mettre la ligne $menu=$newmenu->liste.
|
\remarks En fin de code, mettre la ligne $menu=$newmenu->liste.
|
||||||
\remarks Ce qui est d<EFBFBD>fini dans un tel gestionnaire sera alors prioritaire sur
|
\remarks Ce qui est défini dans un tel gestionnaire sera alors prioritaire sur
|
||||||
\remarks les d<EFBFBD>finitions de menu des fichiers pre.inc.php
|
\remarks les définitions de menu des fichiers pre.inc.php
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
class MenuLeft {
|
class MenuLeft {
|
||||||
|
|
||||||
var $require_top=array("auguria_backoffice"); // Si doit etre en phase avec un gestionnaire de menu du haut particulier
|
var $require_top=array("auguria_frontoffice"); // Si doit etre en phase avec un gestionnaire de menu du haut particulier
|
||||||
var $newmenu;
|
var $newmenu;
|
||||||
var $menuArbo;
|
var $menuArbo;
|
||||||
|
|
||||||
@ -111,15 +111,12 @@ class MenuLeft {
|
|||||||
*/
|
*/
|
||||||
if ($mainmenu)
|
if ($mainmenu)
|
||||||
{
|
{
|
||||||
|
$this->newmenu = $this->menuArbo->menuLeftCharger($this->newmenu,$mainmenu,$this->leftmenu,1,'auguria');
|
||||||
$this->newmenu = $this->menuArbo->menuLeftCharger($this->newmenu,$mainmenu,$this->leftmenu,1);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Menu AUTRES (Pour les menus du haut qui ne serait pas g<EFBFBD>r<EFBFBD>s)
|
* Menu AUTRES (Pour les menus du haut qui ne serait pas g<EFBFBD>r<EFBFBD>s)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($mainmenu && ! in_array($mainmenu,$this->overwritemenufor)) { $mainmenu=""; }
|
if ($mainmenu && ! in_array($mainmenu,$this->overwritemenufor)) { $mainmenu=""; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -207,88 +204,8 @@ class MenuLeft {
|
|||||||
|
|
||||||
}
|
}
|
||||||
if ($contenu == 1) print '<div class="menu_fin"></div>';
|
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 <20>l<EFBFBD>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<EFBFBD>mentation du d<EFBFBD>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($result);
|
|
||||||
$i = 0;
|
|
||||||
while (($i < $num) && $constraint == true)
|
|
||||||
{
|
|
||||||
|
|
||||||
$obj = $this->db->fetch_object($result);
|
|
||||||
$strconstraint = "if(!(".$obj->action.")) { \$constraint = false;}";
|
|
||||||
|
|
||||||
eval($strconstraint);
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $constraint;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -100,7 +100,7 @@ class MenuLeft {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$newmenu = new Menu();
|
$newmenu = new Menu();
|
||||||
$overwritemenufor=array('home','companies','members','products','suppliers','commercial','accountancy','agenda','project','tools');
|
$overwritemenufor=array('home','companies','members','products','suppliers','commercial','accountancy','agenda','project','tools','ecm');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* On definit newmenu en fonction de mainmenu et leftmenu
|
* On definit newmenu en fonction de mainmenu et leftmenu
|
||||||
@ -866,6 +866,13 @@ class MenuLeft {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Affichage des menus personnalises
|
||||||
|
require_once(DOL_DOCUMENT_ROOT."/core/menubase.class.php");
|
||||||
|
|
||||||
|
$menuArbo = new Menubase($this->db,'eldy','left');
|
||||||
|
$newmenu = $menuArbo->menuLeftCharger($newmenu,$mainmenu,$leftmenu,0,'eldy');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Menu AUTRES (Pour les menus du haut qui ne serait pas gérés)
|
* Menu AUTRES (Pour les menus du haut qui ne serait pas gérés)
|
||||||
*/
|
*/
|
||||||
@ -874,7 +881,6 @@ class MenuLeft {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Si on est sur un cas géré de surcharge du menu, on ecrase celui par defaut
|
* Si on est sur un cas géré de surcharge du menu, on ecrase celui par defaut
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -99,7 +99,7 @@ class MenuLeft {
|
|||||||
|
|
||||||
|
|
||||||
$newmenu = new Menu();
|
$newmenu = new Menu();
|
||||||
$overwritemenufor=array('home','companies','members','products','suppliers','commercial','accountancy','agenda','project','tools');
|
$overwritemenufor=array('home','companies','members','products','suppliers','commercial','accountancy','agenda','project','tools','ecm');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* On definit newmenu en fonction de mainmenu et leftmenu
|
* On definit newmenu en fonction de mainmenu et leftmenu
|
||||||
|
|||||||
@ -14,14 +14,12 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file htdocs/includes/menus/barre_left/empty.php
|
\file htdocs/includes/menus/barre_left/empty.php
|
||||||
\brief This is an example of an empty left menu handler
|
\brief This is an example of an empty left menu handler
|
||||||
\version $Revision$
|
\version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@ -739,9 +739,14 @@ class DolibarrModules
|
|||||||
$menu = new Menubase($this->db);
|
$menu = new Menubase($this->db);
|
||||||
$menu->menu_handler='all';
|
$menu->menu_handler='all';
|
||||||
$menu->module=$this->rights_class;
|
$menu->module=$this->rights_class;
|
||||||
if ($this->menu[$key]['fk_menu'])
|
if (! $this->menu[$key]['fk_menu'])
|
||||||
|
{
|
||||||
|
$menu->fk_menu=0;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
$numparent=$this->menu[$key]['fk_menu'];
|
$numparent=$this->menu[$key]['fk_menu'];
|
||||||
|
$numparent=eregi_replace('r=','',$numparent);
|
||||||
if (isset($this->menu[$numparent]['rowid']))
|
if (isset($this->menu[$numparent]['rowid']))
|
||||||
{
|
{
|
||||||
$menu->fk_menu=$this->menu[$numparent]['rowid'];
|
$menu->fk_menu=$this->menu[$numparent]['rowid'];
|
||||||
@ -752,10 +757,6 @@ class DolibarrModules
|
|||||||
$err++;
|
$err++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
$menu->fk_menu=0;
|
|
||||||
}
|
|
||||||
$menu->type=$this->menu[$key]['type'];
|
$menu->type=$this->menu[$key]['type'];
|
||||||
$menu->mainmenu=$this->menu[$key]['mainmenu'];
|
$menu->mainmenu=$this->menu[$key]['mainmenu'];
|
||||||
$menu->titre=$this->menu[$key]['titre'];
|
$menu->titre=$this->menu[$key]['titre'];
|
||||||
|
|||||||
@ -123,7 +123,7 @@ class modECM extends DolibarrModules
|
|||||||
|
|
||||||
$this->menu[$r]=array('fk_menu'=>0,
|
$this->menu[$r]=array('fk_menu'=>0,
|
||||||
'type'=>'top',
|
'type'=>'top',
|
||||||
'titre'=>'MenuECM(dotnoloadlang)',
|
'titre'=>'MenuECM',
|
||||||
'mainmenu'=>'ecm',
|
'mainmenu'=>'ecm',
|
||||||
'leftmenu'=>'',
|
'leftmenu'=>'',
|
||||||
'url'=>'/ecm/index.php',
|
'url'=>'/ecm/index.php',
|
||||||
@ -133,6 +133,45 @@ class modECM extends DolibarrModules
|
|||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>0);
|
'user'=>0);
|
||||||
$r++;
|
$r++;
|
||||||
|
|
||||||
|
$this->menu[$r]=array('fk_menu'=>'r=0',
|
||||||
|
'type'=>'left',
|
||||||
|
'titre'=>'MenuECM',
|
||||||
|
'mainmenu'=>'ecm',
|
||||||
|
'leftmenu'=>'',
|
||||||
|
'url'=>'/ecm/index.php',
|
||||||
|
'langs'=>'ecm',
|
||||||
|
'position'=>100,
|
||||||
|
'perms'=>'$user->rights->ecm->read',
|
||||||
|
'target'=>'',
|
||||||
|
'user'=>0);
|
||||||
|
$r++;
|
||||||
|
|
||||||
|
$this->menu[$r]=array('fk_menu'=>'r=1',
|
||||||
|
'type'=>'left',
|
||||||
|
'titre'=>'List',
|
||||||
|
'mainmenu'=>'ecm',
|
||||||
|
'leftmenu'=>'',
|
||||||
|
'url'=>'/ecm/index.php',
|
||||||
|
'langs'=>'ecm',
|
||||||
|
'position'=>100,
|
||||||
|
'perms'=>'$user->rights->ecm->read',
|
||||||
|
'target'=>'',
|
||||||
|
'user'=>0);
|
||||||
|
$r++;
|
||||||
|
|
||||||
|
$this->menu[$r]=array('fk_menu'=>'r=1',
|
||||||
|
'type'=>'left',
|
||||||
|
'titre'=>'ECMNewSection',
|
||||||
|
'mainmenu'=>'ecm',
|
||||||
|
'leftmenu'=>'',
|
||||||
|
'url'=>'/ecm/docdir.php?action=create',
|
||||||
|
'langs'=>'ecm',
|
||||||
|
'position'=>100,
|
||||||
|
'perms'=>'$user->rights->ecm->setup',
|
||||||
|
'target'=>'',
|
||||||
|
'user'=>0);
|
||||||
|
$r++;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -419,7 +419,9 @@ TotalMan=Total
|
|||||||
YouCanChangeValuesForThisListFromDictionnarySetup=You can change values for this list from menu setup - dictionnary
|
YouCanChangeValuesForThisListFromDictionnarySetup=You can change values for this list from menu setup - dictionnary
|
||||||
Color=Color
|
Color=Color
|
||||||
MenuECM=Documents
|
MenuECM=Documents
|
||||||
|
MenuAWStats=AWStats
|
||||||
MenuMembers=Members
|
MenuMembers=Members
|
||||||
|
MenuAgendaGoogle=Google agenda
|
||||||
# Week day
|
# Week day
|
||||||
Monday=Monday
|
Monday=Monday
|
||||||
Tuesday=Tuesday
|
Tuesday=Tuesday
|
||||||
|
|||||||
@ -1,435 +1,437 @@
|
|||||||
# Dolibarr language file - es_ES - main
|
# Dolibarr language file - es_ES - main
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CHARSET=ISO-8859-1
|
CHARSET=ISO-8859-1
|
||||||
DatabaseConnection=Conexión a la base de datos
|
DatabaseConnection=Conexión a la base de datos
|
||||||
SeparatorDecimal=,
|
SeparatorDecimal=,
|
||||||
SeparatorThousand=
|
SeparatorThousand=
|
||||||
Error=Error
|
Error=Error
|
||||||
ErrorFieldRequired=El campo '%s' es obligatorio
|
ErrorFieldRequired=El campo '%s' es obligatorio
|
||||||
ErrorFieldFormat=El campo '%s' tiene un valor incorrecto
|
ErrorFieldFormat=El campo '%s' tiene un valor incorrecto
|
||||||
ErrorFileDoesNotExists=El archivo %s no existe
|
ErrorFileDoesNotExists=El archivo %s no existe
|
||||||
ErrorFailedToOpenFile=Imposible abrir el fichero %s
|
ErrorFailedToOpenFile=Imposible abrir el fichero %s
|
||||||
ErrorCanNotCreateDir=Imposible crear la carpeta %s
|
ErrorCanNotCreateDir=Imposible crear la carpeta %s
|
||||||
ErrorCanNotReadDir=Imposible leer la carpeta %s
|
ErrorCanNotReadDir=Imposible leer la carpeta %s
|
||||||
ErrorConstantNotDefined=Parámetro %s no definido
|
ErrorConstantNotDefined=Parámetro %s no definido
|
||||||
ErrorUnknown=Error desconocido
|
ErrorUnknown=Error desconocido
|
||||||
ErrorSQL=Error de SQL
|
ErrorSQL=Error de SQL
|
||||||
ErrorLogoFileNotFound=El archivo logo '%s' no se encuentra
|
ErrorLogoFileNotFound=El archivo logo '%s' no se encuentra
|
||||||
ErrorGoToGlobalSetup=Vaya a la Configuración ' Empresa/Institución ' para corregir
|
ErrorGoToGlobalSetup=Vaya a la Configuración ' Empresa/Institución ' para corregir
|
||||||
ErrorGoToModuleSetup=Vaya a la configuración del módulo para corregir
|
ErrorGoToModuleSetup=Vaya a la configuración del módulo para corregir
|
||||||
ErrorFailedToSendMail=Error en el envío del e-mail (emisor=%s, destinatairo=%s)
|
ErrorFailedToSendMail=Error en el envío del e-mail (emisor=%s, destinatairo=%s)
|
||||||
ErrorAttachedFilesDisabled=La gestión de los ficheros asociados está desactivada en este servidor
|
ErrorAttachedFilesDisabled=La gestión de los ficheros asociados está desactivada en este servidor
|
||||||
ErrorFileNotUploaded=El archivo no se ha podido transferir
|
ErrorFileNotUploaded=El archivo no se ha podido transferir
|
||||||
ErrorInternalErrorDetected=Error detectado
|
ErrorInternalErrorDetected=Error detectado
|
||||||
ErrorNoRequestRan=Ninguna petición realizada
|
ErrorNoRequestRan=Ninguna petición realizada
|
||||||
ErrorWrongHostParameter=Pparámetro Servidor inválido
|
ErrorWrongHostParameter=Pparámetro Servidor inválido
|
||||||
ErrorYourCountryIsNotDefined=Su país no está definido. Corrígalo yendo a Configuración-General-Editar
|
ErrorYourCountryIsNotDefined=Su país no está definido. Corrígalo yendo a Configuración-General-Editar
|
||||||
ErrorRecordIsUsedByChild=Imposible de suprimir este registro. Esta siendo utilizado como padre por al menos un registro hijo.
|
ErrorRecordIsUsedByChild=Imposible de suprimir este registro. Esta siendo utilizado como padre por al menos un registro hijo.
|
||||||
ErrorWrongValue=Valor incorrecto
|
ErrorWrongValue=Valor incorrecto
|
||||||
ErrorWrongValueForParameterX=Valor incorrecto del parámetro %s
|
ErrorWrongValueForParameterX=Valor incorrecto del parámetro %s
|
||||||
ErrorNoRequestInError=Ninguna petición en error
|
ErrorNoRequestInError=Ninguna petición en error
|
||||||
ErrorServiceUnavailableTryLater=Servicio no disponible actualmente. Vuélvalo a intentar más tarde.
|
ErrorServiceUnavailableTryLater=Servicio no disponible actualmente. Vuélvalo a intentar más tarde.
|
||||||
ErrorDuplicateField=Duplicado en un campo único
|
ErrorDuplicateField=Duplicado en un campo único
|
||||||
ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Modificaciones deshechas.
|
ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Modificaciones deshechas.
|
||||||
ErrorConfigParameterNotDefined=El parámetro <b>%s</b> no está definido en el fichero de configuración Dolibarr <b>conf.php</b>.
|
ErrorConfigParameterNotDefined=El parámetro <b>%s</b> no está definido en el fichero de configuración Dolibarr <b>conf.php</b>.
|
||||||
ErrorCantLoadUserFromDolibarrDatabase=Imposible encontrar el usuario <b>%s</b> en la base de datos Dolibarr.
|
ErrorCantLoadUserFromDolibarrDatabase=Imposible encontrar el usuario <b>%s</b> en la base de datos Dolibarr.
|
||||||
ErrorNoVATRateDefinedForSellerCountry=Error, ningún tipo de IVA definido para el país '%s'.
|
ErrorNoVATRateDefinedForSellerCountry=Error, ningún tipo de IVA definido para el país '%s'.
|
||||||
ErrorFailedToSaveFile=Error, el registro del archivo falló.
|
ErrorFailedToSaveFile=Error, el registro del archivo falló.
|
||||||
ErrorOnlyPngJpgSupported=Error, solamente se soportan los formatos de imagen jpg y png.
|
ErrorOnlyPngJpgSupported=Error, solamente se soportan los formatos de imagen jpg y png.
|
||||||
ErrorImageFormatNotSupported=Su PHP no soporta las funciones de conversión de este formato de imagen.
|
ErrorImageFormatNotSupported=Su PHP no soporta las funciones de conversión de este formato de imagen.
|
||||||
DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr está configurado en modo de autentificación <b>%s</b> en el fichero de configuración <b>conf.php</b>.<br> Eso significa que la base de datos de las contraseñas es externa a Dolibarr, por eso toda modificación de este campo puede resultar sin efecto alguno.
|
DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr está configurado en modo de autentificación <b>%s</b> en el fichero de configuración <b>conf.php</b>.<br> Eso significa que la base de datos de las contraseñas es externa a Dolibarr, por eso toda modificación de este campo puede resultar sin efecto alguno.
|
||||||
Administrator=Administrador
|
Administrator=Administrador
|
||||||
Undefined=No definido
|
Undefined=No definido
|
||||||
PasswordForgotten=¿Olvidó su contraseña?
|
PasswordForgotten=¿Olvidó su contraseña?
|
||||||
SeeAbove=Mencionar anteriormente
|
SeeAbove=Mencionar anteriormente
|
||||||
HomeArea=Area inicio
|
HomeArea=Area inicio
|
||||||
LastConnexion=Última conexión
|
LastConnexion=Última conexión
|
||||||
PreviousConnexion=Conexión anterior
|
PreviousConnexion=Conexión anterior
|
||||||
ConnectedSince=Conectado desde
|
ConnectedSince=Conectado desde
|
||||||
AuthenticationMode=Modo autentificación
|
AuthenticationMode=Modo autentificación
|
||||||
RequestedUrl=Url solicitada
|
RequestedUrl=Url solicitada
|
||||||
DatabaseTypeManager=Tipo de gestor de base de datos
|
DatabaseTypeManager=Tipo de gestor de base de datos
|
||||||
RequestLastAccess=Petición último acceso a la base de datos
|
RequestLastAccess=Petición último acceso a la base de datos
|
||||||
RequestLastAccessInError=Petición último acceso a la base de datos erroneo
|
RequestLastAccessInError=Petición último acceso a la base de datos erroneo
|
||||||
ReturnCodeLastAccess=Código devuelto último acceso a la base de datos
|
ReturnCodeLastAccess=Código devuelto último acceso a la base de datos
|
||||||
InformationLastAccess=Información sobre el último acceso a la base de datos
|
InformationLastAccess=Información sobre el último acceso a la base de datos
|
||||||
DolibarrHasDetectedError=Dolibarr ha detectado un error técnico
|
DolibarrHasDetectedError=Dolibarr ha detectado un error técnico
|
||||||
InformationToHelpDiagnose=He aquí la información que podrá ayudar al diagnóstico
|
InformationToHelpDiagnose=He aquí la información que podrá ayudar al diagnóstico
|
||||||
MoreInformation=Más información
|
MoreInformation=Más información
|
||||||
NotePublic=Nota (pública)
|
NotePublic=Nota (pública)
|
||||||
NotePrivate=Nota (privada)
|
NotePrivate=Nota (privada)
|
||||||
PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar la precisión de los precios unitarios a <b>%s</b> decimales.
|
PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar la precisión de los precios unitarios a <b>%s</b> decimales.
|
||||||
DoTest=Probar
|
DoTest=Probar
|
||||||
yes=sí
|
yes=sí
|
||||||
Yes=Sí
|
Yes=Sí
|
||||||
no=no
|
no=no
|
||||||
No=no
|
No=no
|
||||||
All=Todo
|
All=Todo
|
||||||
Home=Inicio
|
Home=Inicio
|
||||||
Help=Ayuda
|
Help=Ayuda
|
||||||
Always=Siempre
|
Always=Siempre
|
||||||
Never=Nunca
|
Never=Nunca
|
||||||
Period=Periodo
|
Period=Periodo
|
||||||
Activate=Activar
|
Activate=Activar
|
||||||
Activated=Activado
|
Activated=Activado
|
||||||
Closed=Cerrado
|
Closed=Cerrado
|
||||||
Closed2=Cerrado
|
Closed2=Cerrado
|
||||||
Disable=Desactivar
|
Disable=Desactivar
|
||||||
Disabled=Desactivado
|
Disabled=Desactivado
|
||||||
Create=Crear
|
Create=Crear
|
||||||
Add=Añadir
|
Add=Añadir
|
||||||
Update=Modificar
|
Update=Modificar
|
||||||
AddActionToDo=Añadir acción a realizar
|
AddActionToDo=Añadir acción a realizar
|
||||||
AddActionDone=Añadir acción realizada
|
AddActionDone=Añadir acción realizada
|
||||||
Close=Cerrar
|
Close=Cerrar
|
||||||
Close2=Cerrar
|
Close2=Cerrar
|
||||||
Confirm=Confirmar
|
Confirm=Confirmar
|
||||||
ConfirmSendCardByMail=¿Quiere enviar esta ficha por e-mail?
|
ConfirmSendCardByMail=¿Quiere enviar esta ficha por e-mail?
|
||||||
Delete=Eliminar
|
Delete=Eliminar
|
||||||
Remove=Retirar
|
Remove=Retirar
|
||||||
Resiliate=Cancelar
|
Resiliate=Cancelar
|
||||||
Cancel=Anular
|
Cancel=Anular
|
||||||
Modify=Modificar
|
Modify=Modificar
|
||||||
Edit=Editar
|
Edit=Editar
|
||||||
Validate=Validar
|
Validate=Validar
|
||||||
ToValidate=A validar
|
ToValidate=A validar
|
||||||
Save=Grabar
|
Save=Grabar
|
||||||
SaveAs=Grabar como
|
SaveAs=Grabar como
|
||||||
TestConnection=Probar la conexión
|
TestConnection=Probar la conexión
|
||||||
Show=Ver
|
Show=Ver
|
||||||
Search=Buscar
|
Search=Buscar
|
||||||
Valid=Validar
|
Valid=Validar
|
||||||
Approve=Aprobar
|
Approve=Aprobar
|
||||||
Upload=Enviar archivo
|
Upload=Enviar archivo
|
||||||
Select=Seleccionar
|
Select=Seleccionar
|
||||||
Choose=Elegir
|
Choose=Elegir
|
||||||
ChooseLangage=Elegir su idioma
|
ChooseLangage=Elegir su idioma
|
||||||
Author=Autor
|
Author=Autor
|
||||||
User=Usuario
|
User=Usuario
|
||||||
Users=Usuarios
|
Users=Usuarios
|
||||||
Group=Grupo
|
Group=Grupo
|
||||||
Groups=Grupos
|
Groups=Grupos
|
||||||
Password=Contraseña
|
Password=Contraseña
|
||||||
PasswordRetype=Repetir contraseña
|
PasswordRetype=Repetir contraseña
|
||||||
Name=Nombre
|
Name=Nombre
|
||||||
Parameter=Parámetro
|
Parameter=Parámetro
|
||||||
Parameters=Parámetros
|
Parameters=Parámetros
|
||||||
Value=Valor
|
Value=Valor
|
||||||
GlobalValue=Valor global
|
GlobalValue=Valor global
|
||||||
PersonalValue=Valor personalizado
|
PersonalValue=Valor personalizado
|
||||||
NewValue=Nuevo valor
|
NewValue=Nuevo valor
|
||||||
CurrentValue=Valor actual
|
CurrentValue=Valor actual
|
||||||
Code=Código
|
Code=Código
|
||||||
Type=Tipo
|
Type=Tipo
|
||||||
Language=Idioma
|
Language=Idioma
|
||||||
MultiLanguage=Multiidioma
|
MultiLanguage=Multiidioma
|
||||||
Note=Nota
|
Note=Nota
|
||||||
CurrentNote=Nota actual
|
CurrentNote=Nota actual
|
||||||
Title=Título
|
Title=Título
|
||||||
Label=Etiqueta
|
Label=Etiqueta
|
||||||
RefOrLabel=Ref. o etiqueta
|
RefOrLabel=Ref. o etiqueta
|
||||||
Info=Log
|
Info=Log
|
||||||
Family=Familia
|
Family=Familia
|
||||||
Description=Descripción
|
Description=Descripción
|
||||||
Designation=Designación
|
Designation=Designación
|
||||||
Action=Acción
|
Action=Acción
|
||||||
Model=Modelo
|
Model=Modelo
|
||||||
DefaultModel=Modelo por defecto
|
DefaultModel=Modelo por defecto
|
||||||
About=Acerca de
|
About=Acerca de
|
||||||
WelcomeString=<font class="body">Somos</font> %s<font class="body">, y se conecta como</font> %s
|
WelcomeString=<font class="body">Somos</font> %s<font class="body">, y se conecta como</font> %s
|
||||||
Number=Número
|
Number=Número
|
||||||
Numero=Número
|
Numero=Número
|
||||||
Limit=Límite
|
Limit=Límite
|
||||||
Limits=Límites
|
Limits=Límites
|
||||||
DevelopmentTeam=Equipo de desarrollo
|
DevelopmentTeam=Equipo de desarrollo
|
||||||
Logout=Desconexión
|
Logout=Desconexión
|
||||||
Connection=Conexión
|
Connection=Conexión
|
||||||
Setup=Configuración
|
Setup=Configuración
|
||||||
Alert=Alerta
|
Alert=Alerta
|
||||||
Previous=Anterior
|
Previous=Anterior
|
||||||
Next=Siguiente
|
Next=Siguiente
|
||||||
Cards=Fichas
|
Cards=Fichas
|
||||||
Card=Ficha
|
Card=Ficha
|
||||||
Date=Fecha
|
Date=Fecha
|
||||||
DateEnd=Fecha fin
|
DateEnd=Fecha fin
|
||||||
DateCreation=Fecha creación
|
DateCreation=Fecha creación
|
||||||
DateModification=Fecha modificación
|
DateModification=Fecha modificación
|
||||||
DateLastModification=Fecha última modificación
|
DateLastModification=Fecha última modificación
|
||||||
DateValidation=Fecha validación
|
DateValidation=Fecha validación
|
||||||
DateClosing=Fecha cierre
|
DateClosing=Fecha cierre
|
||||||
DateDue=Fecha vencimiento
|
DateDue=Fecha vencimiento
|
||||||
DateValue=Fecha valor
|
DateValue=Fecha valor
|
||||||
DateValueShort=Fecha valor
|
DateValueShort=Fecha valor
|
||||||
DateOperation=Fecha operación
|
DateOperation=Fecha operación
|
||||||
DateOperationShort=Fecha op.
|
DateOperationShort=Fecha op.
|
||||||
DateLimit=Fecha límite
|
DateLimit=Fecha límite
|
||||||
DateRequest=Fecha consulta
|
DateRequest=Fecha consulta
|
||||||
DateProcess=Fecha proceso
|
DateProcess=Fecha proceso
|
||||||
DatePlanShort=Fecha planif.
|
DatePlanShort=Fecha planif.
|
||||||
DateRealShort=Fecha real
|
DateRealShort=Fecha real
|
||||||
DurationYear=año
|
DurationYear=año
|
||||||
DurationMonth=mes
|
DurationMonth=mes
|
||||||
DurationDay=día
|
DurationDay=día
|
||||||
DurationYears=años
|
DurationYears=años
|
||||||
DurationMonths=meses
|
DurationMonths=meses
|
||||||
DurationDays=días
|
DurationDays=días
|
||||||
Year=Año
|
Year=Año
|
||||||
Month=Mes
|
Month=Mes
|
||||||
Week=Semana
|
Week=Semana
|
||||||
Day=Día
|
Day=Día
|
||||||
Hour=Hora
|
Hour=Hora
|
||||||
Minute=Minuto
|
Minute=Minuto
|
||||||
Second=Segundo
|
Second=Segundo
|
||||||
Years=Años
|
Years=Años
|
||||||
Months=Meses
|
Months=Meses
|
||||||
Days=Días
|
Days=Días
|
||||||
days=días
|
days=días
|
||||||
Hours=Horas
|
Hours=Horas
|
||||||
Minutes=Minutos
|
Minutes=Minutos
|
||||||
Seconds=Segundos
|
Seconds=Segundos
|
||||||
Today=Hoy
|
Today=Hoy
|
||||||
Yesterday=Ayer
|
Yesterday=Ayer
|
||||||
Tomorrow=Mañana
|
Tomorrow=Mañana
|
||||||
Quadri=Trimistre
|
Quadri=Trimistre
|
||||||
MonthOfDay=Mes del día
|
MonthOfDay=Mes del día
|
||||||
HourShort=H
|
HourShort=H
|
||||||
Rate=Tipo
|
Rate=Tipo
|
||||||
Bytes=Octetos
|
Bytes=Octetos
|
||||||
Cut=Cortar
|
Cut=Cortar
|
||||||
Copy=Copiar
|
Copy=Copiar
|
||||||
Paste=Pegar
|
Paste=Pegar
|
||||||
Default=Defecto
|
Default=Defecto
|
||||||
DefaultValue=Valor por defecto
|
DefaultValue=Valor por defecto
|
||||||
DefaultGlobalValue=Valor global
|
DefaultGlobalValue=Valor global
|
||||||
Price=Precio
|
Price=Precio
|
||||||
UnitPrice=Precio unitario
|
UnitPrice=Precio unitario
|
||||||
UnitPriceHT=Precio base
|
UnitPriceHT=Precio base
|
||||||
UnitPriceTTC=Precio unitario total
|
UnitPriceTTC=Precio unitario total
|
||||||
PriceU=P.U.
|
PriceU=P.U.
|
||||||
PriceUHT=P.U.
|
PriceUHT=P.U.
|
||||||
PriceUTTC=P.U. Total
|
PriceUTTC=P.U. Total
|
||||||
Amount=Importe
|
Amount=Importe
|
||||||
AmountInvoice=Importe factura
|
AmountInvoice=Importe factura
|
||||||
AmountPayment=Importe pago
|
AmountPayment=Importe pago
|
||||||
AmountHT=Importe base
|
AmountHT=Importe base
|
||||||
AmountTTC=Importe
|
AmountTTC=Importe
|
||||||
AmountVAT=Importe IVA
|
AmountVAT=Importe IVA
|
||||||
AmountTotal=Importe total
|
AmountTotal=Importe total
|
||||||
AmountAverage=Importe medio
|
AmountAverage=Importe medio
|
||||||
Percentage=Porcentaje
|
Percentage=Porcentaje
|
||||||
Total=Total
|
Total=Total
|
||||||
SubTotal=Subtotal
|
SubTotal=Subtotal
|
||||||
TotalHT=Importe
|
TotalHT=Importe
|
||||||
TotalTTC=Totat
|
TotalTTC=Totat
|
||||||
TotalVAT=Total IVA
|
TotalVAT=Total IVA
|
||||||
TotalHTAfterDiscounts=Importe con descuentos
|
TotalHTAfterDiscounts=Importe con descuentos
|
||||||
TotalTTCAfterDiscounts=Total con descuentos
|
TotalTTCAfterDiscounts=Total con descuentos
|
||||||
IncludedVAT=IVA incluido
|
IncludedVAT=IVA incluido
|
||||||
TTC=Total
|
TTC=Total
|
||||||
HT=Importe
|
HT=Importe
|
||||||
VAT=IVA
|
VAT=IVA
|
||||||
Average=Media
|
Average=Media
|
||||||
Sum=Suma
|
Sum=Suma
|
||||||
Delta=Divergencia
|
Delta=Divergencia
|
||||||
Module=Modulo
|
Module=Modulo
|
||||||
Option=Opción
|
Option=Opción
|
||||||
List=Listado
|
List=Listado
|
||||||
FullList=Listado completa
|
FullList=Listado completa
|
||||||
Statistics=Estadísticas
|
Statistics=Estadísticas
|
||||||
Status=Estado
|
Status=Estado
|
||||||
Ref=Ref.
|
Ref=Ref.
|
||||||
CommercialProposals=Presupuestos
|
CommercialProposals=Presupuestos
|
||||||
Comment=Comentario
|
Comment=Comentario
|
||||||
Comments=Comentarios
|
Comments=Comentarios
|
||||||
ActionsToDo=Acciones a realizar
|
ActionsToDo=Acciones a realizar
|
||||||
ActionsDone=Acciones realizadas
|
ActionsDone=Acciones realizadas
|
||||||
ActionsToDoShort=A realizar
|
ActionsToDoShort=A realizar
|
||||||
ActionsDoneShort=Realizadas
|
ActionsDoneShort=Realizadas
|
||||||
CompanyFundation=Empresa o institución
|
CompanyFundation=Empresa o institución
|
||||||
ContactsForCompany=Contactos de esta empresa
|
ContactsForCompany=Contactos de esta empresa
|
||||||
ActionsOnCompany=Acciones frente a esta sociedad
|
ActionsOnCompany=Acciones frente a esta sociedad
|
||||||
NActions=%s acciones
|
NActions=%s acciones
|
||||||
NActionsLate=%s en retraso
|
NActionsLate=%s en retraso
|
||||||
Filter=Filtro
|
Filter=Filtro
|
||||||
RemoveFilter=Eliminar filtro
|
RemoveFilter=Eliminar filtro
|
||||||
ChartGenerated=Gráficos generados
|
ChartGenerated=Gráficos generados
|
||||||
ChartNotGenerated=Gráfico no generado
|
ChartNotGenerated=Gráfico no generado
|
||||||
GeneratedOn=Generado el %s
|
GeneratedOn=Generado el %s
|
||||||
Generate=Generar
|
Generate=Generar
|
||||||
Duration=Duración
|
Duration=Duración
|
||||||
TotalDuration=Duración total
|
TotalDuration=Duración total
|
||||||
Summary=Resumen
|
Summary=Resumen
|
||||||
MyBookmarks=Mis bookmarks
|
MyBookmarks=Mis bookmarks
|
||||||
OtherInformationsBoxes=Otras cajas de información
|
OtherInformationsBoxes=Otras cajas de información
|
||||||
DolibarrBoard=Indicadores
|
DolibarrBoard=Indicadores
|
||||||
DolibarrStateBoard=Estadísticas
|
DolibarrStateBoard=Estadísticas
|
||||||
DolibarrWorkBoard=Indicadores de trabajo
|
DolibarrWorkBoard=Indicadores de trabajo
|
||||||
NotYetAvailable=Aún no disponible
|
NotYetAvailable=Aún no disponible
|
||||||
NotAvailable=No disponible
|
NotAvailable=No disponible
|
||||||
Popularity=Popularidad
|
Popularity=Popularidad
|
||||||
Categories=Categorías
|
Categories=Categorías
|
||||||
Category=Categorúia
|
Category=Categorúia
|
||||||
By=Por
|
By=Por
|
||||||
From=De
|
From=De
|
||||||
to=a
|
to=a
|
||||||
To=A
|
To=A
|
||||||
and=y
|
and=y
|
||||||
or=o
|
or=o
|
||||||
Other=Otro
|
Other=Otro
|
||||||
Quantity=Cantidad
|
Quantity=Cantidad
|
||||||
Qty=Cant.
|
Qty=Cant.
|
||||||
ChangedBy=Modificado por
|
ChangedBy=Modificado por
|
||||||
ReCalculate=Recalcular
|
ReCalculate=Recalcular
|
||||||
ResultOk=Éxito
|
ResultOk=Éxito
|
||||||
ResultKo=Error
|
ResultKo=Error
|
||||||
Reporting=Informe
|
Reporting=Informe
|
||||||
Reportings=Informes
|
Reportings=Informes
|
||||||
Draft=Borrador
|
Draft=Borrador
|
||||||
Drafts=Borradores
|
Drafts=Borradores
|
||||||
Validated=Validado
|
Validated=Validado
|
||||||
Opened=Abierto
|
Opened=Abierto
|
||||||
New=Nuevo
|
New=Nuevo
|
||||||
Discount=Descuento
|
Discount=Descuento
|
||||||
Unknown=Desconocido
|
Unknown=Desconocido
|
||||||
General=General
|
General=General
|
||||||
Size=Tamaño
|
Size=Tamaño
|
||||||
Received=Recibido
|
Received=Recibido
|
||||||
Payed=Pagado
|
Payed=Pagado
|
||||||
Topic=Asunto
|
Topic=Asunto
|
||||||
ByCompanies=Por empresa
|
ByCompanies=Por empresa
|
||||||
ByUsers=Por usuario
|
ByUsers=Por usuario
|
||||||
Links=Links
|
Links=Links
|
||||||
Link=Link
|
Link=Link
|
||||||
Receipts=Recibos
|
Receipts=Recibos
|
||||||
Rejects=Rechazado
|
Rejects=Rechazado
|
||||||
Preview=Vista previa
|
Preview=Vista previa
|
||||||
NextStep=Siguiente paso
|
NextStep=Siguiente paso
|
||||||
PreviousStep=Paso anterior
|
PreviousStep=Paso anterior
|
||||||
Datas=Datos
|
Datas=Datos
|
||||||
None=Nada
|
None=Nada
|
||||||
Late=Retraso
|
Late=Retraso
|
||||||
Photo=Foto
|
Photo=Foto
|
||||||
Photos=Fotos
|
Photos=Fotos
|
||||||
AddPhoto=Añadir foto
|
AddPhoto=Añadir foto
|
||||||
CurrentLogin=Login actual
|
CurrentLogin=Login actual
|
||||||
January=enero
|
January=enero
|
||||||
February=febrero
|
February=febrero
|
||||||
March=marzo
|
March=marzo
|
||||||
April=abril
|
April=abril
|
||||||
May=mayo
|
May=mayo
|
||||||
June=junio
|
June=junio
|
||||||
July=julio
|
July=julio
|
||||||
August=agosto
|
August=agosto
|
||||||
September=septiembre
|
September=septiembre
|
||||||
October=octubre
|
October=octubre
|
||||||
November=noviembre
|
November=noviembre
|
||||||
December=diciembre
|
December=diciembre
|
||||||
AttachedFiles=Archivos y documentos adjuntos
|
AttachedFiles=Archivos y documentos adjuntos
|
||||||
FileTransferComplete=Se transfirió correctamente el archivo
|
FileTransferComplete=Se transfirió correctamente el archivo
|
||||||
DateFormatYYYYMM=YYYY-MM
|
DateFormatYYYYMM=YYYY-MM
|
||||||
DateFormatYYYYMMDD=YYYY-MM-DD
|
DateFormatYYYYMMDD=YYYY-MM-DD
|
||||||
DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS
|
DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS
|
||||||
ReportName=Nombre del informe
|
ReportName=Nombre del informe
|
||||||
ReportPeriod=Periodo de análisis
|
ReportPeriod=Periodo de análisis
|
||||||
ReportDescription=Descripción
|
ReportDescription=Descripción
|
||||||
Report=Informe
|
Report=Informe
|
||||||
Keyword=Clave
|
Keyword=Clave
|
||||||
Legend=Leyenda
|
Legend=Leyenda
|
||||||
FillTownFromZip=Indicar población
|
FillTownFromZip=Indicar población
|
||||||
ShowLog=Ver histórico
|
ShowLog=Ver histórico
|
||||||
File=Archivo
|
File=Archivo
|
||||||
ReadPermissionNotAllowed=Lectura no autorizada
|
ReadPermissionNotAllowed=Lectura no autorizada
|
||||||
AmountInCurrency=Importes visualizados en %s
|
AmountInCurrency=Importes visualizados en %s
|
||||||
Example=Ejemplo
|
Example=Ejemplo
|
||||||
NoExample=Sin ejemplo
|
NoExample=Sin ejemplo
|
||||||
FindBug=Señalar un bug
|
FindBug=Señalar un bug
|
||||||
NbOfThirdParties=Número de terceros
|
NbOfThirdParties=Número de terceros
|
||||||
NbOfCustomers=Numero de clientes
|
NbOfCustomers=Numero de clientes
|
||||||
NbOfLines=Números de líneas
|
NbOfLines=Números de líneas
|
||||||
NbOfObjects=Número de objetos
|
NbOfObjects=Número de objetos
|
||||||
NbOfReferers=Número de referencias
|
NbOfReferers=Número de referencias
|
||||||
Referers=Referencias
|
Referers=Referencias
|
||||||
TotalQuantity=Cantidad todal
|
TotalQuantity=Cantidad todal
|
||||||
DateFromTo=De %s a %s
|
DateFromTo=De %s a %s
|
||||||
DateFrom=A partir de %s
|
DateFrom=A partir de %s
|
||||||
DateUntil=Hasta %s
|
DateUntil=Hasta %s
|
||||||
Check=Verificar
|
Check=Verificar
|
||||||
Internal=Interno
|
Internal=Interno
|
||||||
External=Externo
|
External=Externo
|
||||||
Internals=Internos
|
Internals=Internos
|
||||||
Externals=Externos
|
Externals=Externos
|
||||||
Warning=Alerta
|
Warning=Alerta
|
||||||
Warnings=Alertas
|
Warnings=Alertas
|
||||||
BuildPDF=Generar el PDF
|
BuildPDF=Generar el PDF
|
||||||
RebuildPDF=Regenerar el PDF
|
RebuildPDF=Regenerar el PDF
|
||||||
BuildDoc=Generar el doc
|
BuildDoc=Generar el doc
|
||||||
RebuildDoc=Regenerar el doc
|
RebuildDoc=Regenerar el doc
|
||||||
Entity=Entidad
|
Entity=Entidad
|
||||||
Entities=Entidades
|
Entities=Entidades
|
||||||
EventLogs=Log
|
EventLogs=Log
|
||||||
CustomerPreview=Historial cliente
|
CustomerPreview=Historial cliente
|
||||||
SupplierPreview=Historial proveedor
|
SupplierPreview=Historial proveedor
|
||||||
AccountancyPreview=Historial contable
|
AccountancyPreview=Historial contable
|
||||||
ShowCustomerPreview=Ver historial cliente
|
ShowCustomerPreview=Ver historial cliente
|
||||||
ShowSupplierPreview=Ver historial proveedor
|
ShowSupplierPreview=Ver historial proveedor
|
||||||
ShowAccountancyPreview=Ver historial contable
|
ShowAccountancyPreview=Ver historial contable
|
||||||
RefCustomer=Ref. client
|
RefCustomer=Ref. client
|
||||||
Currency=Divisa
|
Currency=Divisa
|
||||||
InfoAdmin=Información para los administradores
|
InfoAdmin=Información para los administradores
|
||||||
Undo=Anular
|
Undo=Anular
|
||||||
Redo=Rehacer
|
Redo=Rehacer
|
||||||
ExpandAll=Expandir todo
|
ExpandAll=Expandir todo
|
||||||
UndoExpandAll=Anular expansión
|
UndoExpandAll=Anular expansión
|
||||||
Reason=Razon
|
Reason=Razon
|
||||||
FeatureNotYetSupported=Funcionalidad aún no soportada
|
FeatureNotYetSupported=Funcionalidad aún no soportada
|
||||||
CloseWindow=Cerrar ventana
|
CloseWindow=Cerrar ventana
|
||||||
Question=Pregunta
|
Question=Pregunta
|
||||||
Response=Respuesta
|
Response=Respuesta
|
||||||
Priority=Prioridad
|
Priority=Prioridad
|
||||||
MailSentBy=Mail enviado por
|
MailSentBy=Mail enviado por
|
||||||
TextUsedInTheMessageBody=Texto utilizado en el cuerpo del mensaje
|
TextUsedInTheMessageBody=Texto utilizado en el cuerpo del mensaje
|
||||||
SendAcknowledgementByMail=Envio rec. por e-mail
|
SendAcknowledgementByMail=Envio rec. por e-mail
|
||||||
NoEMail=Sin e-mail
|
NoEMail=Sin e-mail
|
||||||
Owner=Propietario
|
Owner=Propietario
|
||||||
DetectedVersion=Versión detectada
|
DetectedVersion=Versión detectada
|
||||||
FollowingConstantsWillBeSubstituted=Las siguientes constantes serán substituidas por su valor correspondiente.
|
FollowingConstantsWillBeSubstituted=Las siguientes constantes serán substituidas por su valor correspondiente.
|
||||||
Refresh=Refrescar
|
Refresh=Refrescar
|
||||||
BackToList=Devolver listado
|
BackToList=Devolver listado
|
||||||
GoBack=Volver atrás
|
GoBack=Volver atrás
|
||||||
CanBeModifiedIfOk=Puede modificarse si es valido
|
CanBeModifiedIfOk=Puede modificarse si es valido
|
||||||
CanBeModifiedIfKo=Puede modificarse si no es valido
|
CanBeModifiedIfKo=Puede modificarse si no es valido
|
||||||
RecordModifiedSuccessfully=Registro modificado con éxito
|
RecordModifiedSuccessfully=Registro modificado con éxito
|
||||||
AutomaticCode=Creación automática de código
|
AutomaticCode=Creación automática de código
|
||||||
NotManaged=No generado
|
NotManaged=No generado
|
||||||
FeatureDisabled=Función desactivada
|
FeatureDisabled=Función desactivada
|
||||||
MoveBox=Desplazar la caja %s
|
MoveBox=Desplazar la caja %s
|
||||||
Offered=Oferta
|
Offered=Oferta
|
||||||
NotEnoughPermissions=No tiene permisos para esta acción
|
NotEnoughPermissions=No tiene permisos para esta acción
|
||||||
SessionName=Nombre sesión
|
SessionName=Nombre sesión
|
||||||
Method=Método
|
Method=Método
|
||||||
Receive=Recepción
|
Receive=Recepción
|
||||||
PartialWoman=Parcial
|
PartialWoman=Parcial
|
||||||
PartialMan=Parcial
|
PartialMan=Parcial
|
||||||
TotalWoman=Total
|
TotalWoman=Total
|
||||||
TotalMan=Total
|
TotalMan=Total
|
||||||
YouCanChangeValuesForThisListFromDictionnarySetup=Puede cambiar estos valores en el menú configuración->diccionarios
|
YouCanChangeValuesForThisListFromDictionnarySetup=Puede cambiar estos valores en el menú configuración->diccionarios
|
||||||
Color=Color
|
Color=Color
|
||||||
MenuECM=Documentos
|
MenuECM=Documentos
|
||||||
# Week day
|
MenuAWStats=AWStats
|
||||||
Monday=Lunes
|
MenuMembers=Members
|
||||||
Tuesday=Martes
|
# Week day
|
||||||
Wednesday=Miercoles
|
Monday=Lunes
|
||||||
Thursday=Jueves
|
Tuesday=Martes
|
||||||
Friday=Viernes
|
Wednesday=Miercoles
|
||||||
Saturday=Sábado
|
Thursday=Jueves
|
||||||
Sunday=Domingo
|
Friday=Viernes
|
||||||
ShortMonday=L
|
Saturday=Sábado
|
||||||
ShortTuesday=Ma
|
Sunday=Domingo
|
||||||
ShortWednesday=M
|
ShortMonday=L
|
||||||
ShortThursday=J
|
ShortTuesday=Ma
|
||||||
ShortFriday=V
|
ShortWednesday=M
|
||||||
ShortSaturday=S
|
ShortThursday=J
|
||||||
ShortSunday=D
|
ShortFriday=V
|
||||||
|
ShortSaturday=S
|
||||||
|
ShortSunday=D
|
||||||
|
|||||||
@ -421,7 +421,9 @@ TotalMan=Total
|
|||||||
YouCanChangeValuesForThisListFromDictionnarySetup=Vous pouvez changer ces valeurs depuis le menu configuration - dictionnaires
|
YouCanChangeValuesForThisListFromDictionnarySetup=Vous pouvez changer ces valeurs depuis le menu configuration - dictionnaires
|
||||||
Color=Couleur
|
Color=Couleur
|
||||||
MenuECM=Documents
|
MenuECM=Documents
|
||||||
|
MenuAWStats=AWStats
|
||||||
MenuMembers=Adhérents
|
MenuMembers=Adhérents
|
||||||
|
MenuAgendaGoogle=Agenda Google
|
||||||
# Week day
|
# Week day
|
||||||
Monday=Lundi
|
Monday=Lundi
|
||||||
Tuesday=Mardi
|
Tuesday=Mardi
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user