From d5f24185da31ca8dc19a79724788b4f064842211 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 25 Apr 2005 22:55:49 +0000 Subject: [PATCH] New: Ajout previsualisation du theme dans page de configuration interface --- htdocs/admin/ihm.php | 353 +++++++++++++++++++-------------- htdocs/theme/dev/thumb.png | Bin 0 -> 4133 bytes htdocs/theme/eldy/thumb.png | Bin 0 -> 4505 bytes htdocs/theme/freelug/thumb.png | Bin 0 -> 4506 bytes htdocs/theme/yellow/thumb.png | Bin 0 -> 4591 bytes 5 files changed, 203 insertions(+), 150 deletions(-) create mode 100644 htdocs/theme/dev/thumb.png create mode 100644 htdocs/theme/eldy/thumb.png create mode 100644 htdocs/theme/freelug/thumb.png create mode 100644 htdocs/theme/yellow/thumb.png diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php index 7a71eff2208..809d9566599 100644 --- a/htdocs/admin/ihm.php +++ b/htdocs/admin/ihm.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004 Laurent Destailleur + * Copyright (C) 2004-2005 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,9 +21,9 @@ */ /** - \file htdocs/admin/ihm.php + \file htdocs/admin/ihm.php \brief Page de configuration du de l'interface homme machine - \version $Revision$ + \version $Revision$ */ require("./pre.inc.php"); @@ -34,9 +34,13 @@ $langs->load("admin"); if (!$user->admin) - accessforbidden(); +accessforbidden(); +$dirtop = "../includes/menus/barre_top"; +$dirleft = "../includes/menus/barre_left"; +$dirtheme = "../theme"; + // Liste des zone de recherche permanantes supportées $searchform=array("main_searchform_societe","main_searchform_contact","main_searchform_produitservice"); $searchformconst=array(MAIN_SEARCHFORM_SOCIETE,MAIN_SEARCHFORM_CONTACT,MAIN_SEARCHFORM_PRODUITSERVICE); @@ -46,21 +50,21 @@ $searchformtitle=array($langs->trans("Companies"),$langs->trans("Contacts"),$lan if ($_POST["action"] == 'update') { - dolibarr_set_const($db, "MAIN_LANG_DEFAULT", $_POST["main_lang_default"]); - dolibarr_set_const($db, "MAIN_MENU_BARRETOP", $_POST["main_menu_barretop"]); - dolibarr_set_const($db, "MAIN_MENU_BARRELEFT", $_POST["main_menu_barreleft"]); - dolibarr_set_const($db, "MAIN_THEME", $_POST["main_theme"]); + dolibarr_set_const($db, "MAIN_LANG_DEFAULT", $_POST["main_lang_default"]); + dolibarr_set_const($db, "MAIN_MENU_BARRETOP", $_POST["main_menu_barretop"]); + dolibarr_set_const($db, "MAIN_MENU_BARRELEFT", $_POST["main_menu_barreleft"]); + dolibarr_set_const($db, "MAIN_THEME", $_POST["main_theme"]); - dolibarr_set_const($db, "SIZE_LISTE_LIMIT", $_POST["size_liste_limit"]); - dolibarr_set_const($db, "MAIN_MOTD", trim($_POST["main_motd"])); + dolibarr_set_const($db, "SIZE_LISTE_LIMIT", $_POST["size_liste_limit"]); + dolibarr_set_const($db, "MAIN_MOTD", trim($_POST["main_motd"])); - dolibarr_set_const($db, "MAIN_SEARCHFORM_CONTACT",$_POST["main_searchform_contact"]); - dolibarr_set_const($db, "MAIN_SEARCHFORM_SOCIETE",$_POST["main_searchform_societe"]); - dolibarr_set_const($db, "MAIN_SEARCHFORM_PRODUITSERVICE",$_POST["main_searchform_produitservice"]); + dolibarr_set_const($db, "MAIN_SEARCHFORM_CONTACT",$_POST["main_searchform_contact"]); + dolibarr_set_const($db, "MAIN_SEARCHFORM_SOCIETE",$_POST["main_searchform_societe"]); + dolibarr_set_const($db, "MAIN_SEARCHFORM_PRODUITSERVICE",$_POST["main_searchform_produitservice"]); - $_SESSION["mainmenu"]=""; - - Header("Location: ihm.php?mainmenu=home&leftmenu=setup"); + $_SESSION["mainmenu"]=""; + + Header("Location: ihm.php?mainmenu=home&leftmenu=setup"); } @@ -68,7 +72,7 @@ llxHeader(); if (!defined("MAIN_MOTD") && strlen(trim(MAIN_MOTD))) { - define("MAIN_MOTD",""); + define("MAIN_MOTD",""); } print_titre($langs->trans("GUISetup")); @@ -79,154 +83,203 @@ print "
\n"; if ($_GET["action"] == 'edit') { - print '
'; + print ''; + print ''; - clearstatcache(); + clearstatcache(); + $var=true; + + print ''; + print ''; - print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; - print ''; - - // Langue par defaut - print ''; - - // Menu top - print ''; - print ''; - - // Menu left - print ''; - print ''; - - // Theme - print ''; - print ''; - - // Taille max des listes - print ''; - - // Message of the day - print ''; - - print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("DefaultLanguage").''; - $html=new Form($db); - $html->select_lang(MAIN_LANG_DEFAULT,'main_lang_default'); - print '
'.$langs->trans("MenuTopManager").''; - print '
'.$langs->trans("MenuLeftManager").''; - print '
'.$langs->trans("Skin").''; - print ''; - print '
'.$langs->trans("MaxSizeList").'
'.$langs->trans("MessageOfDay").'

