ihm.php 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  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."/lib/usergroups.lib.php");
  25. require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php");
  26. require_once(DOL_DOCUMENT_ROOT."/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)
  36. accessforbidden();
  37. if (! defined("MAIN_MOTD")) define("MAIN_MOTD","");
  38. // List of supported permanent search area
  39. $searchform=array( "MAIN_SEARCHFORM_SOCIETE","MAIN_SEARCHFORM_CONTACT",
  40. "MAIN_SEARCHFORM_PRODUITSERVICE","MAIN_SEARCHFORM_ADHERENT");
  41. $searchformconst=array($conf->global->MAIN_SEARCHFORM_SOCIETE,$conf->global->MAIN_SEARCHFORM_CONTACT,
  42. $conf->global->MAIN_SEARCHFORM_PRODUITSERVICE,$conf->global->MAIN_SEARCHFORM_ADHERENT);
  43. $searchformtitle=array($langs->trans("Companies"),$langs->trans("Contacts"),
  44. $langs->trans("ProductsAndServices"),$langs->trans("Members"));
  45. $searchformmodule=array('Module1Name','Module1Name',
  46. 'Module50Name','Module310Name');
  47. if (isset($_POST["action"]) && $_POST["action"] == 'update')
  48. {
  49. dolibarr_set_const($db, "MAIN_LANG_DEFAULT", $_POST["main_lang_default"],'chaine',0,'',$conf->entity);
  50. dolibarr_set_const($db, "MAIN_MULTILANGS", $_POST["main_multilangs"],'chaine',0,'',$conf->entity);
  51. dolibarr_set_const($db, "MAIN_SIZE_LISTE_LIMIT", $_POST["main_size_liste_limit"],'chaine',0,'',$conf->entity);
  52. dolibarr_set_const($db, "MAIN_DISABLE_JAVASCRIPT", $_POST["main_disable_javascript"],'chaine',0,'',$conf->entity);
  53. dolibarr_set_const($db, "MAIN_USE_PREVIEW_TABS", $_POST["main_use_preview_tabs"],'chaine',0,'',$conf->entity);
  54. dolibarr_set_const($db, "MAIN_START_WEEK", $_POST["MAIN_START_WEEK"],'chaine',0,'',$conf->entity);
  55. dolibarr_set_const($db, "MAIN_SHOW_LOGO", $_POST["MAIN_SHOW_LOGO"],'chaine',0,'',$conf->entity);
  56. dolibarr_set_const($db, "MAIN_FIRSTNAME_NAME_POSITION", $_POST["MAIN_FIRSTNAME_NAME_POSITION"],'chaine',0,'',$conf->entity);
  57. dolibarr_set_const($db, "MAIN_THEME", $_POST["main_theme"],'chaine',0,'',$conf->entity);
  58. if (file_exists(DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/init_ihm.php')){
  59. include_once (DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/init_ihm.php');
  60. }
  61. dolibarr_set_const($db, "MAIN_SEARCHFORM_CONTACT", $_POST["MAIN_SEARCHFORM_CONTACT"],'chaine',0,'',$conf->entity);
  62. dolibarr_set_const($db, "MAIN_SEARCHFORM_SOCIETE", $_POST["MAIN_SEARCHFORM_SOCIETE"],'chaine',0,'',$conf->entity);
  63. dolibarr_set_const($db, "MAIN_SEARCHFORM_PRODUITSERVICE",$_POST["MAIN_SEARCHFORM_PRODUITSERVICE"],'chaine',0,'',$conf->entity);
  64. dolibarr_set_const($db, "MAIN_SEARCHFORM_ADHERENT",$_POST["MAIN_SEARCHFORM_ADHERENT"],'chaine',0,'',$conf->entity);
  65. dolibarr_set_const($db, "MAIN_HELPCENTER_DISABLELINK", $_POST["MAIN_HELPCENTER_DISABLELINK"],'chaine',0,'',0); // Param for all entities
  66. dolibarr_set_const($db, "MAIN_MOTD", dol_htmlcleanlastbr($_POST["main_motd"]),'chaine',0,'',$conf->entity);
  67. dolibarr_set_const($db, "MAIN_HOME", dol_htmlcleanlastbr($_POST["main_home"]),'chaine',0,'',$conf->entity);
  68. dolibarr_set_const($db, "MAIN_HELP_DISABLELINK", $_POST["MAIN_HELP_DISABLELINK"],'chaine',0,'',0); // Param for all entities
  69. dolibarr_set_const($db, "MAIN_BUGTRACK_ENABLELINK", $_POST["MAIN_BUGTRACK_ENABLELINK"],'chaine',0,'',$conf->entity);
  70. $_SESSION["mainmenu"]=""; // Le gestionnaire de menu a pu changer
  71. Header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
  72. exit;
  73. }
  74. /*
  75. * View
  76. */
  77. $wikihelp='EN:First_setup|FR:Premiers_param&eacute;trages|ES:Primeras_configuraciones';
  78. llxHeader('',$langs->trans("Setup"),$wikihelp);
  79. $html=new Form($db);
  80. $formother=new FormOther($db);
  81. $formadmin=new FormAdmin($db);
  82. print_fiche_titre($langs->trans("GUISetup"),'','setup');
  83. print $langs->trans("DisplayDesc")."<br>\n";
  84. print "<br>\n";
  85. if (isset($_GET["action"]) && $_GET["action"] == 'edit') // Edit
  86. {
  87. print '<form method="post" action="'.$_SERVER["PHP_SELF"].'">';
  88. print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
  89. print '<input type="hidden" name="action" value="update">';
  90. clearstatcache();
  91. $var=true;
  92. print_fiche_titre($langs->trans("Language"),'','').'<br>';
  93. print '<table summary="edit" class="noborder" width="100%">';
  94. print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td>';
  95. print '<td width="20">&nbsp;</td>';
  96. print '</tr>';
  97. // Default language
  98. $var=!$var;
  99. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DefaultLanguage").'</td><td>';
  100. print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT,'main_lang_default',1);
  101. print '</td>';
  102. print '<td width="20">&nbsp;</td>';
  103. print '</tr>';
  104. // Multilangual GUI
  105. $var=!$var;
  106. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("EnableMultilangInterface").'</td><td>';
  107. print $html->selectyesno('main_multilangs',$conf->global->MAIN_MULTILANGS,1);
  108. print '</td>';
  109. print '<td width="20">&nbsp;</td>';
  110. print '</tr>';
  111. print '</table><br>'."\n";
  112. // Themes
  113. show_theme('',1);
  114. print '<br>';
  115. // Liste des zone de recherche permanantes supportees
  116. print '<table summary="search" class="noborder" width="100%">';
  117. print '<tr class="liste_titre"><td width="35%">'.$langs->trans("PermanentLeftSearchForm").'</td><td colspan="2">'.$langs->trans("Activated").'</td></tr>';
  118. $var=True;
  119. foreach ($searchform as $key => $value)
  120. {
  121. $var=!$var;
  122. print '<tr '.$bc[$var].'><td width="35%">'.$searchformtitle[$key].'</td><td colspan="2">';
  123. print $html->selectyesno($searchform[$key],$searchformconst[$key],1);
  124. print '</td></tr>';
  125. }
  126. print '</table>';
  127. print '<br>';
  128. // Other
  129. print '<table summary="edit" class="noborder" width="100%">';
  130. print '<tr class="liste_titre"><td width="35%">'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td>';
  131. print '<td width="20">&nbsp;</td>';
  132. print '</tr>';
  133. // Show logo
  134. $var=!$var;
  135. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("EnableShowLogo").'</td><td>';
  136. print $html->selectyesno('MAIN_SHOW_LOGO',$conf->global->MAIN_SHOW_LOGO,1);
  137. print '</td>';
  138. print '<td width="20">&nbsp;</td>';
  139. print '</tr>';
  140. // Taille max des listes
  141. $var=!$var;
  142. 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>';
  143. print '<td width="20">&nbsp;</td>';
  144. print '</tr>';
  145. // Desactivation javascript et ajax
  146. $var=!$var;
  147. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableJavascript").'</td><td>';
  148. print $html->selectyesno('main_disable_javascript',isset($conf->global->MAIN_DISABLE_JAVASCRIPT)?$conf->global->MAIN_DISABLE_JAVASCRIPT:0,1);
  149. print '</td>';
  150. print '<td width="20">&nbsp;</td>';
  151. print '</tr>';
  152. // Activate preview tab on element card
  153. if (class_exists("Imagick"))
  154. {
  155. $var=!$var;
  156. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("UsePreviewTabs").'</td><td>';
  157. print $html->selectyesno('main_use_preview_tabs',isset($conf->global->MAIN_USE_PREVIEW_TABS)?$conf->global->MAIN_USE_PREVIEW_TABS:0,1);
  158. print '</td>';
  159. print '<td width="20">&nbsp;</td>';
  160. print '</tr>';
  161. }
  162. // First day for weeks
  163. $var=!$var;
  164. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("WeekStartOnDay").'</td><td>';
  165. print $formother->select_dayofweek((isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:'1'),'MAIN_START_WEEK',0);
  166. print '</td>';
  167. print '<td width="20">&nbsp;</td>';
  168. print '</tr>';
  169. // Firstname/Name
  170. $var=!$var;
  171. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("FirstnameNamePosition").'</td><td>';
  172. $array=array(0=>$langs->trans("Firstname").' '.$langs->trans("Lastname"),1=>$langs->trans("Lastname").' '.$langs->trans("Firstname"));
  173. print $html->selectarray('MAIN_FIRSTNAME_NAME_POSITION',$array,(isset($conf->global->MAIN_FIRSTNAME_NAME_POSITION)?$conf->global->MAIN_FIRSTNAME_NAME_POSITION:0));
  174. print '</td>';
  175. print '<td width="20">&nbsp;</td>';
  176. print '</tr>';
  177. // Hide helpcenter link on login page
  178. $var=!$var;
  179. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableLinkToHelpCenter").'</td><td>';
  180. print $html->selectyesno('MAIN_HELPCENTER_DISABLELINK',isset($conf->global->MAIN_HELPCENTER_DISABLELINK)?$conf->global->MAIN_HELPCENTER_DISABLELINK:0,1);
  181. print '</td>';
  182. print '<td width="20">&nbsp;</td>';
  183. print '</tr>';
  184. // Hide wiki link on login page
  185. $var=!$var;
  186. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableLinkToHelp",img_picto('',DOL_URL_ROOT.'/theme/common/helpdoc.png','',1)).'</td><td>';
  187. print $html->selectyesno('MAIN_HELP_DISABLELINK',isset($conf->global->MAIN_HELP_DISABLELINK)?$conf->global->MAIN_HELP_DISABLELINK:0,1);
  188. print '</td>';
  189. print '<td width="20">&nbsp;</td>';
  190. print '</tr>';
  191. // Message on login page
  192. $var=!$var;
  193. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("MessageLogin").'</td><td colspan="2">';
  194. // Editeur wysiwyg
  195. require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php");
  196. $doleditor=new DolEditor('main_home',$conf->global->MAIN_HOME,'',142,'dolibarr_notes','In',false,true,true,ROWS_4,90);
  197. $doleditor->Create();
  198. print '</td></tr>'."\n";
  199. // Message of the day on home page
  200. $var=!$var;
  201. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("MessageOfDay").'</td><td colspan="2">';
  202. require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php");
  203. $doleditor=new DolEditor('main_motd',$conf->global->MAIN_MOTD,'',142,'dolibarr_notes','In',false,true,true,ROWS_4,90);
  204. $doleditor->Create();
  205. print '</td></tr>'."\n";
  206. /*
  207. // Show bugtrack link
  208. $var=!$var;
  209. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("ShowBugTrackLink").'</td><td>';
  210. print $html->selectyesno('main_show_bugtrack_link',$conf->global->MAIN_BUGTRACK_ENABLELINK,1);
  211. print '</td>';
  212. print '<td width="20">&nbsp;</td>';
  213. print '</tr>';
  214. */
  215. print '</table>'."\n";
  216. print '<br><center>';
  217. print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
  218. print '</center>';
  219. print '</form>';
  220. print '<br>';
  221. }
  222. else // Show
  223. {
  224. $var=true;
  225. // Language
  226. print_fiche_titre($langs->trans("Language"),'','').'<br>';
  227. print '<table class="noborder" width="100%">';
  228. print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td><td>&nbsp;</td></tr>';
  229. $var=!$var;
  230. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DefaultLanguage").'</td><td>';
  231. $s=picto_from_langcode($conf->global->MAIN_LANG_DEFAULT);
  232. print ($s?$s.' ':'');
  233. print ($conf->global->MAIN_LANG_DEFAULT=='auto'?$langs->trans("AutoDetectLang"):$langs->trans("Language_".$conf->global->MAIN_LANG_DEFAULT));
  234. print '</td>';
  235. print '<td width="20">';
  236. if ($user->admin && $conf->global->MAIN_LANG_DEFAULT!='auto') print info_admin($langs->trans("SubmitTranslation",$conf->global->MAIN_LANG_DEFAULT),1);
  237. print '</td>';
  238. print "</tr>";
  239. $var=!$var;
  240. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("EnableMultilangInterface").'</td><td>' . yn($conf->global->MAIN_MULTILANGS) . '</td>';
  241. print '<td width="20">&nbsp;</td>';
  242. print "</tr>";
  243. print '</table><br>'."\n";
  244. // Themes
  245. show_theme('',0);
  246. print '<br>';
  247. // Liste des zone de recherches permanentes supportees
  248. print '<table class="noborder" width="100%">';
  249. print '<tr class="liste_titre"><td width="35%">'.$langs->trans("PermanentLeftSearchForm").'</td><td>'.$langs->trans("Activated").'</td><td>&nbsp;</td></tr>';
  250. $var=true;
  251. foreach ($searchform as $key => $value)
  252. {
  253. $var=!$var;
  254. print '<tr '.$bc[$var].'><td width="35%">'.$searchformtitle[$key].'</td><td>'.yn($searchformconst[$key]).'</td>';
  255. print '<td align="left">'.$langs->trans("IfModuleEnabled",$langs->transnoentitiesnoconv($searchformmodule[$key]));
  256. print '</td></tr>';
  257. }
  258. print '</table>';
  259. print '<br>';
  260. // Other
  261. $var=true;
  262. print '<table class="noborder" width="100%">';
  263. print '<tr class="liste_titre"><td width="35%">'.$langs->trans("Parameter").'</td><td colspan="2">'.$langs->trans("Value").'</td></tr>';
  264. $var=!$var;
  265. print '<tr '.$bc[$var].'><td>'.$langs->trans("EnableShowLogo").'</td><td>' . yn($conf->global->MAIN_SHOW_LOGO) . '</td>';
  266. print '<td width="20">&nbsp;</td>';
  267. print "</tr>";
  268. $var=!$var;
  269. print '<tr '.$bc[$var].'><td>'.$langs->trans("DefaultMaxSizeList").'</td><td>' . $conf->global->MAIN_SIZE_LISTE_LIMIT . '</td>';
  270. print '<td width="20">&nbsp;</td>';
  271. print "</tr>";
  272. // Disable javascript/ajax
  273. $var=!$var;
  274. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableJavascript").'</td><td>';
  275. print yn($conf->global->MAIN_DISABLE_JAVASCRIPT)."</td>";
  276. print '<td width="20">&nbsp;</td>';
  277. print "</tr>";
  278. // Activate preview tab on element card
  279. if (class_exists("Imagick"))
  280. {
  281. $var=!$var;
  282. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("UsePreviewTabs").'</td><td>';
  283. print yn(isset($conf->global->MAIN_USE_PREVIEW_TABS)?$conf->global->MAIN_USE_PREVIEW_TABS:0)."</td>";
  284. print '<td width="20">&nbsp;</td>';
  285. print "</tr>";
  286. }
  287. // First day for weeks
  288. $var=!$var;
  289. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("WeekStartOnDay").'</td><td>';
  290. print $langs->trans("Day".(isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:'1'));
  291. print '</td>';
  292. print '<td width="20">&nbsp;</td>';
  293. print '</tr>';
  294. // Firstname / Name position
  295. $var=!$var;
  296. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("FirstnameNamePosition").'</td><td>';
  297. if (empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)) { print $langs->trans("Firstname").' '.$langs->trans("Lastname"); }
  298. else { print $langs->trans("Lastname").' '.$langs->trans("Firstname"); }
  299. print '</td>';
  300. print '<td width="20">&nbsp;</td>';
  301. print '</tr>';
  302. // Link to help center
  303. $var=!$var;
  304. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableLinkToHelpCenter").'</td><td colspan="2">';
  305. print yn($conf->global->MAIN_HELPCENTER_DISABLELINK,1);
  306. print '</td></tr>';
  307. // Link to wiki help
  308. $var=!$var;
  309. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DisableLinkToHelp",img_picto('',DOL_URL_ROOT.'/theme/common/helpdoc.png','',1)).'</td><td colspan="2">';
  310. print yn($conf->global->MAIN_HELP_DISABLELINK,1);
  311. print '</td></tr>';
  312. // Message login
  313. $var=!$var;
  314. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("MessageLogin").'</td><td colspan="2">';
  315. print dol_htmlcleanlastbr($conf->global->MAIN_HOME);
  316. print '</td></tr>'."\n";
  317. // Message of the day
  318. $var=!$var;
  319. print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("MessageOfDay").'</td><td colspan="2">';
  320. print dol_htmlcleanlastbr($conf->global->MAIN_MOTD);
  321. print '</td></tr>'."\n";
  322. /*
  323. // Show bugtrack link
  324. $var=!$var;
  325. print '<tr '.$bc[$var].'"><td width="35%">'.$langs->trans("ShowBugTrackLink").'</td><td>';
  326. print yn($conf->global->MAIN_BUGTRACK_ENABLELINK)."</td>";
  327. print '<td width="20">&nbsp;</td>';
  328. print "</tr>";
  329. */
  330. print '</table>'."\n";
  331. print '<div class="tabsAction">';
  332. print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a>';
  333. print '</div>';
  334. print '<br>';
  335. }
  336. $db->close();
  337. llxFooter();
  338. ?>