24 require_once DOL_DOCUMENT_ROOT.
'/core/class/menubase.class.php';
40 function print_auguria_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout = 0, $mode =
'')
42 global $user, $conf, $langs, $mysoc;
43 global $dolibarr_main_db_name;
45 $mainmenu = (empty($_SESSION[
"mainmenu"]) ?
'' : $_SESSION[
"mainmenu"]);
46 $leftmenu = (empty($_SESSION[
"leftmenu"]) ?
'' : $_SESSION[
"leftmenu"]);
49 $listofmodulesforexternal = explode(
',', $conf->global->MAIN_MODULES_FOR_EXTERNAL);
52 $menuArbo =
new Menubase($db,
'auguria');
53 $newTabMenu = $menuArbo->menuTopCharger(
'',
'', $type_user,
'auguria', $tabMenu);
63 if ($mode !=
'jmobile' && $mode !=
'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
66 $classname =
'class="tmenu menuhider"';
69 $menu->add(
'#', (!empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE) ?
'<span class="fa fa-bars"></span>' :
''), 0, $showmode, $atarget,
"xxx",
'', 0, $id, $idsel, $classname);
72 $num = count($newTabMenu);
73 for ($i = 0; $i < $num; $i++)
75 $idsel = (empty($newTabMenu[$i][
'mainmenu']) ?
'none' : $newTabMenu[$i][
'mainmenu']);
83 $url = $shorturl = $newTabMenu[$i][
'url'];
85 if (!preg_match(
"/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i][
'url']))
87 $tmp = explode(
'?', $newTabMenu[$i][
'url'], 2);
88 $url = $shorturl = $tmp[0];
89 $param = (isset($tmp[1]) ? $tmp[1] :
'');
92 if ((!preg_match(
'/mainmenu/i', $param)) && (!preg_match(
'/leftmenu/i', $param)) && !empty($newTabMenu[$i][
'url']))
94 $param .= ($param ?
'&' :
'').
'mainmenu='.$newTabMenu[$i][
'mainmenu'].
'&leftmenu=';
96 if ((!preg_match(
'/mainmenu/i', $param)) && (!preg_match(
'/leftmenu/i', $param)) && empty($newTabMenu[$i][
'url']))
98 $param .= ($param ?
'&' :
'').
'leftmenu=';
105 if (DOL_URL_ROOT) $shorturl = preg_replace(
'/^'.preg_quote(DOL_URL_ROOT,
'/').
'/',
'', $shorturl);
109 if (preg_match(
'/search_project_user=__search_project_user__/', $shorturl))
111 $search_project_user =
GETPOST(
'search_project_user',
'int');
112 if ($search_project_user) $shorturl = preg_replace(
'/search_project_user=__search_project_user__/',
'search_project_user='.$search_project_user, $shorturl);
113 else $shorturl = preg_replace(
'/search_project_user=__search_project_user__/',
'', $shorturl);
117 if (!empty($_SESSION[
'idmenu']) && $newTabMenu[$i][
'rowid'] == $_SESSION[
'idmenu']) $classname =
'class="tmenusel"';
118 elseif (!empty($_SESSION[
"mainmenu"]) && $newTabMenu[$i][
'mainmenu'] == $_SESSION[
"mainmenu"]) $classname =
'class="tmenusel"';
119 else $classname =
'class="tmenu"';
120 } elseif ($showmode == 2) {
121 $classname =
'class="tmenu"';
126 $menu->add($shorturl, $newTabMenu[$i][
'titre'], 0, $showmode, ($newTabMenu[$i][
'target'] ? $newTabMenu[$i][
'target'] : $atarget), ($newTabMenu[$i][
'mainmenu'] ? $newTabMenu[$i][
'mainmenu'] : $newTabMenu[$i][
'rowid']), ($newTabMenu[$i][
'leftmenu'] ? $newTabMenu[$i][
'leftmenu'] :
''), $newTabMenu[$i][
'position'], $id, $idsel, $classname);
134 if (empty($conf->global->MAIN_MENU_INVERT) && empty($noout) && !empty($conf->global->MAIN_SHOW_LOGO) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
137 $mysoc->logo_squarred_mini = (empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI) ?
'' : $conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI);
139 $logoContainerAdditionalClass =
'backgroundforcompanylogo';
140 if (!empty($conf->global->MAIN_INFO_SOCIETE_LOGO_NO_BACKGROUND)) {
141 $logoContainerAdditionalClass =
'';
144 if (!empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.
'/logos/thumbs/'.$mysoc->logo_squarred_mini))
146 $urllogo = DOL_URL_ROOT.
'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode(
'logos/thumbs/'.$mysoc->logo_squarred_mini);
153 $urllogo = DOL_URL_ROOT.
'/theme/dolibarr_512x512_white.png';
154 $logoContainerAdditionalClass =
'';
157 $title = $langs->trans(
"GoIntoSetupToChangeLogo");
159 print "\n".
'<!-- Show logo on menu -->'.
"\n";
162 print '<div class="center '.$logoContainerAdditionalClass.
' menulogocontainer"><img class="mycompany" title="'.
dol_escape_htmltag($title).
'" alt="" src="'.$urllogo.
'" style="max-width: 100px"></div>'.
"\n";
168 foreach ($menu->liste as $menuval) {
170 print_text_menu_entry_auguria($menuval[
'titre'], $menuval[
'enabled'], ($menuval[
'url'] !=
'#' ?DOL_URL_ROOT:
'').$menuval[
'url'], $menuval[
'id'], $menuval[
'idsel'], $menuval[
'classname'], ($menuval[
'target'] ? $menuval[
'target'] : $atarget));
195 print '<div class="tmenudiv">';
196 print '<ul role="navigation" class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ?
'' :
' title="Top menu"').
'>';
211 print '<li '.$classname.
' id="mainmenutd_'.$idsel.
'">';
213 print '<div class="tmenucenter">';
233 if ($showmode == 1) {
234 print '<a class="tmenuimage" tabindex="-1" href="'.$url.
'"'.($atarget ?
' target="'.$atarget.
'"' :
'').
' title="'.
dol_escape_htmltag($text).
'">';
235 print '<div class="'.$id.
' '.$idsel.
' topmenuimage"><span class="'.$id.
' tmenuimage" id="mainmenuspan_'.$idsel.
'"></span></div>';
237 print '<a '.$classname.
' id="mainmenua_'.$idsel.
'" href="'.$url.
'"'.($atarget ?
' target="'.$atarget.
'"' :
'').
' title="'.
dol_escape_htmltag($text).
'">';
238 print '<span class="mainmenuaspan">';
242 } elseif ($showmode == 2) {
243 print '<div class="'.$id.
' '.$idsel.
' topmenuimage tmenudisabled"><span class="'.$id.
'" id="mainmenuspan_'.$idsel.
'"></span></div>';
244 print '<a class="tmenudisabled" id="mainmenua_'.$idsel.
'" href="#" title="'.
dol_escape_htmltag($langs->trans(
"NotAllowed")).
'">';
245 print '<span class="mainmenuaspan">';
296 function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu =
'', $forceleftmenu =
'', $moredata = null)
298 global $user, $conf, $langs, $dolibarr_main_db_name, $mysoc;
302 $mainmenu = ($forcemainmenu ? $forcemainmenu : $_SESSION[
"mainmenu"]);
303 $leftmenu = ($forceleftmenu ?
'' : (empty($_SESSION[
"leftmenu"]) ?
'none' : $_SESSION[
"leftmenu"]));
305 global $usemenuhider;
308 if (is_array($moredata) && !empty($moredata[
'searchform']))
311 print "<!-- Begin SearchForm -->\n";
312 print '<div id="blockvmenusearch" class="blockvmenusearch">'.
"\n";
313 print $moredata[
'searchform'];
315 print "<!-- End SearchForm -->\n";
318 if (is_array($moredata) && !empty($moredata[
'bookmarks']))
321 print "<!-- Begin Bookmarks -->\n";
322 print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">'.
"\n";
323 print $moredata[
'bookmarks'];
325 print "<!-- End Bookmarks -->\n";
331 $menuArbo =
new Menubase($db,
'auguria');
332 $newmenu = $menuArbo->menuLeftCharger($newmenu, $mainmenu, $leftmenu, ($user->socid ? 1 : 0),
'auguria', $tabMenu);
335 if ($conf->banque->enabled && $user->rights->banque->lire && $mainmenu ==
'bank')
337 include_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
339 $sql =
"SELECT rowid, label, courant, rappro, courant";
340 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank_account";
341 $sql .=
" WHERE entity = ".$conf->entity;
342 $sql .=
" AND clos = 0";
343 $sql .=
" ORDER BY label";
345 $resql = $db->query($sql);
348 $numr = $db->num_rows(
$resql);
351 if ($numr > 0) $newmenu->add(
'/compta/bank/list.php', $langs->trans(
"BankAccounts"), 0, $user->rights->banque->lire);
355 $objp = $db->fetch_object(
$resql);
356 $newmenu->add(
'/compta/bank/card.php?id='.$objp->rowid, $objp->label, 1, $user->rights->banque->lire);
359 $newmenu->add(
'/compta/bank/bankentries_list.php?id='.$objp->rowid, $langs->trans(
"Conciliate"), 2, $user->rights->banque->consolidate);
367 if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu ==
'accountancy')
369 $newmenu->add(
'', $langs->trans(
"RegistrationInAccounting"), 1, $user->rights->accounting->comptarapport->lire,
'',
'accountancy',
'accountancy', 10);
372 $sql =
"SELECT rowid, code, label, nature";
373 $sql .=
" FROM ".MAIN_DB_PREFIX.
"accounting_journal";
374 $sql .=
" WHERE entity = ".$conf->entity;
375 $sql .=
" AND active = 1";
376 $sql .=
" ORDER BY label DESC";
378 $resql = $db->query($sql);
381 $numr = $db->num_rows(
$resql);
388 $objp = $db->fetch_object(
$resql);
393 if ($objp->nature == 2 && !empty($conf->facture->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)) $nature =
"sells";
394 if ($objp->nature == 3
395 && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled))
396 && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES))
397 $nature =
"purchases";
398 if ($objp->nature == 4 && !empty($conf->banque->enabled)) $nature =
"bank";
399 if ($objp->nature == 5 && !empty($conf->expensereport->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) $nature =
"expensereports";
400 if ($objp->nature == 1) $nature =
"various";
401 if ($objp->nature == 8) $nature =
"inventory";
402 if ($objp->nature == 9) $nature =
"hasnew";
405 if (empty($conf->global->ACCOUNTANCY_SHOW_DEVELOP_JOURNAL))
407 if ($nature ==
'various' || $nature ==
'hasnew' || $nature ==
'inventory') $nature =
'';
412 $langs->load(
'accountancy');
413 $journallabel = $langs->transnoentities($objp->label);
414 $newmenu->add(
'/accountancy/journal/'.$nature.
'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid, $journallabel, 2, $user->rights->accounting->comptarapport->lire);
420 $newmenu->add(
'', $langs->trans(
"NoJournalDefined"), 2, $user->rights->accounting->comptarapport->lire);
426 if (!empty($conf->ftp->enabled) && $mainmenu ==
'ftp')
430 while ($i <= $MAXFTP)
432 $paramkey =
'FTP_NAME_'.$i;
434 if (!empty($conf->global->$paramkey))
436 $link =
"/ftp/index.php?idmenu=".$_SESSION[
"idmenu"].
"&numero_ftp=".$i;
438 $newmenu->add($link,
dol_trunc($conf->global->$paramkey, 24));
448 $menu_array = $newmenu->liste;
449 if (is_array($menu_array_before)) $menu_array = array_merge($menu_array_before, $menu_array);
450 if (is_array($menu_array_after)) $menu_array = array_merge($menu_array, $menu_array_after);
452 if (!is_array($menu_array))
return 0;
455 $invert = empty($conf->global->MAIN_MENU_INVERT) ?
"" :
"invert";
458 $altok = 0; $blockvmenuopened =
false; $lastlevel0 =
'';
459 $num = count($menu_array);
460 for ($i = 0; $i < $num; $i++)
463 if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($menu_array[$i][
'enabled'])) $showmenu =
false;
466 if (empty($menu_array[$i][
'level']) && $showmenu)
469 $blockvmenuopened =
true;
471 for ($j = ($i + 1); $j < $num; $j++)
473 if (empty($menu_array[$j][
'level'])) $lastopened =
false;
477 print '<div class="blockvmenu blockvmenuimpair'.$invert.($lastopened ?
' blockvmenulast' :
'').($altok == 1 ?
' blockvmenufirst' :
'').
'">'.
"\n";
479 print '<div class="blockvmenu blockvmenupair'.$invert.($lastopened ?
' blockvmenulast' :
'').($altok == 1 ?
' blockvmenufirst' :
'').
'">'.
"\n";
485 $tabul = ($menu_array[$i][
'level'] - 1);
488 for ($j = 0; $j < $tabul; $j++)
490 $tabstring .=
' ';
498 $url = $shorturl = $shorturlwithoutparam = $menu_array[$i][
'url'];
499 if (!preg_match(
"/^(http:\/\/|https:\/\/)/i", $menu_array[$i][
'url']))
501 $tmp = explode(
'?', $menu_array[$i][
'url'], 2);
502 $url = $shorturl = $tmp[0];
503 $param = (isset($tmp[1]) ? $tmp[1] :
'');
506 if ((!preg_match(
'/mainmenu/i', $param)) && (!preg_match(
'/leftmenu/i', $param)) && !empty($menu_array[$i][
'mainmenu']))
508 $param .= ($param ?
'&' :
'').
'mainmenu='.$menu_array[$i][
'mainmenu'].
'&leftmenu=';
510 if ((!preg_match(
'/mainmenu/i', $param)) && (!preg_match(
'/leftmenu/i', $param)) && empty($menu_array[$i][
'mainmenu']))
512 $param .= ($param ?
'&' :
'').
'leftmenu=';
516 $shorturlwithoutparam = $shorturl;
517 $shorturl = $shorturl.($param ?
'?'.$param :
'');
521 print '<!-- Process menu entry with mainmenu='.$menu_array[$i][
'mainmenu'].
', leftmenu='.$menu_array[$i][
'leftmenu'].
', level='.$menu_array[$i][
'level'].
' enabled='.$menu_array[$i][
'enabled'].
', position='.$menu_array[$i][
'position'].
' -->'.
"\n";
524 if ($menu_array[$i][
'level'] == 0)
526 if ($menu_array[$i][
'enabled'])
528 print '<div class="menu_titre">'.$tabstring;
529 if ($shorturlwithoutparam)
print '<a class="vmenu" title="'.dol_escape_htmltag($menu_array[$i][
'titre']).
'" href="'.$url.
'"'.($menu_array[$i][
'target'] ?
' target="'.$menu_array[$i][
'target'].
'"' :
'').
'>';
530 else print '<span class="vmenu">';
531 print ($menu_array[$i][
'prefix'] ? $menu_array[$i][
'prefix'] :
'').$menu_array[$i][
'titre'];
532 if ($shorturlwithoutparam)
print '</a>';
533 else print '</span>';
535 $lastlevel0 =
'enabled';
538 print '<div class="menu_titre">'.$tabstring.
'<font class="vmenudisabled">'.$menu_array[$i][
'titre'].
'</font></div>'.
"\n";
539 $lastlevel0 =
'greyed';
541 $lastlevel0 =
'hidden';
545 print '<div class="menu_top"></div>'.
"\n";
550 if ($menu_array[$i][
'level'] > 0)
553 if ($menu_array[$i][
'url']) $cssmenu =
' menu_contenu'.dol_string_nospecial(preg_replace(
'/\.php.*$/',
'', $menu_array[$i][
'url']));
555 if ($menu_array[$i][
'enabled'] && $lastlevel0 ==
'enabled')
557 print '<div class="menu_contenu'.$cssmenu.
'">'.$tabstring;
558 if ($shorturlwithoutparam)
print '<a class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i][
'titre']).
'" href="'.$url.
'"'.($menu_array[$i][
'target'] ?
' target="'.$menu_array[$i][
'target'].
'"' :
'').
'>';
559 else print '<span class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i][
'titre']).
'">';
560 print $menu_array[$i][
'titre'];
561 if ($shorturlwithoutparam)
print '</a>';
562 else print '</span>';
564 if (!strstr($menu_array[$i][
'titre'],
'<table'))
print '<br>';
566 } elseif ($showmenu && $lastlevel0 ==
'enabled')
568 print '<div class="menu_contenu'.$cssmenu.
'">'.$tabstring.
'<font class="vsmenudisabled vsmenudisabledmargin">'.$menu_array[$i][
'titre'].
'</font><br></div>'.
"\n";
573 if (empty($menu_array[$i + 1][
'level']))
576 print '<div class="menu_end"></div>'.
"\n";
577 if ($blockvmenuopened) {
print '</div>'.
"\n"; $blockvmenuopened =
false; }
581 if ($altok)
print '<div class="blockvmenuend"></div>';
584 return count($menu_array);
602 if (empty($menuentry[
'enabled']))
return 0;
603 if ($type_user && $menuentry[
'module'])
605 $tmploops = explode(
'|', $menuentry[
'module']);
607 foreach ($tmploops as $tmploop)
609 if (in_array($tmploop, $listofmodulesforexternal)) {
613 if (!$found)
return 0;
615 if (!$menuentry[
'perms'] && $type_user)
return 0;
616 if (!$menuentry[
'perms'] && !empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED))
return 0;
617 if (!$menuentry[
'perms'])
return 2;
GETPOST($paramname, $check= 'alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
print_start_menu_entry_auguria($idsel, $classname, $showmode)
Output start menu entry.
dol_auguria_showmenu($type_user, &$menuentry, &$listofmodulesforexternal)
Function to test if an entry is enabled or not.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $object=null)
Return array of possible common substitutions.
print_text_menu_entry_auguria($text, $showmode, $url, $id, $idsel, $classname, $atarget)
Output menu entry.
print_start_menu_array_auguria()
Output start menu array.
const TYPE_CASH
Cash account.
dol_sort_array(&$array, $index, $order= 'asc', $natsort=0, $case_sensitive=0, $keepindex=0)
Advanced sort array by second index function, which produces ascending (default) or descending output...
print
Draft customers invoices.
if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) if(!empty($conf->don->enabled)&&$user->rights->don->lire) if(!empty($conf->tax->enabled)&&$user->rights->tax->charges->lire) if(!empty($conf->facture->enabled)&&!empty($conf->commande->enabled)&&$user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) $resql
Social contributions to pay.
dol_print_error($db= '', $error= '', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
print_auguria_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout=0, $mode= '')
Core function to output top menu auguria.
print_end_menu_entry_auguria($showmode)
Output end menu entry.
dol_trunc($string, $size=40, $trunc= 'right', $stringencoding= 'UTF-8', $nodot=0, $display=0)
Truncate a string to a particular length adding '...' if string larger than length.
make_substitutions($text, $substitutionarray, $outputlangs=null)
Make substitution into a text string, replacing keys with vals from $substitutionarray (oldval=>newva...
print_end_menu_array_auguria()
Output menu array.
print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout=0, $forcemainmenu= '', $forceleftmenu= '', $moredata=null)
Core function to output left menu auguria Fill &$menu (example with $forcemainmenu='home' $forceleftm...
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $keepmoretags= '', $escapeonlyhtmltags=0)
Returns text escaped for inclusion in HTML alt or title tags, or into values of HTML input fields...