dolibarr  16.0.5
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->rights->user->user_advance->readperms) || ($user->id == $object->id && $user->rights->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 (!empty($conf->clicktodial->enabled)) {
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 && !empty($conf->notification->enabled)) {
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 ((!empty($conf->salaries->enabled) && !empty($user->rights->salaries->read))
145  || (!empty($conf->hrm->enabled) && !empty($user->rights->hrm->employee->read))
146  || (!empty($conf->expensereport->enabled) && !empty($user->rights->expensereport->lire) && ($user->id == $object->id || $user->rights->expensereport->readall))
147  || (!empty($conf->holiday->enabled) && !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)) {
161  $nbNote++;
162  }
163  $head[$h][0] = DOL_URL_ROOT.'/user/note.php?id='.$object->id;
164  $head[$h][1] = $langs->trans("Note");
165  if ($nbNote > 0) {
166  $head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbNote.'</span>';
167  }
168  $head[$h][2] = 'note';
169  $h++;
170 
171  // Attached files
172  require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
173  require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php';
174  $upload_dir = $conf->user->dir_output."/".$object->id;
175  $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$'));
176  $nbLinks = Link::count($db, $object->element, $object->id);
177  $head[$h][0] = DOL_URL_ROOT.'/user/document.php?userid='.$object->id;
178  $head[$h][1] = $langs->trans("Documents");
179  if (($nbFiles + $nbLinks) > 0) {
180  $head[$h][1] .= '<span class="badge marginleftonlyshort">'.($nbFiles + $nbLinks).'</span>';
181  }
182  $head[$h][2] = 'document';
183  $h++;
184 
185  $head[$h][0] = DOL_URL_ROOT.'/user/info.php?id='.$object->id;
186  $head[$h][1] = $langs->trans("Info");
187  $head[$h][2] = 'info';
188  $h++;
189  }
190 
191  complete_head_from_modules($conf, $langs, $object, $head, $h, 'user', 'remove');
192 
193  return $head;
194 }
195 
202 function group_prepare_head($object)
203 {
204  global $langs, $conf, $user;
205 
206  $canreadperms = true;
207  if (!empty($conf->global->MAIN_USE_ADVANCED_PERMS)) {
208  $canreadperms = ($user->admin || $user->rights->user->group_advance->readperms);
209  }
210 
211  $h = 0;
212  $head = array();
213 
214  $head[$h][0] = DOL_URL_ROOT.'/user/group/card.php?id='.$object->id;
215  $head[$h][1] = $langs->trans("GroupCard");
216  $head[$h][2] = 'group';
217  $h++;
218 
219  if ((!empty($conf->ldap->enabled) && !empty($conf->global->LDAP_SYNCHRO_ACTIVE))
220  && (empty($conf->global->MAIN_DISABLE_LDAP_TAB) || !empty($user->admin))) {
221  $langs->load("ldap");
222  $head[$h][0] = DOL_URL_ROOT.'/user/group/ldap.php?id='.$object->id;
223  $head[$h][1] = $langs->trans("LDAPCard");
224  $head[$h][2] = 'ldap';
225  $h++;
226  }
227 
228  if ($canreadperms) {
229  $head[$h][0] = DOL_URL_ROOT.'/user/group/perms.php?id='.$object->id;
230  $head[$h][1] = $langs->trans("GroupRights").'<span class="badge marginleftonlyshort">'.($object->nb_rights).'</span>';
231  $head[$h][2] = 'rights';
232  $h++;
233  }
234 
235  // Show more tabs from modules
236  // Entries must be declared in modules descriptor with line
237  // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
238  // $this->tabs = array('entity:-tabname); to remove a tab
239  complete_head_from_modules($conf, $langs, $object, $head, $h, 'group');
240 
241  complete_head_from_modules($conf, $langs, $object, $head, $h, 'group', 'remove');
242 
243  return $head;
244 }
245 
252 {
253  global $langs, $conf, $user;
254 
255  $langs->load("users");
256  $h = 0;
257  $head = array();
258 
259  $head[$h][0] = DOL_URL_ROOT.'/admin/user.php';
260  $head[$h][1] = $langs->trans("Parameters");
261  $head[$h][2] = 'card';
262  $h++;
263 
264  $head[$h][0] = DOL_URL_ROOT.'/admin/usergroup.php';
265  $head[$h][1] = $langs->trans("Group");
266  $head[$h][2] = 'usergroupcard';
267  $h++;
268 
269  $head[$h][0] = DOL_URL_ROOT.'/user/admin/user_extrafields.php';
270  $head[$h][1] = $langs->trans("ExtraFields")." (".$langs->trans("Users").")";
271  $head[$h][2] = 'attributes';
272  $h++;
273 
274  $head[$h][0] = DOL_URL_ROOT.'/user/admin/group_extrafields.php';
275  $head[$h][1] = $langs->trans("ExtraFields")." (".$langs->trans("Groups").")";
276  $head[$h][2] = 'attributes_group';
277  $h++;
278 
279  // Show more tabs from modules
280  // Entries must be declared in modules descriptor with line
281  // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
282  // $this->tabs = array('entity:-tabname); to remove a tab
283  complete_head_from_modules($conf, $langs, null, $head, $h, 'useradmin');
284 
285  complete_head_from_modules($conf, $langs, null, $head, $h, 'useradmin', 'remove');
286 
287  return $head;
288 }
289 
298 function showSkins($fuser, $edit = 0, $foruserprofile = false)
299 {
300  global $conf, $langs, $db, $form;
301 
302  require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
303 
304  $formother = new FormOther($db);
305 
306  $dirthemes = array('/theme');
307  if (!empty($conf->modules_parts['theme'])) { // Using this feature slow down application
308  foreach ($conf->modules_parts['theme'] as $reldir) {
309  $dirthemes = array_merge($dirthemes, (array) ($reldir.'theme'));
310  }
311  }
312  $dirthemes = array_unique($dirthemes);
313  // Now dir_themes=array('/themes') or dir_themes=array('/theme','/mymodule/theme')
314 
315  $selected_theme = '';
316  if (empty($foruserprofile)) {
317  $selected_theme = $conf->global->MAIN_THEME;
318  } else {
319  $selected_theme = ((is_object($fuser) && !empty($fuser->conf->MAIN_THEME)) ? $fuser->conf->MAIN_THEME : '');
320  }
321 
322  $hoverdisabled = '';
323  if (empty($foruserprofile)) {
324  $hoverdisabled = (isset($conf->global->THEME_ELDY_USE_HOVER) && $conf->global->THEME_ELDY_USE_HOVER == '0');
325  } else {
326  $hoverdisabled = (is_object($fuser) ? (empty($fuser->conf->THEME_ELDY_USE_HOVER) || $fuser->conf->THEME_ELDY_USE_HOVER == '0') : '');
327  }
328 
329  $checkeddisabled = '';
330  if (empty($foruserprofile)) {
331  $checkeddisabled = (isset($conf->global->THEME_ELDY_USE_CHECKED) && $conf->global->THEME_ELDY_USE_CHECKED == '0');
332  } else {
333  $checkeddisabled = (is_object($fuser) ? (empty($fuser->conf->THEME_ELDY_USE_CHECKED) || $fuser->conf->THEME_ELDY_USE_CHECKED == '0') : '');
334  }
335 
336  $colspan = 2;
337  if ($foruserprofile) {
338  $colspan = 4;
339  }
340 
341  $thumbsbyrow = 6;
342  print '<div class="div-table-responsive-no-min">';
343  print '<table class="noborder centpercent'.($edit ? ' editmodeforshowskin' : '').'">';
344 
345  // Title
346  if ($foruserprofile) {
347  print '<tr class="liste_titre"><th class="titlefieldmiddle">'.$langs->trans("Parameter").'</th><th>'.$langs->trans("DefaultValue").'</th>';
348  print '<th colspan="2">&nbsp;</th>';
349  print '</tr>';
350 
351  print '<tr>';
352  print '<td>'.$langs->trans("DefaultSkin").'</td>';
353  print '<td>'.$conf->global->MAIN_THEME.'</td>';
354  print '<td class="nowrap left"><input id="check_MAIN_THEME" name="check_MAIN_THEME"'.($edit ? '' : ' disabled').' type="checkbox" '.($selected_theme ? " checked" : "").'> '.$langs->trans("UsePersonalValue").'</td>';
355  print '<td>&nbsp;</td>';
356  print '</tr>';
357  } else {
358  $dirthemestring = '';
359  foreach ($dirthemes as $dirtheme) {
360  $dirthemestring .= '"'.$dirtheme.'" ';
361  }
362 
363  print '<tr class="liste_titre"><th class="titlefieldmiddle">';
364  print $form->textwithpicto($langs->trans("DefaultSkin"), $langs->trans("ThemeDir").' : '.$dirthemestring);
365  print '</th>';
366  print '<th class="right">';
367  $url = 'https://www.dolistore.com/9-skins';
368  print '<a href="'.$url.'" target="_blank" rel="noopener noreferrer external">';
369  print $langs->trans('DownloadMoreSkins');
370  print img_picto('', 'globe', 'class="paddingleft"');
371  print '</a>';
372  print '</th></tr>';
373  }
374 
375  print '<tr><td colspan="'.$colspan.'" class="center">';
376 
377  if (!empty($conf->global->MAIN_FORCETHEME)) {
378  $langs->load("errors");
379  print $langs->trans("WarningThemeForcedTo", $conf->global->MAIN_FORCETHEME);
380  }
381 
382  print '<table class="nobordernopadding" width="100%"><tr><td><div class="center">';
383 
384  $i = 0;
385  foreach ($dirthemes as $dir) {
386  //print $dirroot.$dir;exit;
387  $dirtheme = dol_buildpath($dir, 0); // This include loop on $conf->file->dol_document_root
388  $urltheme = dol_buildpath($dir, 1);
389 
390  if (is_dir($dirtheme)) {
391  $handle = opendir($dirtheme);
392  if (is_resource($handle)) {
393  while (($subdir = readdir($handle)) !== false) {
394  if (is_dir($dirtheme."/".$subdir) && substr($subdir, 0, 1) <> '.'
395  && substr($subdir, 0, 3) <> 'CVS' && !preg_match('/common|phones/i', $subdir)) {
396  // Disable not stable themes (dir ends with _exp or _dev)
397  if ($conf->global->MAIN_FEATURES_LEVEL < 2 && preg_match('/_dev$/i', $subdir)) {
398  continue;
399  }
400  if ($conf->global->MAIN_FEATURES_LEVEL < 1 && preg_match('/_exp$/i', $subdir)) {
401  continue;
402  }
403 
404  print '<div class="inline-block" style="margin-top: 10px; margin-bottom: 10px; margin-right: 20px; margin-left: 20px;">';
405  $file = $dirtheme."/".$subdir."/thumb.png";
406  $url = $urltheme."/".$subdir."/thumb.png";
407  if (!file_exists($file)) {
408  $url = DOL_URL_ROOT.'/public/theme/common/nophoto.png';
409  }
410  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").'">';
411  if ($subdir == $conf->global->MAIN_THEME) {
412  $title = $langs->trans("ThemeCurrentlyActive");
413  } else {
414  $title = $langs->trans("ShowPreview");
415  }
416  print '<img class="img-skinthumb shadow" src="'.$url.'" alt="'.dol_escape_htmltag($title).'" title="'.dol_escape_htmltag($title).'" style="border: none; margin-bottom: 5px;">';
417  print '</a><br>';
418  if ($subdir == $selected_theme) {
419  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>';
420  } else {
421  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>';
422  }
423  print '</div>';
424 
425  $i++;
426  }
427  }
428  }
429  }
430  }
431 
432  print '</div></td></tr></table>';
433 
434  print '</td></tr>';
435 
436  // Set variables of theme
437  $colorbackhmenu1 = '';
438  $colorbackvmenu1 = '';
439  $colortexttitlenotab = '';
440  $colortexttitlelink = '';
441  $colorbacktitle1 = '';
442  $colortexttitle = '';
443  $colorbacklineimpair1 = '';
444  $colorbacklineimpair2 = '';
445  $colorbacklinepair1 = '';
446  $colorbacklinepair2 = '';
447  $colortextlink = '';
448  $colorbacklinepairhover = '';
449  $colorbacklinepairhover = '';
450  $colorbacklinepairchecked = '';
451  $butactionbg = '';
452  $textbutaction = '';
453  // Set the variables with the default value
454  if (file_exists(DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php')) {
455  include DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php';
456  }
457 
458  // TopMenuDisableImages
459  if ($foruserprofile) {
460  /*
461  print '<tr class="oddeven">';
462  print '<td>'.$langs->trans("TopMenuDisableImages").'</td>';
463  print '<td>'.($conf->global->THEME_TOPMENU_DISABLE_IMAGE?$conf->global->THEME_TOPMENU_DISABLE_IMAGE:$langs->trans("Default")).'</td>';
464  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":"");
465  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
466  print '> '.$langs->trans("UsePersonalValue").'</td>';
467  print '<td>';
468  if ($edit)
469  {
470  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_TOPMENU_DISABLE_IMAGE,array()),''),'THEME_TOPMENU_DISABLE_IMAGE','',1).' ';
471  }
472  else
473  {
474  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_TOPMENU_DISABLE_IMAGE,array()),'');
475  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
476  else print '';
477  }
478  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
479  print '</td>';*/
480  } else {
481  $listoftopmenumodes = array(
482  '0' => $langs->transnoentitiesnoconv("IconAndText"),
483  '1' => $langs->transnoentitiesnoconv("TextOnly"),
484  '2' => $langs->transnoentitiesnoconv("IconOnlyAllTextsOnHover"),
485  '3' => $langs->transnoentitiesnoconv("IconOnlyTextOnHover"),
486  '4' => $langs->transnoentitiesnoconv("IconOnly"),
487  );
488  print '<tr class="oddeven">';
489  print '<td>'.$langs->trans("TopMenuDisableImages").'</td>';
490  print '<td colspan="'.($colspan - 1).'">';
491  if ($edit) {
492  //print ajax_constantonoff('THEME_TOPMENU_DISABLE_IMAGE', array(), null, 0, 0, 1);
493  print $form->selectarray('THEME_TOPMENU_DISABLE_IMAGE', $listoftopmenumodes, isset($conf->global->THEME_TOPMENU_DISABLE_IMAGE)?$conf->global->THEME_TOPMENU_DISABLE_IMAGE:0);
494  } else {
495  $listoftopmenumodes[$conf->global->THEME_TOPMENU_DISABLE_IMAGE];
496  //print yn($conf->global->THEME_TOPMENU_DISABLE_IMAGE);
497  }
498  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes"));
499  print '</td>';
500  print '</tr>';
501  }
502 
503  // Show logo
504  if ($foruserprofile) {
505  // Nothing
506  } else {
507  // Show logo
508  print '<tr class="oddeven"><td class="titlefieldmiddle">'.$langs->trans("EnableShowLogo").'</td><td>';
509  if ($edit) {
510  print ajax_constantonoff('MAIN_SHOW_LOGO', array(), null, 0, 0, 1);
511  //print $form->selectyesno('MAIN_SHOW_LOGO', $conf->global->MAIN_SHOW_LOGO, 1);
512  } else {
513  print yn($conf->global->MAIN_SHOW_LOGO);
514  }
515  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes"));
516  print '</td>';
517  print '</tr>';
518  /*
519  print '<tr class="oddeven"><td>'.$langs->trans("EnableShowLogo").'</td><td>' . yn($conf->global->MAIN_SHOW_LOGO) . '</td>';
520  print "</tr>";*/
521  }
522 
523  // BorderTableActive
524  if ($foruserprofile) {
525  } else {
526  print '<tr class="oddeven">';
527  print '<td>'.$langs->trans("UseBorderOnTable").'</td>';
528  print '<td colspan="'.($colspan - 1).'">';
529  if ($edit) {
530  print ajax_constantonoff('THEME_ELDY_USEBORDERONTABLE', array(), null, 0, 0, 1);
531  //print $form->selectyesno('THEME_ELDY_USEBORDERONTABLE', $conf->global->THEME_ELDY_USEBORDERONTABLE, 1);
532  } else {
533  print yn($conf->global->THEME_ELDY_USEBORDERONTABLE);
534  }
535  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes"));
536  print '</td>';
537  print '</tr>';
538  }
539 
540  // Background color THEME_ELDY_BACKBODY
541  if ($foruserprofile) {
542  /*
543  print '<tr class="oddeven">';
544  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
545  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TOPMENU_BACK1:$langs->trans("Default")).'</td>';
546  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":"");
547  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
548  print '> '.$langs->trans("UsePersonalValue").'</td>';
549  print '<td>';
550  if ($edit)
551  {
552  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''),'THEME_ELDY_TOPMENU_BACK1','',1).' ';
553  }
554  else
555  {
556  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),'');
557  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
558  else print '';
559  }
560  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
561  print '</td>';*/
562  } else {
563  print '<tr class="oddeven">';
564  print '<td>'.$langs->trans("BackgroundColor").'</td>';
565  print '<td colspan="'.($colspan - 1).'">';
566  //var_dump($conf->global->THEME_ELDY_BACKBODY);
567  if ($edit) {
568  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_BACKBODY) ? $conf->global->THEME_ELDY_BACKBODY : ''), array()), ''), 'THEME_ELDY_BACKBODY', '', 1, '', '', 'colorbackbody').' ';
569  } else {
570  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BACKBODY, array()), '');
571  if ($color) {
572  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
573  } else {
574  print $langs->trans("Default");
575  }
576  }
577  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>ffffff</strong> ';
578  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
579  print '</td>';
580  print '</tr>';
581  }
582 
583  // TopMenuBackgroundColor
584  if ($foruserprofile) {
585  /*
586  print '<tr class="oddeven">';
587  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
588  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TOPMENU_BACK1:$langs->trans("Default")).'</td>';
589  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":"");
590  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
591  print '> '.$langs->trans("UsePersonalValue").'</td>';
592  print '<td>';
593  if ($edit)
594  {
595  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''),'THEME_ELDY_TOPMENU_BACK1','',1).' ';
596  }
597  else
598  {
599  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),'');
600  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
601  else print '';
602  }
603  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
604  print '</td>';*/
605  } else {
606  $default = (empty($colorbackhmenu1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbackhmenu1)));
607 
608  print '<tr class="oddeven">';
609  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
610  print '<td colspan="'.($colspan - 1).'">';
611  if ($edit) {
612  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').' ';
613  } else {
614  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1, array()), '');
615  if ($color) {
616  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
617  } else {
618  print $langs->trans("Default");
619  }
620  }
621  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
622  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
623  print '</td>';
624  print '</tr>';
625  }
626 
627  // LeftMenuBackgroundColor
628  if ($foruserprofile) {
629  /*
630  print '<tr class="oddeven">';
631  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
632  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_VERMENU_BACK1:$langs->trans("Default")).'</td>';
633  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":"");
634  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
635  print '> '.$langs->trans("UsePersonalValue").'</td>';
636  print '<td>';
637  if ($edit)
638  {
639  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_VERMENU_BACK1,array()),''),'THEME_ELDY_VERMENU_BACK1','',1).' ';
640  }
641  else
642  {
643  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_VERMENU_BACK1,array()),'');
644  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
645  else print '';
646  }
647  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
648  print '</td>';*/
649  } else {
650  $default = (empty($colorbackvmenu1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbackvmenu1)));
651 
652  print '<tr class="oddeven">';
653  print '<td>'.$langs->trans("LeftMenuBackgroundColor").'</td>';
654  print '<td colspan="'.($colspan - 1).'">';
655  if ($edit) {
656  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').' ';
657  } else {
658  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_VERMENU_BACK1, array()), '');
659  if ($color) {
660  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
661  } else {
662  print $langs->trans("Default");
663  }
664  }
665  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
666  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
667  print '</td>';
668  print '</tr>';
669  }
670 
671  // TextTitleColor for title of Pages
672  if ($foruserprofile) {
673  } else {
674  $default = (empty($colortexttitlenotab) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortexttitlenotab)));
675 
676  print '<tr class="oddeven">';
677  print '<td>'.$langs->trans("TextTitleColor").'</td>';
678  print '<td colspan="'.($colspan - 1).'">';
679  if ($edit) {
680  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_TEXTTITLENOTAB) ? $conf->global->THEME_ELDY_TEXTTITLENOTAB : ''), array()), ''), 'THEME_ELDY_TEXTTITLENOTAB', '', 1, '', '', 'colortexttitlenotab').' ';
681  } else {
682  print $formother->showColor($conf->global->THEME_ELDY_TEXTTITLENOTAB, $langs->trans("Default"));
683  }
684  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #'.$default.'">'.$default.'</span></strong> ';
685  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
686  print '</td>';
687 
688  print '</tr>';
689  }
690 
691  // BackgroundTableTitleColor
692  if ($foruserprofile) {
693  } else {
694  $default = (empty($colorbacktitle1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacktitle1)));
695 
696  print '<tr class="oddeven">';
697  print '<td>'.$langs->trans("BackgroundTableTitleColor").'</td>';
698  print '<td colspan="'.($colspan - 1).'">';
699  if ($edit) {
700  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_BACKTITLE1) ? $conf->global->THEME_ELDY_BACKTITLE1 : ''), array()), ''), 'THEME_ELDY_BACKTITLE1', '', 1, '', '', 'colorbacktitle1').' ';
701  } else {
702  print $formother->showColor($conf->global->THEME_ELDY_BACKTITLE1, $langs->trans("Default"));
703  }
704  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> '; // $colorbacktitle1 in CSS
705  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
706  print '</td>';
707 
708  print '</tr>';
709  }
710 
711  // TextTitleColor
712  if ($foruserprofile) {
713  } else {
714  $default = (empty($colortexttitle) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortexttitle)));
715 
716  print '<tr class="oddeven">';
717  print '<td>'.$langs->trans("BackgroundTableTitleTextColor").'</td>';
718  print '<td colspan="'.($colspan - 1).'">';
719  if ($edit) {
720  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_TEXTTITLE) ? $conf->global->THEME_ELDY_TEXTTITLE : ''), array()), ''), 'THEME_ELDY_TEXTTITLE', '', 1, '', '', 'colortexttitle').' ';
721  } else {
722  print $formother->showColor($conf->global->THEME_ELDY_TEXTTITLE, $langs->trans("Default"));
723  }
724  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #'.$default.'">'.$default.'</span></strong> ';
725  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
726  print '</td>';
727 
728  print '</tr>';
729  }
730 
731  // TextTitleLinkColor
732  if ($foruserprofile) {
733  } else {
734  $default = (empty($colortexttitlelink) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortexttitlelink)));
735 
736  print '<tr class="oddeven">';
737  print '<td>'.$langs->trans("BackgroundTableTitleTextlinkColor").'</td>';
738  print '<td colspan="'.($colspan - 1).'">';
739  if ($edit) {
740  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_TEXTTITLELINK) ? $conf->global->THEME_ELDY_TEXTTITLELINK : ''), array()), ''), 'THEME_ELDY_TEXTTITLELINK', '', 1, '', '', 'colortexttitlelink').' ';
741  } else {
742  print $formother->showColor($conf->global->THEME_ELDY_TEXTTITLELINK, $langs->trans("Default"));
743  }
744  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #'.$default.'">'.$default.'</span></strong> ';
745  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
746  print '</span>';
747  print '</td>';
748 
749  print '</tr>';
750  }
751 
752  // BackgroundTableLineOddColor
753  if ($foruserprofile) {
754  } else {
755  $default = (empty($colorbacklineimpair1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklineimpair1)));
756 
757  print '<tr class="oddeven">';
758  print '<td>'.$langs->trans("BackgroundTableLineOddColor").'</td>';
759  print '<td colspan="'.($colspan - 1).'">';
760  if ($edit) {
761  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_LINEIMPAIR1) ? $conf->global->THEME_ELDY_LINEIMPAIR1 : ''), array()), ''), 'THEME_ELDY_LINEIMPAIR1', '', 1, '', '', 'colorbacklineimpair2').' ';
762  } else {
763  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_LINEIMPAIR1, array()), '');
764  if ($color) {
765  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
766  } else {
767  print $langs->trans("Default");
768  }
769  }
770  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
771  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
772  print '</td>';
773  print '</tr>';
774  }
775 
776  // BackgroundTableLineEvenColor
777  if ($foruserprofile) {
778  } else {
779  $default = (empty($colorbacklinepair1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepair1)));
780 
781  print '<tr class="oddeven">';
782  print '<td>'.$langs->trans("BackgroundTableLineEvenColor").'</td>';
783  print '<td colspan="'.($colspan - 1).'">';
784  if ($edit) {
785  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_LINEPAIR1) ? $conf->global->THEME_ELDY_LINEPAIR1 : ''), array()), ''), 'THEME_ELDY_LINEPAIR1', '', 1, '', '', 'colorbacklinepair2').' ';
786  } else {
787  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_LINEPAIR1, array()), '');
788  if ($color) {
789  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
790  } else {
791  print $langs->trans("Default");
792  }
793  }
794  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
795  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
796  print '</td>';
797  print '</tr>';
798  }
799 
800  // Text LinkColor
801  if ($foruserprofile) {
802  /*
803  print '<tr class="oddeven">';
804  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
805  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TEXTLINK:$langs->trans("Default")).'</td>';
806  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":"");
807  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
808  print '> '.$langs->trans("UsePersonalValue").'</td>';
809  print '<td>';
810  if ($edit)
811  {
812  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTLINK,array()),''),'THEME_ELDY_TEXTLINK','',1).' ';
813  }
814  else
815  {
816  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTLINK,array()),'');
817  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
818  else print '';
819  }
820  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
821  print '</td>';*/
822  } else {
823  $default = (empty($colortextlink) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortextlink)));
824 
825  print '<tr class="oddeven">';
826  print '<td>'.$langs->trans("LinkColor").'</td>';
827  print '<td colspan="'.($colspan - 1).'">';
828  if ($edit) {
829  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_TEXTLINK) ? $conf->global->THEME_ELDY_TEXTLINK : ''), array()), ''), 'THEME_ELDY_TEXTLINK', '', 1, '', '', 'colortextlink').' ';
830  } else {
831  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTLINK, array()), '');
832  if ($color) {
833  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
834  } else {
835  //print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$defaultcolor.'" value="'.$langs->trans("Default").'">';
836  //print '<span style="color: #000078">'.$langs->trans("Default").'</span>';
837  print $langs->trans("Default");
838  }
839  }
840  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #'.$default.'">'.$default.'</span></strong> ';
841  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
842  print '</td>';
843  print '</tr>';
844  }
845 
846  // Use Hover
847  if ($foruserprofile) {
848  /* Must first change option to choose color of highlight instead of yes or no.
849  print '<tr class="oddeven">';
850  print '<td>'.$langs->trans("HighlightLinesOnMouseHover").'</td>';
851  print '<td><input name="check_THEME_ELDY_USE_HOVER" disabled="disabled" type="checkbox" '.($conf->global->THEME_ELDY_USE_HOVER?" checked":"").'></td>';
852  print '<td class="nowrap left" width="20%"><input name="check_MAIN_THEME"'.($edit?'':' disabled').' type="checkbox" '.($selected_theme?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
853  print '<td><input name="check_THEME_ELDY_USE_HOVER"'.($edit?'':' disabled="disabled"').' type="checkbox" '.($hoverdisabled?"":" checked").'>';
854  print ' &nbsp; ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
855  print '</td>';
856  print '</tr>';
857  */
858  } else {
859  $default = (empty($colorbacklinepairhover) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepairhover)));
860 
861  print '<tr class="oddeven">';
862  print '<td>'.$langs->trans("HighlightLinesColor").'</td>';
863  print '<td colspan="'.($colspan - 1).'">';
864  //print '<input name="check_THEME_ELDY_USE_HOVER"'.($edit?'':' disabled').' type="checkbox" '.($hoverdisabled?"":" checked").'>';
865  //print ' &nbsp; ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
866  if ($edit) {
867  if (!empty($conf->global->THEME_ELDY_USE_HOVER) && $conf->global->THEME_ELDY_USE_HOVER == '1') {
868  $color = colorArrayToHex(colorStringToArray($colorbacklinepairhover));
869  } else {
870  $color = colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_USE_HOVER) ? $conf->global->THEME_ELDY_USE_HOVER : ''), array()), '');
871  }
872  print $formother->selectColor($color, 'THEME_ELDY_USE_HOVER', '', 1, '', '', 'colorbacklinepairhover').' ';
873  } else {
874  if ($conf->global->THEME_ELDY_USE_HOVER == '1') {
875  $color = colorArrayToHex(colorStringToArray($colorbacklinepairhover));
876  } else {
877  $color = colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_USE_HOVER) ? $conf->global->THEME_ELDY_USE_HOVER : ''), array()), '');
878  }
879  if ($color) {
880  if ($color != colorArrayToHex(colorStringToArray($colorbacklinepairhover))) {
881  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
882  } else {
883  print $langs->trans("Default");
884  }
885  } else {
886  print $langs->trans("Default");
887  }
888  }
889  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
890  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
891  print '</td>';
892  }
893 
894  // Use Checked
895  if ($foruserprofile) {
896  /* Must first change option to choose color of highlight instead of yes or no.
897  print '<tr class="oddeven">';
898  print '<td>'.$langs->trans("HighlightLinesOnMouseHover").'</td>';
899  print '<td><input name="check_THEME_ELDY_USE_HOVER" disabled="disabled" type="checkbox" '.($conf->global->THEME_ELDY_USE_HOVER?" checked":"").'></td>';
900  print '<td class="nowrap left" width="20%"><input name="check_MAIN_THEME"'.($edit?'':' disabled').' type="checkbox" '.($selected_theme?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
901  print '<td><input name="check_THEME_ELDY_USE_HOVER"'.($edit?'':' disabled="disabled"').' type="checkbox" '.($hoverdisabled?"":" checked").'>';
902  print ' &nbsp; ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
903  print '</td>';
904  print '</tr>';
905  */
906  } else {
907  $default = (empty($colorbacklinepairchecked) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepairchecked)));
908 
909  print '<tr class="oddeven">';
910  print '<td>'.$langs->trans("HighlightLinesChecked").'</td>';
911  print '<td colspan="'.($colspan - 1).'">';
912  //print '<input name="check_THEME_ELDY_USE_HOVER"'.($edit?'':' disabled').' type="checkbox" '.($hoverdisabled?"":" checked").'>';
913  //print ' &nbsp; ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
914  if ($edit) {
915  if (!empty($conf->global->THEME_ELDY_USE_CHECKED) && $conf->global->THEME_ELDY_USE_CHECKED == '1') {
916  $color = 'e6edf0';
917  } else {
918  $color = colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_USE_CHECKED) ? $conf->global->THEME_ELDY_USE_CHECKED : ''), array()), '');
919  }
920  print $formother->selectColor($color, 'THEME_ELDY_USE_CHECKED', '', 1, '', '', 'colorbacklinepairchecked').' ';
921  } else {
922  if ($conf->global->THEME_ELDY_USE_CHECKED == '1') {
923  $color = 'e6edf0';
924  } else {
925  $color = colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_USE_CHECKED) ? $conf->global->THEME_ELDY_USE_CHECKED : ''), array()), '');
926  }
927  if ($color) {
928  if ($color != 'e6edf0') {
929  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
930  } else {
931  print $langs->trans("Default");
932  }
933  } else {
934  print $langs->trans("Default");
935  }
936  }
937  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
938  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
939  print '</td>';
940  print '</tr>';
941  }
942 
943  // Btn action
944  if ($foruserprofile) {
945  /*
946  print '<tr class="oddeven">';
947  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
948  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_BTNACTION:$langs->trans("Default")).'</td>';
949  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":"");
950  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
951  print '> '.$langs->trans("UsePersonalValue").'</td>';
952  print '<td>';
953  if ($edit)
954  {
955  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BTNACTION,array()),''),'THEME_ELDY_BTNACTION','',1).' ';
956  }
957  else
958  {
959  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BTNACTION,array()),'');
960  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
961  else print '';
962  }
963  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
964  print '</td>';*/
965  } else {
966  $default = (empty($butactionbg) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($butactionbg)));
967 
968  print '<tr class="oddeven">';
969  print '<td>'.$langs->trans("BtnActionColor").'</td>';
970  print '<td colspan="'.($colspan - 1).'">';
971  if ($edit) {
972  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_BTNACTION) ? $conf->global->THEME_ELDY_BTNACTION : ''), array()), ''), 'THEME_ELDY_BTNACTION', '', 1, '', '', 'butactionbg').' ';
973  } else {
974  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BTNACTION, array()), '');
975  if ($color) {
976  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
977  } else {
978  //print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$defaultcolor.'" value="'.$langs->trans("Default").'">';
979  //print '<span style="color: #000078">'.$langs->trans("Default").'</span>';
980  print $langs->trans("Default");
981  }
982  }
983  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #'.$default.'">'.$default.'</span></strong> ';
984  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
985  print '</td>';
986  print '</tr>';
987  }
988 
989  // Text btn action
990  if ($foruserprofile) {
991  /*
992  print '<tr class="oddeven">';
993  print '<td>'.$langs->trans("TopMenuBackgroundColor").'</td>';
994  print '<td>'.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TEXTBTNACTION:$langs->trans("Default")).'</td>';
995  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":"");
996  print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo
997  print '> '.$langs->trans("UsePersonalValue").'</td>';
998  print '<td>';
999  if ($edit)
1000  {
1001  print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTBTNACTION,array()),''),'THEME_ELDY_TEXTBTNACTION','',1).' ';
1002  }
1003  else
1004  {
1005  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BTNACTION,array()),'');
1006  if ($color) print '<input type="text" class="colorthumb" disabled style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
1007  else print '';
1008  }
1009  if ($edit) print '<br>('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
1010  print '</td>';*/
1011  } else {
1012  $default = (empty($textbutaction) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($textbutaction)));
1013 
1014  print '<tr class="oddeven">';
1015  print '<td>'.$langs->trans("TextBtnActionColor").'</td>';
1016  print '<td colspan="'.($colspan - 1).'">';
1017  if ($edit) {
1018  print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_TEXTBTNACTION) ? $conf->global->THEME_ELDY_TEXTBTNACTION : ''), array()), ''), 'THEME_ELDY_TEXTBTNACTION', '', 1, '', '', 'textbutaction').' ';
1019  } else {
1020  $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTBTNACTION, array()), '');
1021  if ($color) {
1022  print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
1023  } else {
1024  //print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$defaultcolor.'" value="'.$langs->trans("Default").'">';
1025  //print '<span style="color: #000078">'.$langs->trans("Default").'</span>';
1026  print $langs->trans("Default");
1027  }
1028  }
1029  print ' &nbsp; <span class="nowraponall opacitymedium">'.$langs->trans("Default").'</span>: <strong><span style="color: #000">'.$default.'</span></strong> ';
1030  print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
1031  print '</td>';
1032  print '</tr>';
1033  }
1034 
1035  // Use MAIN_OPTIMIZEFORTEXTBROWSER
1036  if ($foruserprofile) {
1037  //$default=yn($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER);
1038  $default = $langs->trans('No');
1039  print '<tr class="oddeven">';
1040  print '<td>'.$langs->trans("MAIN_OPTIMIZEFORTEXTBROWSER").'</td>';
1041  print '<td colspan="'.($colspan - 1).'">';
1042  //print ajax_constantonoff("MAIN_OPTIMIZEFORTEXTBROWSER", array(), null, 0, 0, 1, 0);
1043  if ($edit) {
1044  print $form->selectyesno('MAIN_OPTIMIZEFORTEXTBROWSER', $fuser->conf->MAIN_OPTIMIZEFORTEXTBROWSER, 1);
1045  } else {
1046  if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
1047  print yn($fuser->conf->MAIN_OPTIMIZEFORTEXTBROWSER);
1048  } else {
1049  print yn(1);
1050  if (empty($fuser->conf->MAIN_OPTIMIZEFORTEXTBROWSER)) {
1051  print ' ('.$langs->trans("ForcedByGlobalSetup").')';
1052  }
1053  }
1054  }
1055  print ' &nbsp; <span class="opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
1056  print $form->textwithpicto('', $langs->trans("MAIN_OPTIMIZEFORTEXTBROWSERDesc"));
1057  print '</td>';
1058  print '</tr>';
1059  } else {
1060  //var_dump($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER);
1061  /*
1062  $default=$langs->trans('No');
1063  print '<tr class="oddeven">';
1064  print '<td>'.$langs->trans("MAIN_OPTIMIZEFORTEXTBROWSER").'</td>';
1065  print '<td colspan="'.($colspan-1).'">';
1066  if ($edit) {
1067  print $form->selectyesno('MAIN_OPTIMIZEFORTEXTBROWSER', $conf->global->MAIN_OPTIMIZEFORTEXTBROWSER, 1);
1068  } else {
1069  print yn($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER);
1070  }
1071  print ' &nbsp; wspan class="opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
1072  print $form->textwithpicto('', $langs->trans("MAIN_OPTIMIZEFORTEXTBROWSERDesc"));
1073  print '</span>';
1074  print '</td>';
1075  print '</tr>';
1076  */
1077  }
1078 
1079 
1080  // Use MAIN_OPTIMIZEFORTEXTBROWSER
1081  if ($foruserprofile && !empty($fuser->conf->MAIN_OPTIMIZEFORCOLORBLIND)) {
1082  //$default=yn($conf->global->MAIN_OPTIMIZEFORCOLORBLIND);
1083  $default = $langs->trans('No');
1084  print '<tr class="oddeven">';
1085  print '<td>'.$langs->trans("MAIN_OPTIMIZEFORCOLORBLIND").'</td>';
1086  print '<td colspan="'.($colspan - 1).'">';
1087 
1088  $colorBlindOptions = array(
1089  0 => $langs->trans('No'),
1090  'flashy' => $langs->trans('Flashy'),
1091  'protanopia' => $langs->trans('Protanopia'),
1092  'deuteranopes' => $langs->trans('Deuteranopes'),
1093  'tritanopes' => $langs->trans('Tritanopes'),
1094  );
1095 
1096  if ($edit) {
1097  print $form->selectArray('MAIN_OPTIMIZEFORCOLORBLIND', $colorBlindOptions, $fuser->conf->MAIN_OPTIMIZEFORCOLORBLIND, 0);
1098  } else {
1099  if (!empty($fuser->conf->MAIN_OPTIMIZEFORCOLORBLIND) && isset($colorBlindOptions[$fuser->conf->MAIN_OPTIMIZEFORCOLORBLIND])) {
1100  print $colorBlindOptions[$fuser->conf->MAIN_OPTIMIZEFORCOLORBLIND];
1101  } else {
1102  print yn(0);
1103  }
1104  }
1105  print ' &nbsp; <span class="opacitymedium">'.$langs->trans("Default").'</span>: <strong>'.$default.'</strong> ';
1106  print $form->textwithpicto('', $langs->trans("MAIN_OPTIMIZEFORCOLORBLINDDesc"));
1107  print '</td>';
1108  print '</tr>';
1109  } else {
1110  }
1111  print '</table>';
1112  print '</div>';
1113 }
yn
yn($yesno, $case=1, $color=0)
Return yes or no in current language.
Definition: functions.lib.php:6491
dol_escape_htmltag
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0)
Returns text escaped for inclusion in HTML alt or title tags, or into values of HTML input fields.
Definition: functions.lib.php:1468
colorStringToArray
colorStringToArray($stringcolor, $colorifnotfound=array(88, 88, 88))
Convert a string RGB value ('FFFFFF', '255,255,255') into an array RGB array(255,255,...
Definition: functions2.lib.php:2402
user_prepare_head
user_prepare_head(User $object)
Prepare array with list of tabs.
Definition: usergroups.lib.php:35
dol_print_error
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
Definition: functions.lib.php:4844
dol_buildpath
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
Definition: functions.lib.php:1062
$form
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:142
dol_dir_list
dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0)
Scan a directory and return a list of files/directories.
Definition: files.lib.php:60
complete_head_from_modules
complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, $mode='add')
Complete or removed entries into a head array (used to build tabs).
Definition: functions.lib.php:9038
FormOther
Classe permettant la generation de composants html autre Only common components are here.
Definition: html.formother.class.php:39
user_admin_prepare_head
user_admin_prepare_head()
Prepare array with list of tabs.
Definition: usergroups.lib.php:251
img_picto
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
Definition: functions.lib.php:3880
group_prepare_head
group_prepare_head($object)
Prepare array with list of tabs.
Definition: usergroups.lib.php:202
colorArrayToHex
colorArrayToHex($arraycolor, $colorifnotfound='888888')
Convert an array with RGB value into hex RGB value.
Definition: functions2.lib.php:2381
ajax_constantonoff
ajax_constantonoff($code, $input=array(), $entity=null, $revertonoff=0, $strict=0, $forcereload=0, $marginleftonlyshort=2, $forcenoajax=0, $setzeroinsteadofdel=0, $suffix='', $mode='')
On/off button for constant.
Definition: ajax.lib.php:573
isModEnabled
isModEnabled($module)
Is Dolibarr module enabled.
Definition: functions.lib.php:105
User
Class to manage Dolibarr users.
Definition: user.class.php:44
showSkins
showSkins($fuser, $edit=0, $foruserprofile=false)
Show list of themes.
Definition: usergroups.lib.php:298
$resql
if(isModEnabled('facture') &&!empty($user->rights->facture->lire)) if((isModEnabled('fournisseur') &&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->facture->lire)||(isModEnabled('supplier_invoice') && $user->rights->supplier_invoice->lire)) if(isModEnabled('don') &&!empty($user->rights->don->lire)) if(isModEnabled('tax') &&!empty($user->rights->tax->charges->lire)) if(isModEnabled('facture') &&isModEnabled('commande') && $user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) $resql
Social contributions to pay.
Definition: index.php:742