'; - - // Liste des zone de recherche permanantes supportées - print ''; - print ''; - $var=True; - foreach ($searchform as $key => $value) { + // Langue par defaut $var=!$var; - print ''; - } - print '
'.$langs->trans("PermanentLeftSearchForm").''.$langs->trans("Activated").'
'.$searchformtitle[$key].''; - $html->selectyesnonum($searchform[$key],$searchformconst[$key]); + print '
'.$langs->trans("DefaultLanguage").''; + $html=new Form($db); + $html->select_lang(MAIN_LANG_DEFAULT,'main_lang_default'); print '

'; - print '
'; - print ''; - print '
'; + // Menu top + $var=!$var; + print ''.$langs->trans("MenuTopManager").''; + print ''; + print ''; + + // Menu left + $var=!$var; + print ''.$langs->trans("MenuLeftManager").''; + print ''; + print ''; + + // Taille max des listes + $var=!$var; + print ''.$langs->trans("MaxSizeList").''; + + // Message of the day + $var=!$var; + print ''.$langs->trans("MessageOfDay").''; + + print '
'; + + + // Theme + show_theme(1); + print '
'; + + + // Liste des zone de recherche permanantes supportées + print ''; + print ''; + $var=True; + foreach ($searchform as $key => $value) { + $var=!$var; + print ''; + } + print '
'.$langs->trans("PermanentLeftSearchForm").''.$langs->trans("Activated").'
'.$searchformtitle[$key].''; + $html->selectyesnonum($searchform[$key],$searchformconst[$key]); + print '
'; + + print '
'; + print ''; + print '
'; + + print '
'; } else { + $var=true; - print ''; - print ''; + print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; + print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - print ''; - - print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("DefaultLanguage").'' . MAIN_LANG_DEFAULT . '
'.$langs->trans("MenuTopManager").''; - $filelib=eregi_replace('\.php$','',MAIN_MENU_BARRETOP); - print $filelib; - print '
'.$langs->trans("MenuLeftManager").''; - $filelib=eregi_replace('\.php$','',MAIN_MENU_BARRELEFT); - print $filelib; - print '
'.$langs->trans("Skin").'' . MAIN_THEME . '
'.$langs->trans("MaxSizeList").'' . SIZE_LISTE_LIMIT . '
'.$langs->trans("MessageOfDay").'' . stripslashes(nl2br(MAIN_MOTD)) . '

