style.css.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. <?php
  2. /* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
  3. * Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  4. * Copyright (C) 2007-2017 Regis Houssin <regis.houssin@inodbox.com>
  5. * Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
  6. * Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
  7. * Copyright (C) 2018 Ferran Marcet <fmarcet@2byte.es>
  8. * Copyright (C) 2021-2023 Anthony Berton <anthony.berton@bb2a.fr>
  9. *
  10. * This program is free software; you can redistribute it and/or modify
  11. * it under the terms of the GNU General Public License as published by
  12. * the Free Software Foundation; either version 3 of the License, or
  13. * (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. * GNU General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU General Public License
  21. * along with this program. If not, see <https://www.gnu.org/licenses/>.
  22. */
  23. /**
  24. * \file htdocs/theme/eldy/style.css.php
  25. * \brief File for CSS style sheet Eldy
  26. */
  27. //if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled because need to load personalized language
  28. //if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled to increase speed. Language code is found on url.
  29. if (!defined('NOREQUIRESOC')) {
  30. define('NOREQUIRESOC', '1');
  31. }
  32. //if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Not disabled because need to do translations
  33. if (!defined('NOCSRFCHECK')) {
  34. define('NOCSRFCHECK', 1);
  35. }
  36. if (!defined('NOTOKENRENEWAL')) {
  37. define('NOTOKENRENEWAL', 1);
  38. }
  39. if (!defined('NOLOGIN')) {
  40. define('NOLOGIN', 1); // File must be accessed by logon page so without login.
  41. }
  42. //if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU',1); // We load menu manager class (note that object loaded may have wrong content because NOLOGIN is set and some values depends on login)
  43. if (!defined('NOREQUIREHTML')) {
  44. define('NOREQUIREHTML', 1);
  45. }
  46. if (!defined('NOREQUIREAJAX')) {
  47. define('NOREQUIREAJAX', '1');
  48. }
  49. define('ISLOADEDBYSTEELSHEET', '1');
  50. require __DIR__.'/theme_vars.inc.php';
  51. if (defined('THEME_ONLY_CONSTANT')) {
  52. return;
  53. }
  54. session_cache_limiter('public');
  55. require_once __DIR__.'/../../main.inc.php'; // __DIR__ allow this script to be included in custom themes
  56. require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
  57. // Load user to have $user->conf loaded (not done into main because of NOLOGIN constant defined)
  58. // and permission, so we can later calculate number of top menu ($nbtopmenuentries) according to user profile.
  59. if (empty($user->id) && !empty($_SESSION['dol_login'])) {
  60. $user->fetch('', $_SESSION['dol_login'], '', 1);
  61. $user->getrights();
  62. // Reload menu now we have the good user (and we need the good menu to have ->showmenu('topnb') correct.
  63. $menumanager = new MenuManager($db, empty($user->socid) ? 0 : 1);
  64. $menumanager->loadMenu();
  65. }
  66. // Define css type
  67. top_httphead('text/css');
  68. // Important: Following code is to avoid page request by browser and PHP CPU at each Dolibarr page access.
  69. if (empty($dolibarr_nocache)) {
  70. header('Cache-Control: max-age=10800, public, must-revalidate');
  71. } else {
  72. header('Cache-Control: no-cache');
  73. }
  74. if (GETPOST('theme', 'aZ09')) {
  75. $conf->theme = GETPOST('theme', 'aZ09'); // If theme was forced on URL
  76. }
  77. if (GETPOST('lang', 'aZ09')) {
  78. $langs->setDefaultLang(GETPOST('lang', 'aZ09')); // If language was forced on URL
  79. }
  80. if (GETPOSTISSET('THEME_DARKMODEENABLED')) {
  81. $conf->global->THEME_DARKMODEENABLED = GETPOST('THEME_DARKMODEENABLED', 'int'); // If darkmode was forced on URL
  82. }
  83. $langs->load("main", 0, 1);
  84. $right = ($langs->trans("DIRECTION") == 'rtl' ? 'left' : 'right');
  85. $left = ($langs->trans("DIRECTION") == 'rtl' ? 'right' : 'left');
  86. $path = ''; // This value may be used in future for external module to overwrite theme
  87. $theme = 'eldy'; // Value of theme
  88. if (getDolGlobalString('MAIN_OVERWRITE_THEME_RES')) {
  89. $path = '/' . getDolGlobalString('MAIN_OVERWRITE_THEME_RES'); $theme = $conf->global->MAIN_OVERWRITE_THEME_RES;
  90. }
  91. // Define image path files and other constants
  92. $fontlist = 'arial,tahoma,verdana,helvetica'; //$fontlist='helvetica, verdana, arial, sans-serif';
  93. //$fontlist='"open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;';
  94. $img_head = '';
  95. $img_button = dol_buildpath($path.'/theme/'.$theme.'/img/button_bg.png', 1);
  96. $dol_hide_topmenu = $conf->dol_hide_topmenu;
  97. $dol_hide_leftmenu = $conf->dol_hide_leftmenu;
  98. $dol_optimize_smallscreen = $conf->dol_optimize_smallscreen;
  99. $dol_no_mouse_hover = $conf->dol_no_mouse_hover;
  100. //$conf->global->THEME_ELDY_ENABLE_PERSONALIZED=0;
  101. //$user->conf->THEME_ELDY_ENABLE_PERSONALIZED=0;
  102. //var_dump($user->conf->THEME_ELDY_RGB);
  103. $useboldtitle = getDolGlobalInt('THEME_ELDY_USEBOLDTITLE');
  104. $userborderontable = getDolGlobalInt('THEME_ELDY_USEBORDERONTABLE');
  105. $borderwidth = 1;
  106. // Case of option always editable
  107. if (!isset($conf->global->THEME_ELDY_BACKBODY)) {
  108. $conf->global->THEME_ELDY_BACKBODY = $colorbackbody;
  109. }
  110. if (!isset($conf->global->THEME_ELDY_TOPMENU_BACK1)) {
  111. $conf->global->THEME_ELDY_TOPMENU_BACK1 = $colorbackhmenu1;
  112. }
  113. if (!isset($conf->global->THEME_ELDY_VERMENU_BACK1)) {
  114. $conf->global->THEME_ELDY_VERMENU_BACK1 = $colorbackvmenu1;
  115. }
  116. if (!isset($conf->global->THEME_ELDY_BACKTITLE1)) {
  117. $conf->global->THEME_ELDY_BACKTITLE1 = $colorbacktitle1;
  118. }
  119. if (!isset($conf->global->THEME_ELDY_USE_HOVER)) {
  120. $conf->global->THEME_ELDY_USE_HOVER = $colorbacklinepairhover;
  121. }
  122. if (!isset($conf->global->THEME_ELDY_USE_CHECKED)) {
  123. $conf->global->THEME_ELDY_USE_CHECKED = $colorbacklinepairchecked;
  124. }
  125. if (!isset($conf->global->THEME_ELDY_LINEBREAK)) {
  126. $conf->global->THEME_ELDY_LINEBREAK = $colorbacklinebreak;
  127. }
  128. if (!isset($conf->global->THEME_ELDY_TEXTTITLENOTAB)) {
  129. $conf->global->THEME_ELDY_TEXTTITLENOTAB = $colortexttitlenotab;
  130. }
  131. if (!isset($conf->global->THEME_ELDY_TEXTLINK)) {
  132. $conf->global->THEME_ELDY_TEXTLINK = $colortextlink;
  133. }
  134. if (!isset($conf->global->THEME_ELDY_BTNACTION)) {
  135. $conf->global->THEME_ELDY_BTNACTION = $butactionbg;
  136. }
  137. if (!isset($conf->global->THEME_ELDY_TEXTBTNACTION)) {
  138. $conf->global->THEME_ELDY_TEXTBTNACTION = $textbutaction;
  139. }
  140. // Case of option editable only if option THEME_ELDY_ENABLE_PERSONALIZED is on
  141. if (!getDolGlobalString('THEME_ELDY_ENABLE_PERSONALIZED')) {
  142. $conf->global->THEME_ELDY_BACKTABCARD1 = '255,255,255'; // card
  143. $conf->global->THEME_ELDY_BACKTABACTIVE = '234,234,234';
  144. $conf->global->THEME_ELDY_TEXT = '0,0,0';
  145. $conf->global->THEME_ELDY_FONT_SIZE1 = $fontsize;
  146. $conf->global->THEME_ELDY_FONT_SIZE2 = '0.75em';
  147. }
  148. // Case of option availables only if THEME_ELDY_ENABLE_PERSONALIZED is on
  149. $colorbackbody = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_BACKBODY') ? $colorbackbody : $conf->global->THEME_ELDY_BACKBODY) : (empty($user->conf->THEME_ELDY_BACKBODY) ? $colorbackbody : $user->conf->THEME_ELDY_BACKBODY);
  150. $colorbackhmenu1 = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_TOPMENU_BACK1') ? $colorbackhmenu1 : $conf->global->THEME_ELDY_TOPMENU_BACK1) : (empty($user->conf->THEME_ELDY_TOPMENU_BACK1) ? $colorbackhmenu1 : $user->conf->THEME_ELDY_TOPMENU_BACK1);
  151. $colorbackvmenu1 = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_VERMENU_BACK1') ? $colorbackvmenu1 : $conf->global->THEME_ELDY_VERMENU_BACK1) : (empty($user->conf->THEME_ELDY_VERMENU_BACK1) ? $colorbackvmenu1 : $user->conf->THEME_ELDY_VERMENU_BACK1);
  152. $colortopbordertitle1 = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_TOPBORDER_TITLE1') ? $colortopbordertitle1 : $conf->global->THEME_ELDY_TOPBORDER_TITLE1) : (empty($user->conf->THEME_ELDY_TOPBORDER_TITLE1) ? $colortopbordertitle1 : $user->conf->THEME_ELDY_TOPBORDER_TITLE1);
  153. $colorbacktitle1 = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_BACKTITLE1') ? $colorbacktitle1 : $conf->global->THEME_ELDY_BACKTITLE1) : (empty($user->conf->THEME_ELDY_BACKTITLE1) ? $colorbacktitle1 : $user->conf->THEME_ELDY_BACKTITLE1);
  154. $colorbacktabcard1 = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_BACKTABCARD1') ? $colorbacktabcard1 : $conf->global->THEME_ELDY_BACKTABCARD1) : (empty($user->conf->THEME_ELDY_BACKTABCARD1) ? $colorbacktabcard1 : $user->conf->THEME_ELDY_BACKTABCARD1);
  155. $colorbacktabactive = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_BACKTABACTIVE') ? $colorbacktabactive : $conf->global->THEME_ELDY_BACKTABACTIVE) : (empty($user->conf->THEME_ELDY_BACKTABACTIVE) ? $colorbacktabactive : $user->conf->THEME_ELDY_BACKTABACTIVE);
  156. $colorbacklineimpair1 = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_LINEIMPAIR1') ? $colorbacklineimpair1 : $conf->global->THEME_ELDY_LINEIMPAIR1) : (empty($user->conf->THEME_ELDY_LINEIMPAIR1) ? $colorbacklineimpair1 : $user->conf->THEME_ELDY_LINEIMPAIR1);
  157. $colorbacklineimpair2 = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_LINEIMPAIR2') ? $colorbacklineimpair2 : $conf->global->THEME_ELDY_LINEIMPAIR2) : (empty($user->conf->THEME_ELDY_LINEIMPAIR2) ? $colorbacklineimpair2 : $user->conf->THEME_ELDY_LINEIMPAIR2);
  158. $colorbacklinepair1 = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_LINEPAIR1') ? $colorbacklinepair1 : $conf->global->THEME_ELDY_LINEPAIR1) : (empty($user->conf->THEME_ELDY_LINEPAIR1) ? $colorbacklinepair1 : $user->conf->THEME_ELDY_LINEPAIR1);
  159. $colorbacklinepair2 = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_LINEPAIR2') ? $colorbacklinepair2 : $conf->global->THEME_ELDY_LINEPAIR2) : (empty($user->conf->THEME_ELDY_LINEPAIR2) ? $colorbacklinepair2 : $user->conf->THEME_ELDY_LINEPAIR2);
  160. $colorbacklinebreak = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_LINEBREAK') ? $colorbacklinebreak : $conf->global->THEME_ELDY_LINEBREAK) : (empty($user->conf->THEME_ELDY_LINEBREAK) ? $colorbacklinebreak : $user->conf->THEME_ELDY_LINEBREAK);
  161. $colortexttitlenotab = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_TEXTTITLENOTAB') ? $colortexttitlenotab : $conf->global->THEME_ELDY_TEXTTITLENOTAB) : (empty($user->conf->THEME_ELDY_TEXTTITLENOTAB) ? $colortexttitlenotab : $user->conf->THEME_ELDY_TEXTTITLENOTAB);
  162. $colortexttitle = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_TEXTTITLE') ? $colortexttitle : $conf->global->THEME_ELDY_TEXTTITLE) : (empty($user->conf->THEME_ELDY_TEXTTITLE) ? $colortexttitle : $user->conf->THEME_ELDY_TEXTTITLE);
  163. $colortexttitlelink = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_TEXTTITLELINK') ? $colortexttitlelink : $conf->global->THEME_ELDY_TEXTTITLELINK) : (empty($user->conf->THEME_ELDY_TEXTTITLELINK) ? $colortexttitlelink : $user->conf->THEME_ELDY_TEXTTITLELINK);
  164. $colortext = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_TEXT') ? $colortext : $conf->global->THEME_ELDY_TEXT) : (empty($user->conf->THEME_ELDY_TEXT) ? $colortext : $user->conf->THEME_ELDY_TEXT);
  165. $colortextlink = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_TEXTLINK') ? $colortextlink : $conf->global->THEME_ELDY_TEXTLINK) : (empty($user->conf->THEME_ELDY_TEXTLINK) ? $colortextlink : $user->conf->THEME_ELDY_TEXTLINK);
  166. $butactionbg = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_BTNACTION') ? $butactionbg : $conf->global->THEME_ELDY_BTNACTION) : (empty($user->conf->THEME_ELDY_BTNACTION) ? $butactionbg : $user->conf->THEME_ELDY_BTNACTION);
  167. $textbutaction = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_TEXTBTNACTION') ? $textbutaction : $conf->global->THEME_ELDY_TEXTBTNACTION) : (empty($user->conf->THEME_ELDY_TEXTBTNACTION) ? $textbutaction : $user->conf->THEME_ELDY_TEXTBTNACTION);
  168. $fontsize = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_FONT_SIZE1') ? $fontsize : $conf->global->THEME_ELDY_FONT_SIZE1) : (empty($user->conf->THEME_ELDY_FONT_SIZE1) ? $fontsize : $user->conf->THEME_ELDY_FONT_SIZE1);
  169. $fontsizesmaller = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_FONT_SIZE2') ? $fontsize : $conf->global->THEME_ELDY_FONT_SIZE2) : (empty($user->conf->THEME_ELDY_FONT_SIZE2) ? $fontsize : $user->conf->THEME_ELDY_FONT_SIZE2);
  170. $heightrow = empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED) ? (!getDolGlobalString('THEME_ELDY_USECOMOACTROW') ? '155%' : '300%') : (!getDolGlobalString('THEME_ELDY_USECOMOACTROW') ? '155%' : '300%');
  171. // Hover color
  172. $colorbacklinepairhover = ((!isset($conf->global->THEME_ELDY_USE_HOVER) || (string) $conf->global->THEME_ELDY_USE_HOVER === '255,255,255') ? '' : ($conf->global->THEME_ELDY_USE_HOVER === '1' ? 'e6edf0' : $conf->global->THEME_ELDY_USE_HOVER));
  173. $colorbacklinepairchecked = ((!isset($conf->global->THEME_ELDY_USE_CHECKED) || (string) $conf->global->THEME_ELDY_USE_CHECKED === '255,255,255') ? '' : ($conf->global->THEME_ELDY_USE_CHECKED === '1' ? 'e6edf0' : $conf->global->THEME_ELDY_USE_CHECKED));
  174. if (!empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)) {
  175. $colorbacklinepairhover = ((!isset($user->conf->THEME_ELDY_USE_HOVER) || $user->conf->THEME_ELDY_USE_HOVER === '0') ? '' : ($user->conf->THEME_ELDY_USE_HOVER === '1' ? 'e6edf0' : $user->conf->THEME_ELDY_USE_HOVER));
  176. $colorbacklinepairchecked = ((!isset($user->conf->THEME_ELDY_USE_CHECKED) || $user->conf->THEME_ELDY_USE_CHECKED === '0') ? '' : ($user->conf->THEME_ELDY_USE_CHECKED === '1' ? 'e6edf0' : $user->conf->THEME_ELDY_USE_CHECKED));
  177. }
  178. // Set text color to black or white
  179. $colorbackhmenu1 = join(',', colorStringToArray($colorbackhmenu1)); // Normalize value to 'x,y,z'
  180. $tmppart = explode(',', $colorbackhmenu1);
  181. $tmpval = (!empty($tmppart[0]) ? $tmppart[0] : 0) + (!empty($tmppart[1]) ? $tmppart[1] : 0) + (!empty($tmppart[2]) ? $tmppart[2] : 0);
  182. if ($tmpval <= 460) {
  183. $colortextbackhmenu = 'FFFFFF';
  184. } else {
  185. $colortextbackhmenu = '000000';
  186. }
  187. $colorbackvmenu1 = join(',', colorStringToArray($colorbackvmenu1)); // Normalize value to 'x,y,z'
  188. $tmppart = explode(',', $colorbackvmenu1);
  189. $tmpval = (!empty($tmppart[0]) ? $tmppart[0] : 0) + (!empty($tmppart[1]) ? $tmppart[1] : 0) + (!empty($tmppart[2]) ? $tmppart[2] : 0);
  190. if ($tmpval <= 460) {
  191. $colortextbackvmenu = 'FFFFFF';
  192. } else {
  193. $colortextbackvmenu = '000000';
  194. }
  195. $colortopbordertitle1 = join(',', colorStringToArray($colortopbordertitle1)); // Normalize value to 'x,y,z'
  196. $colorbacktitle1 = join(',', colorStringToArray($colorbacktitle1)); // Normalize value to 'x,y,z'
  197. $tmppart = explode(',', $colorbacktitle1);
  198. if ($colortexttitle == '') {
  199. $tmpval = (!empty($tmppart[0]) ? $tmppart[0] : 0) + (!empty($tmppart[1]) ? $tmppart[1] : 0) + (!empty($tmppart[2]) ? $tmppart[2] : 0);
  200. if ($tmpval <= 460) {
  201. $colortexttitle = 'FFFFFF'; $colorshadowtitle = '888888';
  202. } else {
  203. $colortexttitle = '000000'; $colorshadowtitle = 'FFFFFF';
  204. }
  205. } else {
  206. $colorshadowtitle = '888888';
  207. }
  208. $colorbacktabcard1 = join(',', colorStringToArray($colorbacktabcard1)); // Normalize value to 'x,y,z'
  209. $tmppart = explode(',', $colorbacktabcard1);
  210. $tmpval = (!empty($tmppart[0]) ? $tmppart[0] : 0) + (!empty($tmppart[1]) ? $tmppart[1] : 0) + (!empty($tmppart[2]) ? $tmppart[2] : 0);
  211. if ($tmpval <= 460) {
  212. $colortextbacktab = 'FFFFFF';
  213. } else {
  214. $colortextbacktab = '000000';
  215. }
  216. // Format color value to match expected format (may be 'FFFFFF' or '255,255,255')
  217. $colorbackhmenu1 = join(',', colorStringToArray($colorbackhmenu1));
  218. $colorbackvmenu1 = join(',', colorStringToArray($colorbackvmenu1));
  219. $colorbacktitle1 = join(',', colorStringToArray($colorbacktitle1));
  220. $colorbacktabcard1 = join(',', colorStringToArray($colorbacktabcard1));
  221. $colorbacktabactive = join(',', colorStringToArray($colorbacktabactive));
  222. $colorbacklineimpair1 = join(',', colorStringToArray($colorbacklineimpair1));
  223. $colorbacklineimpair2 = join(',', colorStringToArray($colorbacklineimpair2));
  224. $colorbacklinepair1 = join(',', colorStringToArray($colorbacklinepair1));
  225. $colorbacklinepair2 = join(',', colorStringToArray($colorbacklinepair2));
  226. if ($colorbacklinepairhover != '') {
  227. $colorbacklinepairhover = join(',', colorStringToArray($colorbacklinepairhover));
  228. }
  229. if ($colorbacklinepairchecked != '') {
  230. $colorbacklinepairchecked = join(',', colorStringToArray($colorbacklinepairchecked));
  231. }
  232. $colorbackbody = join(',', colorStringToArray($colorbackbody));
  233. $colortexttitlenotab = join(',', colorStringToArray($colortexttitlenotab));
  234. $colortexttitle = join(',', colorStringToArray($colortexttitle));
  235. $colortext = join(',', colorStringToArray($colortext));
  236. $colortextlink = join(',', colorStringToArray($colortextlink));
  237. $nbtopmenuentries = $menumanager->showmenu('topnb');
  238. $nbtopmenuentriesreal = $nbtopmenuentries;
  239. if ($conf->browser->layout == 'phone') {
  240. $nbtopmenuentries = max($nbtopmenuentries, 10);
  241. }
  242. $minwidthtmenu = 66; /* minimum width for one top menu entry */
  243. $heightmenu = 50; /* height of top menu, part with image */
  244. $heightmenu2 = 49; /* height of top menu, part with login */
  245. $disableimages = 0;
  246. $maxwidthloginblock = 180;
  247. if (getDolGlobalInt('THEME_TOPMENU_DISABLE_IMAGE') == 1) {
  248. $disableimages = 1; $maxwidthloginblock = $maxwidthloginblock + 50; $minwidthtmenu = 0;
  249. }
  250. if (getDolGlobalString('MAIN_USE_TOP_MENU_QUICKADD_DROPDOWN')) {
  251. $maxwidthloginblock = $maxwidthloginblock + 55;
  252. }
  253. if (getDolGlobalString('MAIN_USE_TOP_MENU_SEARCH_DROPDOWN')) {
  254. $maxwidthloginblock = $maxwidthloginblock + 55;
  255. }
  256. if (!empty($conf->bookmark->enabled)) {
  257. $maxwidthloginblock = $maxwidthloginblock + 55;
  258. }
  259. print '/*'."\n";
  260. print 'colorbackbody='.$colorbackbody."\n";
  261. print 'colorbackvmenu1='.$colorbackvmenu1."\n";
  262. print 'colorbackhmenu1='.$colorbackhmenu1."\n";
  263. print 'colorbacktitle1='.$colorbacktitle1."\n";
  264. print 'colorbacklineimpair1='.$colorbacklineimpair1."\n";
  265. print 'colorbacklineimpair2='.$colorbacklineimpair2."\n";
  266. print 'colorbacklinepair1='.$colorbacklinepair1."\n";
  267. print 'colorbacklinepair2='.$colorbacklinepair2."\n";
  268. print 'colorbacklinepairhover='.$colorbacklinepairhover."\n";
  269. print 'colorbacklinepairchecked='.$colorbacklinepairchecked."\n";
  270. print '$colortexttitlenotab='.$colortexttitlenotab."\n";
  271. print '$colortexttitle='.$colortexttitle."\n";
  272. print '$colortext='.$colortext."\n";
  273. print '$colortextlink='.$colortextlink."\n";
  274. print '$colortextbackhmenu='.$colortextbackhmenu."\n";
  275. print '$colortextbackvmenu='.$colortextbackvmenu."\n";
  276. print 'dol_hide_topmenu='.$dol_hide_topmenu."\n";
  277. print 'dol_hide_leftmenu='.$dol_hide_leftmenu."\n";
  278. print 'dol_optimize_smallscreen='.$dol_optimize_smallscreen."\n";
  279. print 'dol_no_mouse_hover='.$dol_no_mouse_hover."\n";
  280. print 'dol_screenwidth='.(empty($_SESSION['dol_screenwidth']) ? '' : $_SESSION['dol_screenwidth'])."\n";
  281. print 'dol_screenheight='.(empty($_SESSION['dol_screenheight']) ? '' : $_SESSION['dol_screenheight'])."\n";
  282. print 'fontsize='.$fontsize."\n";
  283. print 'nbtopmenuentries='.$nbtopmenuentries."\n";
  284. print 'fontsizesmaller='.$fontsizesmaller."\n";
  285. print 'topMenuFontSize='.$topMenuFontSize."\n";
  286. print 'toolTipBgColor='.$toolTipBgColor."\n";
  287. print 'toolTipFontColor='.$toolTipFontColor."\n";
  288. print 'conf->global->THEME_SATURATE_RATIO='.(!getDolGlobalString('THEME_SATURATE_RATIO') ? '' : $conf->global->THEME_SATURATE_RATIO)." (must be between 0 and 1)\n";
  289. print '*/'."\n";
  290. // Include the global.inc.php that include the badges, btn, info-box, dropdown, progress...
  291. require __DIR__.'/global.inc.php';
  292. if (is_object($db)) {
  293. $db->close();
  294. }