dolibarr  19.0.0-dev
usergroups.lib.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2006-2012 Laurent Destailleur <eldy@users.sourceforge.net>
3  * Copyright (C) 2010-2017 Regis Houssin <regis.houssin@inodbox.com>
4  * Copyright (C) 2015 Alexandre Spangaro <aspangaro@open-dsi.fr>
5  * Copyright (C) 2018 Ferran Marcet <fmarcet@2byte.es>
6  * Copyright (C) 2021 Anthony Berton <bertonanthony@gmail.com>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <https://www.gnu.org/licenses/>.
20  * or see https://www.gnu.org/
21  */
22 
23 
35 function user_prepare_head(User $object)
36 {
37  global $langs, $conf, $user, $db;
38 
39  $langs->load("users");
40 
41  $canreadperms = true;
42  if (!empty($conf->global->MAIN_USE_ADVANCED_PERMS)) {
43  $canreadperms = ($user->admin || ($user->id != $object->id && $user->hasRight('user', 'user_advance', 'readperms')) || ($user->id == $object->id && $user->hasRight('user', 'self_advance', 'readperms')));
44  }
45 
46  $h = 0;
47  $head = array();
48 
49  $head[$h][0] = DOL_URL_ROOT.'/user/card.php?id='.$object->id;
50  $head[$h][1] = $langs->trans("User");
51  $head[$h][2] = 'user';
52  $h++;
53 
54  if ((!empty($conf->ldap->enabled) && !empty($conf->global->LDAP_SYNCHRO_ACTIVE))
55  && (empty($conf->global->MAIN_DISABLE_LDAP_TAB) || !empty($user->admin))) {
56  $langs->load("ldap");
57  $head[$h][0] = DOL_URL_ROOT.'/user/ldap.php?id='.$object->id;
58  $head[$h][1] = $langs->trans("LDAPCard");
59  $head[$h][2] = 'ldap';
60  $h++;
61  }
62 
63  if ($canreadperms) {
64  $head[$h][0] = DOL_URL_ROOT.'/user/perms.php?id='.$object->id;
65  $head[$h][1] = $langs->trans("Rights").(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '<span class="badge marginleftonlyshort">'.($object->nb_rights).'</span>' : '');
66  $head[$h][2] = 'rights';
67  $h++;
68  }
69 
70  $head[$h][0] = DOL_URL_ROOT.'/user/param_ihm.php?id='.$object->id;
71  $head[$h][1] = $langs->trans("UserGUISetup");
72  $head[$h][2] = 'guisetup';
73  $h++;
74 
75  if (isModEnabled('agenda')) {
76  if (empty($conf->global->AGENDA_EXT_NB)) {
77  $conf->global->AGENDA_EXT_NB = 5;
78  }
79  $MAXAGENDA = $conf->global->AGENDA_EXT_NB;
80 
81  $i = 1;
82  $nbagenda = 0;
83  while ($i <= $MAXAGENDA) {
84  $key = $i;
85  $name = 'AGENDA_EXT_NAME_'.$object->id.'_'.$key;
86  $src = 'AGENDA_EXT_SRC_'.$object->id.'_'.$key;
87  $offsettz = 'AGENDA_EXT_OFFSETTZ_'.$object->id.'_'.$key;
88  $color = 'AGENDA_EXT_COLOR_'.$object->id.'_'.$key;
89  $i++;
90 
91  if (!empty($object->conf->$name)) {
92  $nbagenda++;
93  }
94  }
95 
96  $head[$h][0] = DOL_URL_ROOT.'/user/agenda_extsites.php?id='.$object->id;
97  $head[$h][1] = $langs->trans("ExtSites").($nbagenda ? '<span class="badge marginleftonlyshort">'.$nbagenda.'</span>' : '');
98  $head[$h][2] = 'extsites';
99  $h++;
100  }
101 
102  if (isModEnabled('clicktodial')) {
103  $head[$h][0] = DOL_URL_ROOT.'/user/clicktodial.php?id='.$object->id;
104  $head[$h][1] = $langs->trans("ClickToDial");
105  $head[$h][2] = 'clicktodial';
106  $h++;
107  }
108 
109  // Notifications
110  if ($user->socid == 0 && isModEnabled('notification')) {
111  $nbNote = 0;
112  $sql = "SELECT COUNT(n.rowid) as nb";
113  $sql .= " FROM ".MAIN_DB_PREFIX."notify_def as n";
114  $sql .= " WHERE fk_user = ".((int) $object->id);
115  $resql = $db->query($sql);
116  if ($resql) {
117  $num = $db->num_rows($resql);
118  $i = 0;
119  while ($i < $num) {
120  $obj = $db->fetch_object($resql);
121  $nbNote = $obj->nb;
122  $i++;
123  }
124  } else {
125  dol_print_error($db);
126  }
127 
128  $langs->load("mails");
129  $head[$h][0] = DOL_URL_ROOT.'/user/notify/card.php?id='.$object->id;
130  $head[$h][1] = $langs->trans("NotificationsAuto");
131  if ($nbNote > 0) {
132  $head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbNote.'</span>';
133  }
134  $head[$h][2] = 'notify';
135  $h++;
136  }
137 
138  // Show more tabs from modules
139  // Entries must be declared in modules descriptor with line
140  // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
141  // $this->tabs = array('entity:-tabname); to remove a tab
142  complete_head_from_modules($conf, $langs, $object, $head, $h, 'user');
143 
144  if ((isModEnabled('salaries') && !empty($user->rights->salaries->read))
145  || (isModEnabled('hrm') && !empty($user->rights->hrm->employee->read))
146  || (isModEnabled('expensereport') && !empty($user->rights->expensereport->lire) && ($user->id == $object->id || $user->rights->expensereport->readall))
147  || (isModEnabled('holiday') && !empty($user->rights->holiday->read) && ($user->id == $object->id || $user->rights->holiday->readall))
148  ) {
149  // Bank
150  $head[$h][0] = DOL_URL_ROOT.'/user/bank.php?id='.$object->id;
151  $head[$h][1] = $langs->trans("HRAndBank");
152  $head[$h][2] = 'bank';
153  $h++;
154  }
155 
156  // Such info on users is visible only by internal user
157  if (empty($user->socid)) {
158  // Notes
159  $nbNote = 0;
160  if (!empty($object->note_public)) {
161  $nbNote++;
162  }
163  if (!empty($object->note_private)) {
164  $nbNote++;
165  }
166  $head[$h][0] = DOL_URL_ROOT.'/user/note.php?id='.$object->id;
167  $head[$h][1] = $langs->trans("Note");
168  if ($nbNote > 0) {
169  $head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbNote.'</span>';
170  }
171  $head[$h][2] = 'note';
172  $h++;
173 
174  // Attached files
175  require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
176  require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php';
177  $upload_dir = $conf->user->dir_output."/".$object->id;
178  $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$'));
179  $nbLinks = Link::count($db, $object->element, $object->id);
180  $head[$h][0] = DOL_URL_ROOT.'/user/document.php?userid='.$object->id;
181  $head[$h][1] = $langs->trans("Documents");
182  if (($nbFiles + $nbLinks) > 0) {
183  $head[$h][1] .= '<span class="badge marginleftonlyshort">'.($nbFiles + $nbLinks).'</span>';
184  }
185  $head[$h][2] = 'document';
186  $h++;
187 
188  $head[$h][0] = DOL_URL_ROOT.'/user/info.php?id='.$object->id;
189  $head[$h][1] = $langs->trans("Info");
190  $head[$h][2] = 'info';
191  $h++;
192  }
193 
194  complete_head_from_modules($conf, $langs, $object, $head, $h, 'user', 'remove');
195 
196  return $head;
197 }
198 
205 function group_prepare_head($object)
206 {
207  global $langs, $conf, $user;
208 
209  $canreadperms = true;
210  if (!empty($conf->global->MAIN_USE_ADVANCED_PERMS)) {
211  $canreadperms = ($user->admin || $user->rights->user->group_advance->readperms);
212  }
213 
214  $h = 0;
215  $head = array();
216 
217  $head[$h][0] = DOL_URL_ROOT.'/user/group/card.php?id='.$object->id;
218  $head[$h][1] = $langs->trans("Card");
219  $head[$h][2] = 'group';
220  $h++;
221 
222  if ((!empty($conf->ldap->enabled) && !empty($conf->global->LDAP_SYNCHRO_ACTIVE))
223  && (empty($conf->global->MAIN_DISABLE_LDAP_TAB) || !empty($user->admin))) {
224  $langs->load("ldap");
225  $head[$h][0] = DOL_URL_ROOT.'/user/group/ldap.php?id='.$object->id;
226  $head[$h][1] = $langs->trans("LDAPCard");
227  $head[$h][2] = 'ldap';
228  $h++;
229  }
230 
231  if ($canreadperms) {
232  $head[$h][0] = DOL_URL_ROOT.'/user/group/perms.php?id='.$object->id;
233  $head[$h][1] = $langs->trans("GroupRights").'<span class="badge marginleftonlyshort">'.($object->nb_rights).'</span>';
234  $head[$h][2] = 'rights';
235  $h++;
236  }
237 
238  // Show more tabs from modules
239  // Entries must be declared in modules descriptor with line
240  // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
241  // $this->tabs = array('entity:-tabname); to remove a tab
242  complete_head_from_modules($conf, $langs, $object, $head, $h, 'group');
243 
244  complete_head_from_modules($conf, $langs, $object, $head, $h, 'group', 'remove');
245 
246  return $head;
247 }
248 
255 {
256  global $langs, $conf, $user, $db;
257 
258  $extrafields = new ExtraFields($db);
259  $extrafields->fetch_name_optionals_label('user');
260  $extrafields->fetch_name_optionals_label('usergroup');
261 
262  $langs->load("users");
263  $h = 0;
264  $head = array();
265 
266  $head[$h][0] = DOL_URL_ROOT.'/admin/user.php';
267  $head[$h][1] = $langs->trans("Parameters");
268  $head[$h][2] = 'card';
269  $h++;
270 
271  $head[$h][0] = DOL_URL_ROOT.'/admin/usergroup.php';
272  $head[$h][1] = $langs->trans("Group");
273  $head[$h][2] = 'usergroupcard';
274  $h++;
275 
276  $head[$h][0] = DOL_URL_ROOT.'/user/admin/user_extrafields.php';
277  $head[$h][1] = $langs->trans("ExtraFields")." (".$langs->trans("Users").")";
278  $nbExtrafields = $extrafields->attributes['user']['count'];
279  if ($nbExtrafields > 0) {
280  $head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbExtrafields.'</span>';
281  }
282  $head[$h][2] = 'attributes';
283  $h++;
284 
285  $head[$h][0] = DOL_URL_ROOT.'/user/admin/group_extrafields.php';
286  $head[$h][1] = $langs->trans("ExtraFields")." (".$langs->trans("Groups").")";
287  $nbExtrafields = $extrafields->attributes['usergroup']['count'];
288  if ($nbExtrafields > 0) {
289  $head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbExtrafields.'</span>';
290  }
291  $head[$h][2] = 'attributes_group';
292  $h++;
293 
294  // Show more tabs from modules
295  // Entries must be declared in modules descriptor with line
296  // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
297  // $this->tabs = array('entity:-tabname); to remove a tab
298  complete_head_from_modules($conf, $langs, null, $head, $h, 'useradmin');
299 
300  complete_head_from_modules($conf, $langs, null, $head, $h, 'useradmin', 'remove');
301 
302  return $head;
303 }
304 
313 function showSkins($fuser, $edit = 0, $foruserprofile = false)
314 {
315  global $conf, $langs, $db, $form;
316 
317  require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
318 
319  $formother = new FormOther($db);
320 
321  $dirthemes = array('/theme');
322  if (!empty($conf->modules_parts['theme'])) { // Using this feature slow down application
323  foreach ($conf->modules_parts['theme'] as $reldir) {
324  $dirthemes = array_merge($dirthemes, (array) ($reldir.'theme'));
325  }
326  }
327  $dirthemes = array_unique($dirthemes);
328  // Now dir_themes=array('/themes') or dir_themes=array('/theme','/mymodule/theme')
329 
330  $selected_theme = '';
331  if (empty($foruserprofile)) {
332  $selected_theme = $conf->global->MAIN_THEME;
333  } else {
334  $selected_theme = ((is_object($fuser) && !empty($fuser->conf->MAIN_THEME)) ? $fuser->conf->MAIN_THEME : '');
335  }
336 
337  $hoverdisabled = '';
338  if (empty($foruserprofile)) {
339  $hoverdisabled = (isset($conf->global->THEME_ELDY_USE_HOVER) && $conf->global->THEME_ELDY_USE_HOVER == '0');
340  } else {
341  $hoverdisabled = (is_object($fuser) ? (empty($fuser->conf->THEME_ELDY_USE_HOVER) || $fuser->conf->THEME_ELDY_USE_HOVER == '0') : '');
342  }
343 
344  $checkeddisabled = '';
345  if (empty($foruserprofile)) {
346  $checkeddisabled = (isset($conf->global->THEME_ELDY_USE_CHECKED) && $conf->global->THEME_ELDY_USE_CHECKED == '0');
347  } else {
348  $checkeddisabled = (is_object($fuser) ? (empty($fuser->conf->THEME_ELDY_USE_CHECKED) || $fuser->conf->THEME_ELDY_USE_CHECKED == '0') : '');
349  }
350 
351  $colspan = 2;
352  if ($foruserprofile) {
353  $colspan = 4;
354  }
355 
356  $thumbsbyrow = 6;
357  print '<div class="div-table-responsive-no-min">';
358  print '<table class="noborder centpercent'.($edit ? ' editmodeforshowskin' : '').'">';
359 
360  // Title
361  if ($foruserprofile) {
362  print '<tr class="liste_titre"><th class="titlefieldmiddle">'.$langs->trans("Parameter").'</th><th>'.$langs->trans("DefaultValue").'</th>';
363  print '<th colspan="2">&nbsp;</th>';
364  print '</tr>';
365 
366  print '<tr>';
367  print '<td>'.$langs->trans("DefaultSkin").'</td>';
368  print '<td>'.$conf->global->MAIN_THEME.'</td>';
369  print '<td class="nowrap left"><input id="check_MAIN_THEME" name="check_MAIN_THEME"'.($edit ? '' : ' disabled').' type="checkbox" '.($selected_theme ? " checked" : "").'> <label for="check_MAIN_THEME">'.$langs->trans("UsePersonalValue").'</label></td>';
370  print '<td>&nbsp;</td>';
371  print '</tr>';
372  } else {
373  $dirthemestring = '';
374  foreach ($dirthemes as $dirtheme) {
375  $dirthemestring .= '"'.$dirtheme.'" ';
376  }
377 
378  print '<tr class="liste_titre"><th class="titlefieldmiddle">';
379  print $form->textwithpicto($langs->trans("DefaultSkin"), $langs->trans("ThemeDir").' : '.$dirthemestring);
380  print '</th>';
381  print '<th class="right">';
382  $url = 'https://www.dolistore.com/9-skins';
383  print '<a href="'.$url.'" target="_blank" rel="noopener noreferrer external">';
384  print $langs->trans('DownloadMoreSkins');
385  print img_picto('', 'globe', 'class="paddingleft"');
386  print '</a>';
387  print '</th></tr>';
388  }
389 
390  print '<tr><td colspan="'.$colspan.'" class="center">';
391 
392  if (!empty($conf->global->MAIN_FORCETHEME)) {
393  $langs->load("errors");
394  print $langs->trans("WarningThemeForcedTo", $conf->global->MAIN_FORCETHEME);
395  }
396 
397  print '<table class="nobordernopadding centpercent"><tr><td><div class="center">';
398 
399  $i = 0;
400  foreach ($dirthemes as $dir) {
401  //print $dirroot.$dir;exit;
402  $dirtheme = dol_buildpath($dir, 0); // This include loop on $conf->file->dol_document_root
403  $urltheme = dol_buildpath($dir, 1);
404 
405  if (is_dir($dirtheme)) {
406  $handle = opendir($dirtheme);
407  if (is_resource($handle)) {
408  while (($subdir = readdir($handle)) !== false) {
409  if (is_dir($dirtheme."/".$subdir) && substr($subdir, 0, 1) <> '.'
410  && substr($subdir, 0, 3) <> 'CVS' && !preg_match('/common|phones/i', $subdir)) {
411  // Disable not stable themes (dir ends with _exp or _dev)
412  if (getDolGlobalInt('MAIN_FEATURES_LEVEL') < 2 && preg_match('/_dev$/i', $subdir)) {
413  continue;
414  }
415  if (getDolGlobalInt('MAIN_FEATURES_LEVEL') < 1 && preg_match('/_exp$/i', $subdir)) {
416  continue;
417  }
418 
419  print '<div class="inline-block" style="margin-top: 10px; margin-bottom: 10px; margin-right: 20px; margin-left: 20px;">';
420  $file = $dirtheme."/".$subdir."/thumb.png";
421  $url = $urltheme."/".$subdir."/thumb.png";
422  if (!file_exists($file)) {
423  $url = DOL_URL_ROOT.'/public/theme/common/nophoto.png';
424  }
425  print '<a href="'.$_SERVER["PHP_SELF"].($edit ? '?action=edit&token='.newToken().'&mode=template&theme=' : '?theme=').$subdir.(GETPOST('optioncss', 'alpha', 1) ? '&optioncss='.GETPOST('optioncss', 'alpha', 1) : '').($fuser ? '&id='.$fuser->id : '').'" style="font-weight: normal;" alt="'.$langs->trans("Preview").'">';
426  if ($subdir == $conf->global->MAIN_THEME) {
427  $title = $langs->trans("ThemeCurrentlyActive");
428  } else {
429  $title = $langs->trans("ShowPreview");
430  }
431  print '<img class="img-skinthumb shadow" src="'.$url.'" alt="'.dol_escape_htmltag($title).'" title="'.dol_escape_htmltag($title).'" style="border: none; margin-bottom: 5px;">';
432  print '</a><br>';
433  if ($subdir == $selected_theme) {
434  print '<input '.($edit ? '' : 'disabled').' type="radio" class="themethumbs" style="border: 0px;" id="main_theme'.$subdir.'" checked name="main_theme" value="'.$subdir.'"><label for="main_theme'.$subdir.'"> <b>'.$subdir.'</b></label>';
435  } else {
436  print '<input '.($edit ? '' : 'disabled').' type="radio" class="themethumbs" style="border: 0px;" id="main_theme'.$subdir.'" name="main_theme" value="'.$subdir.'"><label for="main_theme'.$subdir.'"> '.$subdir.'</label>';
437  }
438  print '</div>';
439 
440  $i++;
441  }
442  }
443  }
444  }
445  }
446 
447  print '</div></td></tr></table>';
448 
449  print '</td></tr>';
450 
451  // Set variables of theme
452  $colorbackhmenu1 = '';
453  $colorbackvmenu1 = '';
454  $colortexttitlenotab = '';
455  $colortexttitlelink = '';
456  $colorbacktitle1 = '';
457  $colortexttitle = '';
458  $colorbacklineimpair1 = '';
459  $colorbacklineimpair2 = '';
460  $colorbacklinepair1 = '';
461  $colorbacklinepair2 = '';
462  $colortextlink = '';
463  $colorbacklinepairhover = '';
464  $colorbacklinepairhover = '';
465  $colorbacklinepairchecked = '';
466  $butactionbg = '';
467  $textbutaction = '';
468  // Set the variables with the default value
469  if (file_exists(DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php')) {
470  include DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php';
471  }
472 
473  // Dark mode
474  if ($foruserprofile) {
475  //Nothing
476  } else {
477  $listofdarkmodes = array(
478  '0' => $langs->trans("AlwaysDisabled"),
479  '1' => $langs->trans("AccordingToBrowser"),
480  '2' => $langs->trans("AlwaysEnabled")
481  );
482  print '<tr class="oddeven">';
483  print '<td>'.$langs->trans("DarkThemeMode").'</td>';
484  print '<td colspan="'.($colspan - 1).'">';
485  if ($edit) {
486  print $form->selectarray('THEME_DARKMODEENABLED', $listofdarkmodes, isset($conf->global->THEME_DARKMODEENABLED) ? $conf->global->THEME_DARKMODEENABLED : 0);
487  } else {
488  print $listofdarkmodes[isset($conf->global->THEME_DARKMODEENABLED) ? $conf->global->THEME_DARKMODEENABLED : 0];
489  }
490  print $form->textwithpicto('', $langs->trans("DoesNotWorkWithAllThemes"));
491  print '</tr>';
492  }
493 
494 
495  // TopMenuDisableImages
496  if ($foruserprofile) {
497  /*
498  print '<tr class="oddeven">';
499  print '<td>'.$langs->trans("TopMenuDisableImages").'</td>';
500  print '<td>'.($conf->global->THEME_TOPMENU_DISABLE_IMAGE?$conf->global->THEME_TOPMENU_DISABLE_IMAGE:$langs->trans("Default")).'</td>';
501  print '<td class="left" class="nowrap" width="20%"><input name="check_THEME_TOPMENU_DISABLE_IMAGE" id="check_THEME_TOPMENU_DISABLE_IMAGE" type="checkbox" '.(!empty($object->conf->THEME_ELDY_TEXTLINK)?" checked":"");
502  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
503  print '> '.$langs->trans("UsePersonalValue").'</td>';
504  print '<td>';
505  if ($edit)
506  {
507  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_TOPMENU_DISABLE_IMAGE,array()),''),'THEME_TOPMENU_DISABLE_IMAGE','',1).' ';
508  }
509  else
510  {
511  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_TOPMENU_DISABLE_IMAGE,array()),'');
512  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
513  else print '';
514  }
515  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
516  print '</td>';*/
517  } else {
518  $listoftopmenumodes = array(
519  '0' => $langs->transnoentitiesnoconv("IconAndText"),
520  '1' => $langs->transnoentitiesnoconv("TextOnly"),
521  '2' => $langs->transnoentitiesnoconv("IconOnlyAllTextsOnHover"),
522  '3' => $langs->transnoentitiesnoconv("IconOnlyTextOnHover"),
523  '4' => $langs->transnoentitiesnoconv("IconOnly"),
524  );
525  print '<tr class="oddeven">';
526  print '<td>'.$langs->trans("TopMenuDisableImages").'</td>';
527  print '<td colspan="'.($colspan - 1).'">';
528  if ($edit) {
529  //print ajax_constantonoff('THEME_TOPMENU_DISABLE_IMAGE', array(), null, 0, 0, 1);
530  print $form->selectarray('THEME_TOPMENU_DISABLE_IMAGE', $listoftopmenumodes, isset($conf->global->THEME_TOPMENU_DISABLE_IMAGE)?$conf->global->THEME_TOPMENU_DISABLE_IMAGE:0, 0, 0, 0, '', 0, 0, 0, '', 'widthcentpercentminusx maxwidth500');
531  } else {
532  $listoftopmenumodes[$conf->global->THEME_TOPMENU_DISABLE_IMAGE];
533  //print yn($conf->global->THEME_TOPMENU_DISABLE_IMAGE);
534  }
535  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes"));
536  print '</td>';
537  print '</tr>';
538  }
539 
540  // Show logo
541  if ($foruserprofile) {
542  // Nothing
543  } else {
544  // Show logo
545  print '<tr class="oddeven"><td class="titlefieldmiddle">'.$langs->trans("EnableShowLogo").'</td>';
546  print '<td colspan="'.($colspan - 1).'" class="valignmiddle">';
547  if ($edit) {
548  print ajax_constantonoff('MAIN_SHOW_LOGO', array(), null, 0, 0, 1);
549  //print $form->selectyesno('MAIN_SHOW_LOGO', $conf->global->MAIN_SHOW_LOGO, 1);
550  } else {
551  print yn($conf->global->MAIN_SHOW_LOGO);
552  }
553  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes"), 1, 'help', 'inline-block');
554  print '</td>';
555  print '</tr>';
556  /*
557  print '<tr class="oddeven"><td>'.$langs->trans("EnableShowLogo").'</td><td>' . yn($conf->global->MAIN_SHOW_LOGO) . '</td>';
558  print "</tr>";*/
559  }
560 
561  // BorderTableActive
562  if ($foruserprofile) {
563  } else {
564  print '<tr class="oddeven">';
565  print '<td>'.$langs->trans("UseBorderOnTable").'</td>';
566  print '<td colspan="'.($colspan - 1).'" class="valignmiddle">';
567  if ($edit) {
568  print ajax_constantonoff('THEME_ELDY_USEBORDERONTABLE', array(), null, 0, 0, 1);
569  //print $form->selectyesno('THEME_ELDY_USEBORDERONTABLE', $conf->global->THEME_ELDY_USEBORDERONTABLE, 1);
570  } else {
571  print yn($conf->global->THEME_ELDY_USEBORDERONTABLE);
572  }
573  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes"), 1, 'help', 'inline-block');
574  print '</td>';
575  print '</tr>';
576  }
577 
578  // Background color THEME_ELDY_BACKBODY
579  if ($foruserprofile) {
580  /*
581  print '<tr class="oddeven">';
582  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
583  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TOPMENU_BACK1:$langs->trans("Default")).'</td>';
584  print '<td class="nowrap left" width="20%"><input name="check_THEME_ELDY_TOPMENU_BACK1" id="check_THEME_ELDY_TOPMENU_BACK1" type="checkbox" '.(!empty($object->conf->THEME_ELDY_TOPMENU_BACK1)?" checked":"");
585  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
586  print '> '.$langs->trans("UsePersonalValue").'</td>';
587  print '<td>';
588  if ($edit)
589  {
590  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''),'THEME_ELDY_TOPMENU_BACK1','',1).' ';
591  }
592  else
593  {
594  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),'');
595  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
596  else print '';
597  }
598  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
599  print '</td>';*/
600  } else {
601  $default = 'ffffff';
602  print '<tr class="oddeven">';
603  print '<td>'.$langs->trans("BackgroundColor").'</td>';
604  print '<td colspan="'.($colspan - 1).'">';
605  //var_dump($conf->global->THEME_ELDY_BACKBODY);
606  if ($edit) {
607  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_BACKBODY) ? $conf->global->THEME_ELDY_BACKBODY : ''), array()), ''), 'THEME_ELDY_BACKBODY', '', 1, '', '', 'colorbackbody', $default).' ';
608  } else {
609  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BACKBODY, array()), '');
610  if ($color) {
611  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
612  } else {
613  print $langs->trans("Default");
614  }
615  }
616  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
617  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
618  print '</td>';
619  print '</tr>';
620  }
621 
622  // TopMenuBackgroundColor
623  if ($foruserprofile) {
624  /*
625  print '<tr class="oddeven">';
626  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
627  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TOPMENU_BACK1:$langs->trans("Default")).'</td>';
628  print '<td class="nowrap left" width="20%"><input name="check_THEME_ELDY_TOPMENU_BACK1" id="check_THEME_ELDY_TOPMENU_BACK1" type="checkbox" '.(!empty($object->conf->THEME_ELDY_TOPMENU_BACK1)?" checked":"");
629  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
630  print '> '.$langs->trans("UsePersonalValue").'</td>';
631  print '<td>';
632  if ($edit)
633  {
634  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''),'THEME_ELDY_TOPMENU_BACK1','',1).' ';
635  }
636  else
637  {
638  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),'');
639  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
640  else print '';
641  }
642  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
643  print '</td>';*/
644  } else {
645  $default = (empty($colorbackhmenu1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbackhmenu1)));
646 
647  print '<tr class="oddeven">';
648  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
649  print '<td colspan="'.($colspan - 1).'">';
650  if ($edit) {
651  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_TOPMENU_BACK1) ? $conf->global->THEME_ELDY_TOPMENU_BACK1 : ''), array()), ''), 'THEME_ELDY_TOPMENU_BACK1', '', 1, '', '', 'colorbackhmenu1', $default).' ';
652  } else {
653  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1, array()), '');
654  if ($color) {
655  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
656  } else {
657  print $langs->trans("Default");
658  }
659  }
660  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
661  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
662  print '</td>';
663  print '</tr>';
664  }
665 
666  // LeftMenuBackgroundColor
667  if ($foruserprofile) {
668  /*
669  print '<tr class="oddeven">';
670  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
671  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_VERMENU_BACK1:$langs->trans("Default")).'</td>';
672  print '<td class="nowrap left" width="20%"><input name="check_THEME_ELDY_VERMENU_BACK1" id="check_THEME_ELDY_VERMENU_BACK1" type="checkbox" '.(!empty($object->conf->THEME_ELDY_TOPMENU_BACK1)?" checked":"");
673  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
674  print '> '.$langs->trans("UsePersonalValue").'</td>';
675  print '<td>';
676  if ($edit)
677  {
678  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_VERMENU_BACK1,array()),''),'THEME_ELDY_VERMENU_BACK1','',1).' ';
679  }
680  else
681  {
682  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_VERMENU_BACK1,array()),'');
683  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
684  else print '';
685  }
686  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
687  print '</td>';*/
688  } else {
689  $default = (empty($colorbackvmenu1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbackvmenu1)));
690 
691  print '<tr class="oddeven">';
692  print '<td>'.$langs->trans("LeftMenuBackgroundColor").'</td>';
693  print '<td colspan="'.($colspan - 1).'">';
694  if ($edit) {
695  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_VERMENU_BACK1) ? $conf->global->THEME_ELDY_VERMENU_BACK1 : ''), array()), ''), 'THEME_ELDY_VERMENU_BACK1', '', 1, '', '', 'colorbackvmenu1', $default).' ';
696  } else {
697  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_VERMENU_BACK1, array()), '');
698  if ($color) {
699  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
700  } else {
701  print $langs->trans("Default");
702  }
703  }
704  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
705  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
706  print '</td>';
707  print '</tr>';
708  }
709 
710  // TextTitleColor for title of Pages
711  if ($foruserprofile) {
712  } else {
713  $default = (empty($colortexttitlenotab) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortexttitlenotab)));
714 
715  print '<tr class="oddeven">';
716  print '<td>'.$langs->trans("TextTitleColor").'</td>';
717  print '<td colspan="'.($colspan - 1).'">';
718  if ($edit) {
719  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_TEXTTITLENOTAB) ? $conf->global->THEME_ELDY_TEXTTITLENOTAB : ''), array()), ''), 'THEME_ELDY_TEXTTITLENOTAB', '', 1, '', '', 'colortexttitlenotab', $default).' ';
720  } else {
721  print $formother->showColor($conf->global->THEME_ELDY_TEXTTITLENOTAB, $langs->trans("Default"));
722  }
723  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #'.$default.'">'.$default.'</span></strong> ';
724  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
725  print '</td>';
726 
727  print '</tr>';
728  }
729 
730  // BackgroundTableTitleColor
731  if ($foruserprofile) {
732  } else {
733  $default = (empty($colorbacktitle1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacktitle1)));
734 
735  print '<tr class="oddeven">';
736  print '<td>'.$langs->trans("BackgroundTableTitleColor").'</td>';
737  print '<td colspan="'.($colspan - 1).'">';
738  if ($edit) {
739  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_BACKTITLE1) ? $conf->global->THEME_ELDY_BACKTITLE1 : ''), array()), ''), 'THEME_ELDY_BACKTITLE1', '', 1, '', '', 'colorbacktitle1', $default).' ';
740  } else {
741  print $formother->showColor($conf->global->THEME_ELDY_BACKTITLE1, $langs->trans("Default"));
742  }
743  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> '; // $colorbacktitle1 in CSS
744  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
745  print '</td>';
746 
747  print '</tr>';
748  }
749 
750  // TextTitleColor
751  if ($foruserprofile) {
752  } else {
753  $default = (empty($colortexttitle) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortexttitle)));
754 
755  print '<tr class="oddeven">';
756  print '<td>'.$langs->trans("BackgroundTableTitleTextColor").'</td>';
757  print '<td colspan="'.($colspan - 1).'">';
758  if ($edit) {
759  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_TEXTTITLE) ? $conf->global->THEME_ELDY_TEXTTITLE : ''), array()), ''), 'THEME_ELDY_TEXTTITLE', '', 1, '', '', 'colortexttitle', $default).' ';
760  } else {
761  print $formother->showColor($conf->global->THEME_ELDY_TEXTTITLE, $langs->trans("Default"));
762  }
763  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #'.$default.'">'.$default.'</span></strong> ';
764  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
765  print '</td>';
766 
767  print '</tr>';
768  }
769 
770  // TextTitleLinkColor
771  if ($foruserprofile) {
772  } else {
773  $default = (empty($colortexttitlelink) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortexttitlelink)));
774 
775  print '<tr class="oddeven">';
776  print '<td>'.$langs->trans("BackgroundTableTitleTextlinkColor").'</td>';
777  print '<td colspan="'.($colspan - 1).'">';
778  if ($edit) {
779  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_TEXTTITLELINK) ? $conf->global->THEME_ELDY_TEXTTITLELINK : ''), array()), ''), 'THEME_ELDY_TEXTTITLELINK', '', 1, '', '', 'colortexttitlelink', $default).' ';
780  } else {
781  print $formother->showColor($conf->global->THEME_ELDY_TEXTTITLELINK, $langs->trans("Default"));
782  }
783  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #'.$default.'">'.$default.'</span></strong> ';
784  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
785  print '</span>';
786  print '</td>';
787 
788  print '</tr>';
789  }
790 
791  // BackgroundTableLineOddColor
792  if ($foruserprofile) {
793  } else {
794  $default = (empty($colorbacklineimpair1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklineimpair1)));
795 
796  print '<tr class="oddeven">';
797  print '<td>'.$langs->trans("BackgroundTableLineOddColor").'</td>';
798  print '<td colspan="'.($colspan - 1).'">';
799  if ($edit) {
800  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_LINEIMPAIR1) ? $conf->global->THEME_ELDY_LINEIMPAIR1 : ''), array()), ''), 'THEME_ELDY_LINEIMPAIR1', '', 1, '', '', 'colorbacklineimpair2', $default).' ';
801  } else {
802  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_LINEIMPAIR1, array()), '');
803  if ($color) {
804  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
805  } else {
806  print $langs->trans("Default");
807  }
808  }
809  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
810  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
811  print '</td>';
812  print '</tr>';
813  }
814 
815  // BackgroundTableLineEvenColor
816  if ($foruserprofile) {
817  } else {
818  $default = (empty($colorbacklinepair1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepair1)));
819 
820  print '<tr class="oddeven">';
821  print '<td>'.$langs->trans("BackgroundTableLineEvenColor").'</td>';
822  print '<td colspan="'.($colspan - 1).'">';
823  if ($edit) {
824  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_LINEPAIR1) ? $conf->global->THEME_ELDY_LINEPAIR1 : ''), array()), ''), 'THEME_ELDY_LINEPAIR1', '', 1, '', '', 'colorbacklinepair2', $default).' ';
825  } else {
826  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_LINEPAIR1, array()), '');
827  if ($color) {
828  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
829  } else {
830  print $langs->trans("Default");
831  }
832  }
833  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
834  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
835  print '</td>';
836  print '</tr>';
837  }
838 
839  // Text LinkColor
840  if ($foruserprofile) {
841  /*
842  print '<tr class="oddeven">';
843  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
844  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TEXTLINK:$langs->trans("Default")).'</td>';
845  print '<td class="nowrap left" width="20%"><input name="check_THEME_ELDY_TEXTLINK" id="check_THEME_ELDY_TEXTLINK" type="checkbox" '.(!empty($object->conf->THEME_ELDY_TEXTLINK)?" checked":"");
846  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
847  print '> '.$langs->trans("UsePersonalValue").'</td>';
848  print '<td>';
849  if ($edit)
850  {
851  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTLINK,array()),''),'THEME_ELDY_TEXTLINK','',1).' ';
852  }
853  else
854  {
855  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTLINK,array()),'');
856  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
857  else print '';
858  }
859  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
860  print '</td>';*/
861  } else {
862  $default = (empty($colortextlink) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortextlink)));
863 
864  print '<tr class="oddeven">';
865  print '<td>'.$langs->trans("LinkColor").'</td>';
866  print '<td colspan="'.($colspan - 1).'">';
867  if ($edit) {
868  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_TEXTLINK) ? $conf->global->THEME_ELDY_TEXTLINK : ''), array()), ''), 'THEME_ELDY_TEXTLINK', '', 1, '', '', 'colortextlink', $default).' ';
869  } else {
870  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTLINK, array()), '');
871  if ($color) {
872  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
873  } else {
874  //print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$defaultcolor.'" value="'.$langs->trans("Default").'">';
875  //print '<span style="color: #000078">'.$langs->trans("Default").'</span>';
876  print $langs->trans("Default");
877  }
878  }
879  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #'.$default.'">'.$default.'</span></strong> ';
880  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
881  print '</td>';
882  print '</tr>';
883  }
884 
885  // Use Hover
886  if ($foruserprofile) {
887  /* Must first change option to choose color of highlight instead of yes or no.
888  print '<tr class="oddeven">';
889  print '<td>'.$langs->trans("HighlightLinesOnMouseHover").'</td>';
890  print '<td><input name="check_THEME_ELDY_USE_HOVER" disabled="disabled" type="checkbox" '.($conf->global->THEME_ELDY_USE_HOVER?" checked":"").'></td>';
891  print '<td class="nowrap left" width="20%"><input name="check_MAIN_THEME"'.($edit?'':' disabled').' type="checkbox" '.($selected_theme?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
892  print '<td><input name="check_THEME_ELDY_USE_HOVER"'.($edit?'':' disabled="disabled"').' type="checkbox" '.($hoverdisabled?"":" checked").'>';
893  print ' &nbsp; ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
894  print '</td>';
895  print '</tr>';
896  */
897  } else {
898  $default = (empty($colorbacklinepairhover) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepairhover)));
899 
900  print '<tr class="oddeven">';
901  print '<td>'.$langs->trans("HighlightLinesColor").'</td>';
902  print '<td colspan="'.($colspan - 1).'">';
903  //print '<input name="check_THEME_ELDY_USE_HOVER"'.($edit?'':' disabled').' type="checkbox" '.($hoverdisabled?"":" checked").'>';
904  //print ' &nbsp; ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
905  if ($edit) {
906  if (!empty($conf->global->THEME_ELDY_USE_HOVER) && $conf->global->THEME_ELDY_USE_HOVER == '1') {
907  $color = colorArrayToHex(colorStringToArray($colorbacklinepairhover));
908  } else {
909  $color = colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_USE_HOVER) ? $conf->global->THEME_ELDY_USE_HOVER : ''), array()), '');
910  }
911  print $formother->selectColor($color, 'THEME_ELDY_USE_HOVER', '', 1, '', '', 'colorbacklinepairhover', $default).' ';
912  } else {
913  if ($conf->global->THEME_ELDY_USE_HOVER == '1') {
914  $color = colorArrayToHex(colorStringToArray($colorbacklinepairhover));
915  } else {
916  $color = colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_USE_HOVER) ? $conf->global->THEME_ELDY_USE_HOVER : ''), array()), '');
917  }
918  if ($color) {
919  if ($color != colorArrayToHex(colorStringToArray($colorbacklinepairhover))) {
920  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
921  } else {
922  print $langs->trans("Default");
923  }
924  } else {
925  print $langs->trans("Default");
926  }
927  }
928  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
929  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
930  print '</td>';
931  }
932 
933  // Use Checked
934  if ($foruserprofile) {
935  /* Must first change option to choose color of highlight instead of yes or no.
936  print '<tr class="oddeven">';
937  print '<td>'.$langs->trans("HighlightLinesOnMouseHover").'</td>';
938  print '<td><input name="check_THEME_ELDY_USE_HOVER" disabled="disabled" type="checkbox" '.($conf->global->THEME_ELDY_USE_HOVER?" checked":"").'></td>';
939  print '<td class="nowrap left" width="20%"><input name="check_MAIN_THEME"'.($edit?'':' disabled').' type="checkbox" '.($selected_theme?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
940  print '<td><input name="check_THEME_ELDY_USE_HOVER"'.($edit?'':' disabled="disabled"').' type="checkbox" '.($hoverdisabled?"":" checked").'>';
941  print ' &nbsp; ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
942  print '</td>';
943  print '</tr>';
944  */
945  } else {
946  $default = (empty($colorbacklinepairchecked) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepairchecked)));
947 
948  print '<tr class="oddeven">';
949  print '<td>'.$langs->trans("HighlightLinesChecked").'</td>';
950  print '<td colspan="'.($colspan - 1).'">';
951  //print '<input name="check_THEME_ELDY_USE_HOVER"'.($edit?'':' disabled').' type="checkbox" '.($hoverdisabled?"":" checked").'>';
952  //print ' &nbsp; ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
953  if ($edit) {
954  if (!empty($conf->global->THEME_ELDY_USE_CHECKED) && $conf->global->THEME_ELDY_USE_CHECKED == '1') {
955  $color = 'e6edf0';
956  } else {
957  $color = colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_USE_CHECKED) ? $conf->global->THEME_ELDY_USE_CHECKED : ''), array()), '');
958  }
959  print $formother->selectColor($color, 'THEME_ELDY_USE_CHECKED', '', 1, '', '', 'colorbacklinepairchecked', $default).' ';
960  } else {
961  if ($conf->global->THEME_ELDY_USE_CHECKED == '1') {
962  $color = 'e6edf0';
963  } else {
964  $color = colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_USE_CHECKED) ? $conf->global->THEME_ELDY_USE_CHECKED : ''), array()), '');
965  }
966  if ($color) {
967  if ($color != 'e6edf0') {
968  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
969  } else {
970  print $langs->trans("Default");
971  }
972  } else {
973  print $langs->trans("Default");
974  }
975  }
976  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
977  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
978  print '</td>';
979  print '</tr>';
980  }
981 
982  // Btn action
983  if ($foruserprofile) {
984  /*
985  print '<tr class="oddeven">';
986  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
987  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_BTNACTION:$langs->trans("Default")).'</td>';
988  print '<td class="nowrap left" width="20%"><input name="check_THEME_ELDY_BTNACTION" id="check_THEME_ELDY_BTNACTION" type="checkbox" '.(!empty($object->conf->THEME_ELDY_BTNACTION)?" checked":"");
989  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
990  print '> '.$langs->trans("UsePersonalValue").'</td>';
991  print '<td>';
992  if ($edit)
993  {
994  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BTNACTION,array()),''),'THEME_ELDY_BTNACTION','',1).' ';
995  }
996  else
997  {
998  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BTNACTION,array()),'');
999  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
1000  else print '';
1001  }
1002  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
1003  print '</td>';*/
1004  } else {
1005  $default = (empty($butactionbg) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($butactionbg)));
1006 
1007  print '<tr class="oddeven">';
1008  print '<td>'.$langs->trans("BtnActionColor").'</td>';
1009  print '<td colspan="'.($colspan - 1).'">';
1010  if ($edit) {
1011  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_BTNACTION) ? $conf->global->THEME_ELDY_BTNACTION : ''), array()), ''), 'THEME_ELDY_BTNACTION', '', 1, '', '', 'butactionbg', $default).' ';
1012  } else {
1013  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BTNACTION, array()), '');
1014  if ($color) {
1015  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
1016  } else {
1017  //print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$defaultcolor.'" value="'.$langs->trans("Default").'">';
1018  //print '<span style="color: #000078">'.$langs->trans("Default").'</span>';
1019  print $langs->trans("Default");
1020  }
1021  }
1022  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #'.$default.'">'.$default.'</span></strong> ';
1023  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
1024  print '</td>';
1025  print '</tr>';
1026  }
1027 
1028  // Text btn action
1029  if ($foruserprofile) {
1030  /*
1031  print '<tr class="oddeven">';
1032  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
1033  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TEXTBTNACTION:$langs->trans("Default")).'</td>';
1034  print '<td class="nowrap left" width="20%"><input name="check_THEME_ELDY_TEXTBTNACTION" id="check_THEME_ELDY_TEXTBTNACTION" type="checkbox" '.(!empty($object->conf->THEME_ELDY_TEXTBTNACTION)?" checked":"");
1035  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
1036  print '> '.$langs->trans("UsePersonalValue").'</td>';
1037  print '<td>';
1038  if ($edit)
1039  {
1040  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTBTNACTION,array()),''),'THEME_ELDY_TEXTBTNACTION','',1).' ';
1041  }
1042  else
1043  {
1044  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BTNACTION,array()),'');
1045  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
1046  else print '';
1047  }
1048  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
1049  print '</td>';*/
1050  } else {
1051  $default = (empty($textbutaction) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($textbutaction)));
1052 
1053  print '<tr class="oddeven">';
1054  print '<td>'.$langs->trans("TextBtnActionColor").'</td>';
1055  print '<td colspan="'.($colspan - 1).'">';
1056  if ($edit) {
1057  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_TEXTBTNACTION) ? $conf->global->THEME_ELDY_TEXTBTNACTION : ''), array()), ''), 'THEME_ELDY_TEXTBTNACTION', '', 1, '', '', 'textbutaction', $default).' ';
1058  } else {
1059  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTBTNACTION, array()), '');
1060  if ($color) {
1061  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
1062  } else {
1063  //print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$defaultcolor.'" value="'.$langs->trans("Default").'">';
1064  //print '<span style="color: #000078">'.$langs->trans("Default").'</span>';
1065  print $langs->trans("Default");
1066  }
1067  }
1068  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #000">'.$default.'</span></strong> ';
1069  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
1070  print '</td>';
1071  print '</tr>';
1072  }
1073 
1074  // Use MAIN_OPTIMIZEFORTEXTBROWSER
1075  if ($foruserprofile) {
1076  //$default=yn($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER);
1077  $default = $langs->trans('No');
1078  print '<tr class="oddeven">';
1079  print '<td>'.$langs->trans("MAIN_OPTIMIZEFORTEXTBROWSER").'</td>';
1080  print '<td colspan="'.($colspan - 1).'">';
1081  //print ajax_constantonoff("MAIN_OPTIMIZEFORTEXTBROWSER", array(), null, 0, 0, 1, 0);
1082  if ($edit) {
1083  print $form->selectyesno('MAIN_OPTIMIZEFORTEXTBROWSER', (isset($fuser->conf->MAIN_OPTIMIZEFORTEXTBROWSER) ? $fuser->conf->MAIN_OPTIMIZEFORTEXTBROWSER : 0), 1);
1084  } else {
1085  if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
1086  print yn(isset($fuser->conf->MAIN_OPTIMIZEFORTEXTBROWSER) ? $fuser->conf->MAIN_OPTIMIZEFORTEXTBROWSER : 0);
1087  } else {
1088  print yn(1);
1089  if (empty($fuser->conf->MAIN_OPTIMIZEFORTEXTBROWSER)) {
1090  print ' ('.$langs->trans("ForcedByGlobalSetup").')';
1091  }
1092  }
1093  }
1094  print ' &nbsp; <span class="opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
1095  print $form->textwithpicto('', $langs->trans("MAIN_OPTIMIZEFORTEXTBROWSERDesc"));
1096  print '</td>';
1097  print '</tr>';
1098  } else {
1099  //var_dump($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER);
1100  /*
1101  $default=$langs->trans('No');
1102  print '<tr class="oddeven">';
1103  print '<td>'.$langs->trans("MAIN_OPTIMIZEFORTEXTBROWSER").'</td>';
1104  print '<td colspan="'.($colspan-1).'">';
1105  if ($edit) {
1106  print $form->selectyesno('MAIN_OPTIMIZEFORTEXTBROWSER', $conf->global->MAIN_OPTIMIZEFORTEXTBROWSER, 1);
1107  } else {
1108  print yn($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER);
1109  }
1110  print ' &nbsp; wspan class="opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
1111  print $form->textwithpicto('', $langs->trans("MAIN_OPTIMIZEFORTEXTBROWSERDesc"));
1112  print '</span>';
1113  print '</td>';
1114  print '</tr>';
1115  */
1116  }
1117 
1118 
1119  // Use MAIN_OPTIMIZEFORCOLORBLIND
1120  if ($foruserprofile) {
1121  //$default=yn($conf->global->MAIN_OPTIMIZEFORCOLORBLIND);
1122  $default = $langs->trans('No');
1123  print '<tr class="oddeven">';
1124  print '<td>'.$langs->trans("MAIN_OPTIMIZEFORCOLORBLIND").'</td>';
1125  print '<td colspan="'.($colspan - 1).'">';
1126 
1127  $colorBlindOptions = array(
1128  0 => $langs->trans('No'),
1129  'flashy' => $langs->trans('Flashy'),
1130  'protanopia' => $langs->trans('Protanopia'),
1131  'deuteranopes' => $langs->trans('Deuteranopes'),
1132  'tritanopes' => $langs->trans('Tritanopes'),
1133  );
1134 
1135  if ($edit) {
1136  print $form->selectArray('MAIN_OPTIMIZEFORCOLORBLIND', $colorBlindOptions, (isset($fuser->conf->MAIN_OPTIMIZEFORCOLORBLIND) ? $fuser->conf->MAIN_OPTIMIZEFORCOLORBLIND : 0), 0);
1137  } else {
1138  if (!empty($fuser->conf->MAIN_OPTIMIZEFORCOLORBLIND) && isset($colorBlindOptions[$fuser->conf->MAIN_OPTIMIZEFORCOLORBLIND])) {
1139  print $colorBlindOptions[$fuser->conf->MAIN_OPTIMIZEFORCOLORBLIND];
1140  } else {
1141  print yn(0);
1142  }
1143  }
1144  print ' &nbsp; <span class="opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
1145  print $form->textwithpicto('', $langs->trans("MAIN_OPTIMIZEFORCOLORBLINDDesc"));
1146  print '</td>';
1147  print '</tr>';
1148  } else {
1149  }
1150  print '</table>';
1151  print '</div>';
1152 }
ajax_constantonoff($code, $input=array(), $entity=null, $revertonoff=0, $strict=0, $forcereload=0, $marginleftonlyshort=2, $forcenoajax=0, $setzeroinsteadofdel=0, $suffix='', $mode='', $morecss='inline-block')
On/off button for constant.
Definition: ajax.lib.php:630
Class to manage standard extra fields.
Classe permettant la generation de composants html autre Only common components are here.
Class to manage Dolibarr users.
Definition: user.class.php:48
if(isModEnabled('facture') && $user->hasRight('facture', 'lire')) if((isModEnabled('fournisseur') &&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') && $user->hasRight('don', 'lire')) if(isModEnabled('tax') &&!empty($user->rights->tax->charges->lire)) if(isModEnabled('facture') &&isModEnabled('commande') && $user->hasRight("commande", "lire") &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) $sql
Social contributions to pay.
Definition: index.php:746
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:143
dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0, $nbsecondsold=0)
Scan a directory and return a list of files/directories.
Definition: files.lib.php:62
colorArrayToHex($arraycolor, $colorifnotfound='888888')
Convert an array with RGB value into hex RGB value.
colorStringToArray($stringcolor, $colorifnotfound=array(88, 88, 88))
Convert a string RGB value ('FFFFFF', '255,255,255') into an array RGB array(255,255,...
yn($yesno, $case=1, $color=0)
Return yes or no in current language.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
getDolGlobalInt($key, $default=0)
Return dolibarr global constant int value.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, $mode='add', $filterorigmodule='')
Complete or removed entries into a head array (used to build tabs).
isModEnabled($module)
Is Dolibarr module enabled.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
user_prepare_head(User $object)
Prepare array with list of tabs.
user_admin_prepare_head()
Prepare array with list of tabs.
showSkins($fuser, $edit=0, $foruserprofile=false)
Show list of themes.
group_prepare_head($object)
Prepare array with list of tabs.