'; - - // Liste des zone de recherche permanantes supportées - print ''; - print ''; - $var=True; - foreach ($searchform as $key => $value) { $var=!$var; - print ''; - } - print '
'.$langs->trans("PermanentLeftSearchForm").''.$langs->trans("Activated").'
'.$searchformtitle[$key].'' . ($searchformconst[$key]?$langs->trans("yes"):$langs->trans("no")) . '

'; + print ''.$langs->trans("DefaultLanguage").'' . MAIN_LANG_DEFAULT . ''; - print '
'; - print ''.$langs->trans("Edit").''; - print '
'; + $var=!$var; + print ''.$langs->trans("MenuTopManager").''; + $filelib=eregi_replace('\.php$','',MAIN_MENU_BARRETOP); + print $filelib; + print ''; + + $var=!$var; + print ''.$langs->trans("MenuLeftManager").''; + $filelib=eregi_replace('\.php$','',MAIN_MENU_BARRELEFT); + print $filelib; + print ''; + + $var=!$var; + print ''.$langs->trans("MaxSizeList").'' . SIZE_LISTE_LIMIT . ''; + + $var=!$var; + print ''.$langs->trans("MessageOfDay").'' . stripslashes(nl2br(MAIN_MOTD)) . ''; + + print '
'; + + + // Skin + show_theme(0); + print '
'; + + // Liste des zone de recherche permanantes supportées + print ''; + print ''; + $var=True; + foreach ($searchform as $key => $value) { + $var=!$var; + print ''; + } + print '
'.$langs->trans("PermanentLeftSearchForm").''.$langs->trans("Activated").'
'.$searchformtitle[$key].'' . ($searchformconst[$key]?$langs->trans("yes"):$langs->trans("no")) . '
'; + + print '
'; + print ''.$langs->trans("Edit").''; + print '
'; } -llxFooter("Dernière modification $Date$ révision $Revision$"); +function show_theme($edit=0) +{ + global $langs,$dirtheme,$bc; + + $nbofthumbs=4; + print ''; + print ''; + + $handle=opendir($dirtheme); + $i=0; + while (($subdir = readdir($handle))!==false) + { + if (is_dir($dirtheme."/".$subdir) && substr($subdir, 0, 1) <> '.' && substr($subdir, 0, 3) <> 'CVS') + { + if ($i % $nbofthumbs == 0) { + print ''; + } + + print ''; + + $i++; + + if ($i % $nbofthumbs == 0) print ''; + } + } + if ($i % $nbofthumbs != 0) { + while ($i % $nbofthumbs != 0) { + print ''; + $i++; + } + print ''; + } + + print '
'.$langs->trans("Skin").'
'; + $file=$dirtheme."/".$subdir."/thumb.png"; + if (! file_exists($file)) $file=$dirtheme."/nophoto.jpg"; + print '
'; + if ($subdir == MAIN_THEME) + { + print ' '.$subdir.''; + } + else + { + print ' '.$subdir; + } + print '
 
'; +} + +llxFooter('$Date$ - $Revision$'); ?> diff --git a/htdocs/theme/dev/thumb.png b/htdocs/theme/dev/thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2f3233305cd52d7ca1010a1ae7e8f5a260755090 GIT binary patch literal 4133 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 literal 0 HcmV?d00001 diff --git a/htdocs/theme/eldy/thumb.png b/htdocs/theme/eldy/thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..75792e46294bd3895db0624135bc3a5fd6a8ce42 GIT binary patch literal 4505 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 literal 0 HcmV?d00001 diff --git a/htdocs/theme/freelug/thumb.png b/htdocs/theme/freelug/thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7f06a93564f97409759076dce982f60045502d7f GIT binary patch literal 4506 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