PageRenderTime 50ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 1ms

/htdocs/admin/ihm.php

https://github.com/asterix14/dolibarr
PHP | 406 lines | 261 code | 75 blank | 70 comment | 12 complexity | 6f5a9151ce0c96982425086daadd1c9a MD5 | raw file
Possible License(s): LGPL-2.0
  1. <?php
  2. /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  3. * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
  4. * Copyright (C) 2005-2010 Regis Houssin <regis@dolibarr.fr>
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation; either version 2 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. /**
  20. * \file htdocs/admin/ihm.php
  21. * \brief Page to setup GUI display options
  22. */
  23. require("../main.inc.php");
  24. require_once(DOL_DOCUMENT_ROOT."/core/lib/usergroups.lib.php");
  25. require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
  26. require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php");
  27. require_once(DOL_DOCUMENT_ROOT."/core/class/html.formother.class.php");
  28. require_once(DOL_DOCUMENT_ROOT."/core/class/html.formadmin.class.php");
  29. $langs->load("admin");
  30. $langs->load("languages");
  31. $langs->load("other");
  32. $langs->load("companies");
  33. $langs->load("products");
  34. $langs->load("members");
  35. if (! $user->admin) accessforbidden();
  36. $action = GETPOST('action');
  37. if (! defined("MAIN_MOTD")) define("MAIN_MOTD","");
  38. // List of supported permanent search area
  39. $searchform=array("MAIN_SEARCHFORM_SOCIETE","MAIN_SEARCHFORM_CONTACT", "MAIN_SEARCHFORM_PRODUITSERVICE","MAIN_SEARCHFORM_ADHERENT");
  40. $searchformconst=array($conf->global->MAIN_SEARCHFORM_SOCIETE,$conf->global->MAIN_SEARCHFORM_CONTACT,$conf->global->MAIN_SEARCHFORM_PRODUITSERVICE,$conf->global->MAIN_SEARCHFORM_ADHERENT);
  41. $searchformtitle=array($langs->trans("Companies"),$langs->trans("Contacts"),$langs->trans("ProductsAndServices"),$langs->trans("Members"));
  42. $searchformmodule=array('Module1Name','Module1Name','Module50Name','Module310Name');
  43. if ($action == 'update')
  44. {
  45. dolibarr_set_const($db, "MAIN_LANG_DEFAULT", $_POST["main_lang_default"],'chaine',0,'',$conf->entity);
  46. dolibarr_set_const($db, "MAIN_MULTILANGS", $_POST["main_multilangs"],'chaine',0,'',$conf->entity);
  47. dolibarr_set_const($db, "MAIN_SIZE_LISTE_LIMIT", $_POST["main_size_liste_limit"],'chaine',0,'',$conf->entity);
  48. dolibarr_set_const($db, "MAIN_DISABLE_JAVASCRIPT", $_POST["main_disable_javascript"],'chaine',0,'',$conf->entity);
  49. dolibarr_set_const($db, "MAIN_USE_PREVIEW_TABS", $_POST["main_use_preview_tabs"],'chaine',0,'',$conf->entity);
  50. dolibarr_set_const($db, "MAIN_START_WEEK", $_POST["MAIN_START_WEEK"],'chaine',0,'',$conf->entity);
  51. dolibarr_set_const($db, "MAIN_SHOW_LOGO", $_POST["MAIN_SHOW_LOGO"],'chaine',0,'',$conf->entity);
  52. dolibarr_set_const($db, "MAIN_FIRSTNAME_NAME_POSITION", $_POST["MAIN_FIRSTNAME_NAME_POSITION"],'chaine',0,'',$conf->entity);
  53. dolibarr_set_const($db, "MAIN_THEME", $_POST["main_theme"],'chaine',0,'',$conf->entity);
  54. dolibarr_set_const($db, "MAIN_SEARCHFORM_CONTACT", $_POST["MAIN_SEARCHFORM_CONTACT"],'chaine',0,'',$conf->entity);
  55. dolibarr_set_const($db, "MAIN_SEARCHFORM_SOCIETE", $_POST["MAIN_SEARCHFORM_SOCIETE"],'chaine',0,'',$conf->entity);
  56. dolibarr_set_const($db, "MAIN_SEARCHFORM_PRODUITSERVICE",$_POST["MAIN_SEARCHFORM_PRODUITSERVICE"],'chaine',0,'',$conf->entity);
  57. dolibarr_set_const($db, "MAIN_SEARCHFORM_ADHERENT",$_POST["MAIN_SEARCHFORM_ADHERENT"],'chaine',0,'',$conf->entity);
  58. dolibarr_set_const($db, "MAIN_HELPCENTER_DISABLELINK", $_POST["MAIN_HELPCENTER_DISABLELINK"],'chaine',0,'',0); // Param for all entities
  59. dolibarr_set_const($db, "MAIN_MOTD", dol_htmlcleanlastbr($_POST["main_motd"]),'chaine',0,'',$conf->entity);
  60. dolibarr_set_const($db, "MAIN_HOME", dol_htmlcleanlastbr($_POST["main_home"]),'chaine',0,'',$conf->entity);
  61. dolibarr_set_const($db, "MAIN_HELP_DISABLELINK", $_POST["MAIN_HELP_DISABLELINK"],'chaine',0,'',0); // Param for all entities
  62. dolibarr_set_const($db, "MAIN_BUGTRACK_ENABLELINK", $_POST["MAIN_BUGTRACK_ENABLELINK"],'chaine',0,'',$conf->entity);
  63. $_SESSION["mainmenu"]=""; // Le gestionnaire de menu a pu changer
  64. Header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
  65. exit;
  66. }
  67. /*
  68. * View
  69. */
  70. $wikihelp='EN:First_setup|FR:Premiers_param&eacute;trages|ES:Primeras_configuraciones';
  71. llxHeader('',$langs->trans("Setup"),$wikihelp);
  72. $form=new Form($db);
  73. $formother=new FormOther($db);
  74. $formadmin=new FormAdmin($db);
  75. print_fiche_titre($langs->trans("GUISetup"),'','setup');
  76. print $langs->trans("DisplayDesc")."<br>\n";
  77. print "<br>\n";
  78. if ($action == 'edit') // Edit
  79. {
  80. print '<form method="post" action="'.$_SERVER["PHP_SELF"].'">';
  81. print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
  82. print '<input type="hidden" name="action" value="update">';
  83. clearstatcache();
  84. $var=true;
  85. print_fiche_titre($langs->trans("Language"),'','').'<br>';
  86. print '<table summary="edit" class="noborder" width="100%">';
  87. print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td>';
  88. print '<td width="20">&nbsp;</td>';
  89. print '</tr>';
  90. // Default language
  91. $var=!$var;
  92. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DefaultLanguage").'</td><td>';
  93. print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT,'main_lang_default',1);
  94. print '</td>';
  95. print '<td width="20">&nbsp;</td>';
  96. print '</tr>';
  97. // Multilangual GUI
  98. $var=!$var;
  99. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("EnableMultilangInterface").'</td><td>';
  100. print $form->selectyesno('main_multilangs',$conf->global->MAIN_MULTILANGS,1);
  101. print '</td>';
  102. print '<td width="20">&nbsp;</td>';
  103. print '</tr>';
  104. print '</table><br>'."\n";
  105. // Themes
  106. show_theme('',1);
  107. print '<br>';
  108. // Liste des zone de recherche permanantes supportees
  109. print '<table summary="search" class="noborder" width="100%">';
  110. print '<tr class="liste_titre"><td width="35%">'.$langs->trans("PermanentLeftSearchForm").'</td><td colspan="2">'.$langs->trans("Activated").'</td></tr>';
  111. $var=True;
  112. foreach ($searchform as $key => $value)
  113. {
  114. $var=!$var;
  115. print '<tr '.$bc[$var].'><td width="35%">'.$searchformtitle[$key].'</td><td colspan="2">';
  116. print $form->selectyesno($searchform[$key],$searchformconst[$key],1);
  117. print '</td></tr>';
  118. }
  119. print '</table>';
  120. print '<br>';
  121. // Other
  122. print '<table summary="edit" class="noborder" width="100%">';
  123. print '<tr class="liste_titre"><td width="35%">'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td>';
  124. print '<td width="20">&nbsp;</td>';
  125. print '</tr>';
  126. // Show logo
  127. $var=!$var;
  128. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("EnableShowLogo").'</td><td>';
  129. print $form->selectyesno('MAIN_SHOW_LOGO',$conf->global->MAIN_SHOW_LOGO,1);
  130. print '</td>';
  131. print '<td width="20">&nbsp;</td>';
  132. print '</tr>';
  133. // Taille max des listes
  134. $var=!$var;
  135. print '<tr '.$bc[$var].'><td>'.$langs->trans("DefaultMaxSizeList").'</td><td><input class="flat" name="main_size_liste_limit" size="4" value="' . $conf->global->MAIN_SIZE_LISTE_LIMIT . '"></td>';
  136. print '<td width="20">&nbsp;</td>';
  137. print '</tr>';
  138. // Desactivation javascript et ajax
  139. $var=!$var;
  140. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableJavascript").'</td><td>';
  141. print $form->selectyesno('main_disable_javascript',isset($conf->global->MAIN_DISABLE_JAVASCRIPT)?$conf->global->MAIN_DISABLE_JAVASCRIPT:0,1);
  142. print '</td>';
  143. print '<td width="20">&nbsp;</td>';
  144. print '</tr>';
  145. // Activate preview tab on element card
  146. if (class_exists("Imagick"))
  147. {
  148. $var=!$var;
  149. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("UsePreviewTabs").'</td><td>';
  150. print $form->selectyesno('main_use_preview_tabs',isset($conf->global->MAIN_USE_PREVIEW_TABS)?$conf->global->MAIN_USE_PREVIEW_TABS:0,1);
  151. print '</td>';
  152. print '<td width="20">&nbsp;</td>';
  153. print '</tr>';
  154. }
  155. // First day for weeks
  156. $var=!$var;
  157. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("WeekStartOnDay").'</td><td>';
  158. print $formother->select_dayofweek((isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:'1'),'MAIN_START_WEEK',0);
  159. print '</td>';
  160. print '<td width="20">&nbsp;</td>';
  161. print '</tr>';
  162. // Firstname/Name
  163. $var=!$var;
  164. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("FirstnameNamePosition").'</td><td>';
  165. $array=array(0=>$langs->trans("Firstname").' '.$langs->trans("Lastname"),1=>$langs->trans("Lastname").' '.$langs->trans("Firstname"));
  166. print $form->selectarray('MAIN_FIRSTNAME_NAME_POSITION',$array,(isset($conf->global->MAIN_FIRSTNAME_NAME_POSITION)?$conf->global->MAIN_FIRSTNAME_NAME_POSITION:0));
  167. print '</td>';
  168. print '<td width="20">&nbsp;</td>';
  169. print '</tr>';
  170. // Hide helpcenter link on login page
  171. $var=!$var;
  172. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableLinkToHelpCenter").'</td><td>';
  173. print $form->selectyesno('MAIN_HELPCENTER_DISABLELINK',isset($conf->global->MAIN_HELPCENTER_DISABLELINK)?$conf->global->MAIN_HELPCENTER_DISABLELINK:0,1);
  174. print '</td>';
  175. print '<td width="20">&nbsp;</td>';
  176. print '</tr>';
  177. // Hide wiki link on login page
  178. $var=!$var;
  179. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableLinkToHelp",img_picto('',DOL_URL_ROOT.'/theme/common/helpdoc.png','',1)).'</td><td>';
  180. print $form->selectyesno('MAIN_HELP_DISABLELINK',isset($conf->global->MAIN_HELP_DISABLELINK)?$conf->global->MAIN_HELP_DISABLELINK:0,1);
  181. print '</td>';
  182. print '<td width="20">&nbsp;</td>';
  183. print '</tr>';
  184. // Message on login page
  185. $var=!$var;
  186. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("MessageLogin").'</td><td colspan="2">';
  187. // Editeur wysiwyg
  188. require_once(DOL_DOCUMENT_ROOT."/core/class/doleditor.class.php");
  189. $doleditor=new DolEditor('main_home',$conf->global->MAIN_HOME,'',142,'dolibarr_notes','In',false,true,true,ROWS_4,90);
  190. $doleditor->Create();
  191. print '</td></tr>'."\n";
  192. // Message of the day on home page
  193. $var=!$var;
  194. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("MessageOfDay").'</td><td colspan="2">';
  195. require_once(DOL_DOCUMENT_ROOT."/core/class/doleditor.class.php");
  196. $doleditor=new DolEditor('main_motd',$conf->global->MAIN_MOTD,'',142,'dolibarr_notes','In',false,true,true,ROWS_4,90);
  197. $doleditor->Create();
  198. print '</td></tr>'."\n";
  199. /*
  200. // Show bugtrack link
  201. $var=!$var;
  202. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("ShowBugTrackLink").'</td><td>';
  203. print $form->selectyesno('main_show_bugtrack_link',$conf->global->MAIN_BUGTRACK_ENABLELINK,1);
  204. print '</td>';
  205. print '<td width="20">&nbsp;</td>';
  206. print '</tr>';
  207. */
  208. print '</table>'."\n";
  209. print '<br><center>';
  210. print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
  211. print '</center>';
  212. print '</form>';
  213. print '<br>';
  214. }
  215. else // Show
  216. {
  217. $var=true;
  218. // Language
  219. print_fiche_titre($langs->trans("Language"),'','').'<br>';
  220. print '<table class="noborder" width="100%">';
  221. print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td><td>&nbsp;</td></tr>';
  222. $var=!$var;
  223. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DefaultLanguage").'</td><td>';
  224. $s=picto_from_langcode($conf->global->MAIN_LANG_DEFAULT);
  225. print ($s?$s.' ':'');
  226. print ($conf->global->MAIN_LANG_DEFAULT=='auto'?$langs->trans("AutoDetectLang"):$langs->trans("Language_".$conf->global->MAIN_LANG_DEFAULT));
  227. print '</td>';
  228. print '<td width="20">';
  229. if ($user->admin && $conf->global->MAIN_LANG_DEFAULT!='auto') print info_admin($langs->trans("SubmitTranslation",$conf->global->MAIN_LANG_DEFAULT),1);
  230. print '</td>';
  231. print "</tr>";
  232. $var=!$var;
  233. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("EnableMultilangInterface").'</td><td>' . yn($conf->global->MAIN_MULTILANGS) . '</td>';
  234. print '<td width="20">&nbsp;</td>';
  235. print "</tr>";
  236. print '</table><br>'."\n";
  237. // Themes
  238. show_theme('',0);
  239. print '<br>';
  240. // Liste des zone de recherches permanentes supportees
  241. print '<table class="noborder" width="100%">';
  242. print '<tr class="liste_titre"><td width="35%">'.$langs->trans("PermanentLeftSearchForm").'</td><td>'.$langs->trans("Activated").'</td><td>&nbsp;</td></tr>';
  243. $var=true;
  244. foreach ($searchform as $key => $value)
  245. {
  246. $var=!$var;
  247. print '<tr '.$bc[$var].'><td width="35%">'.$searchformtitle[$key].'</td><td>'.yn($searchformconst[$key]).'</td>';
  248. print '<td align="left">'.$langs->trans("IfModuleEnabled",$langs->transnoentitiesnoconv($searchformmodule[$key]));
  249. print '</td></tr>';
  250. }
  251. print '</table>';
  252. print '<br>';
  253. // Other
  254. $var=true;
  255. print '<table class="noborder" width="100%">';
  256. print '<tr class="liste_titre"><td width="35%">'.$langs->trans("Parameter").'</td><td colspan="2">'.$langs->trans("Value").'</td></tr>';
  257. $var=!$var;
  258. print '<tr '.$bc[$var].'><td>'.$langs->trans("EnableShowLogo").'</td><td>' . yn($conf->global->MAIN_SHOW_LOGO) . '</td>';
  259. print '<td width="20">&nbsp;</td>';
  260. print "</tr>";
  261. $var=!$var;
  262. print '<tr '.$bc[$var].'><td>'.$langs->trans("DefaultMaxSizeList").'</td><td>' . $conf->global->MAIN_SIZE_LISTE_LIMIT . '</td>';
  263. print '<td width="20">&nbsp;</td>';
  264. print "</tr>";
  265. // Disable javascript/ajax
  266. $var=!$var;
  267. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableJavascript").'</td><td>';
  268. print yn($conf->global->MAIN_DISABLE_JAVASCRIPT)."</td>";
  269. print '<td width="20">&nbsp;</td>';
  270. print "</tr>";
  271. // Activate preview tab on element card
  272. if (class_exists("Imagick"))
  273. {
  274. $var=!$var;
  275. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("UsePreviewTabs").'</td><td>';
  276. print yn(isset($conf->global->MAIN_USE_PREVIEW_TABS)?$conf->global->MAIN_USE_PREVIEW_TABS:0)."</td>";
  277. print '<td width="20">&nbsp;</td>';
  278. print "</tr>";
  279. }
  280. // First day for weeks
  281. $var=!$var;
  282. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("WeekStartOnDay").'</td><td>';
  283. print $langs->trans("Day".(isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:'1'));
  284. print '</td>';
  285. print '<td width="20">&nbsp;</td>';
  286. print '</tr>';
  287. // Firstname / Name position
  288. $var=!$var;
  289. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("FirstnameNamePosition").'</td><td>';
  290. if (empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)) { print $langs->trans("Firstname").' '.$langs->trans("Lastname"); }
  291. else { print $langs->trans("Lastname").' '.$langs->trans("Firstname"); }
  292. print '</td>';
  293. print '<td width="20">&nbsp;</td>';
  294. print '</tr>';
  295. // Link to help center
  296. $var=!$var;
  297. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableLinkToHelpCenter").'</td><td colspan="2">';
  298. print yn($conf->global->MAIN_HELPCENTER_DISABLELINK,1);
  299. print '</td></tr>';
  300. // Link to wiki help
  301. $var=!$var;
  302. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableLinkToHelp",img_picto('',DOL_URL_ROOT.'/theme/common/helpdoc.png','',1)).'</td><td colspan="2">';
  303. print yn($conf->global->MAIN_HELP_DISABLELINK,1);
  304. print '</td></tr>';
  305. // Message login
  306. $var=!$var;
  307. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("MessageLogin").'</td><td colspan="2">';
  308. print dol_htmlcleanlastbr($conf->global->MAIN_HOME);
  309. print '</td></tr>'."\n";
  310. // Message of the day
  311. $var=!$var;
  312. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("MessageOfDay").'</td><td colspan="2">';
  313. print dol_htmlcleanlastbr($conf->global->MAIN_MOTD);
  314. print '</td></tr>'."\n";
  315. /*
  316. // Show bugtrack link
  317. $var=!$var;
  318. print '<tr '.$bc[$var].'"><td width="35%">'.$langs->trans("ShowBugTrackLink").'</td><td>';
  319. print yn($conf->global->MAIN_BUGTRACK_ENABLELINK)."</td>";
  320. print '<td width="20">&nbsp;</td>';
  321. print "</tr>";
  322. */
  323. print '</table>'."\n";
  324. print '<div class="tabsAction">';
  325. print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a>';
  326. print '</div>';
  327. print '<br>';
  328. }
  329. $db->close();
  330. llxFooter();
  331. ?>