diff --git a/setup/inc/class.setup_html.inc.php b/setup/inc/class.setup_html.inc.php
index fc714df20f..6fd00707fe 100644
--- a/setup/inc/class.setup_html.inc.php
+++ b/setup/inc/class.setup_html.inc.php
@@ -1,322 +1,350 @@
*
- * and Miles Lott *
- * -------------------------------------------- *
- * 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 the *
- * Free Software Foundation; either version 2 of the License, or (at your *
- * option) any later version. *
- \**************************************************************************/
+/**
+ * eGroupWare Setup
+ *
+ * @link http://www.egroupware.org
+ * @package setup
+ * @author Tony Puglisi (Angles)
+ * @author Miles Lott
+ * @author Ralf Becker
+ * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
+ * @version $Id$
+ */
- /* $Id$ */
-
- class setup_html
+/**
+ * Some static helper functions to generate html stuff in setup
+ */
+class setup_html
+{
+ /**
+ * generate header.inc.php file output - NOT a generic html header function
+ *
+ */
+ static function generate_header()
{
- /**
- * generate header.inc.php file output - NOT a generic html header function
- *
- */
- function generate_header()
+ // PHP will automatically replace any dots in incoming
+ // variable names with underscores.
+
+ $GLOBALS['header_template']->set_file(array('header' => 'header.inc.php.template'));
+ $GLOBALS['header_template']->set_block('header','domain','domain');
+ $var = Array();
+
+ $deletedomain = get_var('deletedomain',Array('POST'));
+ $domains = get_var('domains',Array('POST'));
+
+ foreach($domains as $k => $v)
{
- // PHP will automatically replace any dots in incoming
- // variable names with underscores.
-
- $GLOBALS['header_template']->set_file(array('header' => 'header.inc.php.template'));
- $GLOBALS['header_template']->set_block('header','domain','domain');
- $var = Array();
-
- $deletedomain = get_var('deletedomain',Array('POST'));
- $domains = get_var('domains',Array('POST'));
-
- foreach($domains as $k => $v)
+ if(is_array($deletedomain) && isset($deletedomain[$k]))
{
- if(is_array($deletedomain) && isset($deletedomain[$k]))
- {
- continue;
- }
- $variableName = str_replace('.','_',$k);
- $dom = get_var('setting_'.$variableName,Array('POST'));
- $GLOBALS['header_template']->set_var('DB_DOMAIN',$v);
- foreach($dom as $x => $y)
- {
- if(strtoupper($x) == 'CONFIG_PASS')
- {
- $GLOBALS['header_template']->set_var(strtoupper($x),md5($y));
- }
- else
- {
- $GLOBALS['header_template']->set_var(strtoupper($x),$y);
- }
- }
- /* Admin did not type a new password, so use the old one from the hidden field,
- * which is already md5 encoded.
- */
- if($dom['config_password'] && !$dom['config_pass'])
- {
- /* Real == hidden */
- $GLOBALS['header_template']->set_var('CONFIG_PASS',$dom['config_password']);
- }
- /* If the admin didn't select a db_port, set to the default */
- if(!$dom['db_port'])
- {
- $GLOBALS['header_template']->set_var('DB_PORT',$GLOBALS['default_db_ports'][$dom['db_type']]);
- }
- $GLOBALS['header_template']->parse('domains','domain',True);
+ continue;
}
-
- $GLOBALS['header_template']->set_var('domain','');
-
- $setting = get_var('setting',Array('POST'));
- while($setting && list($k,$v) = @each($setting))
+ $variableName = str_replace('.','_',$k);
+ $dom = get_var('setting_'.$variableName,Array('POST'));
+ $GLOBALS['header_template']->set_var('DB_DOMAIN',$v);
+ foreach($dom as $x => $y)
{
- if(strtoupper($k) == 'HEADER_ADMIN_PASSWORD')
+ if(strtoupper($x) == 'CONFIG_PASS')
{
- $var[strtoupper($k)] = md5($v);
+ $GLOBALS['header_template']->set_var(strtoupper($x),md5($y));
}
else
{
- $var[strtoupper($k)] = $v;
+ $GLOBALS['header_template']->set_var(strtoupper($x),$y);
}
}
- /* Admin did not type a new header password, so use the old one from the hidden field,
+ /* Admin did not type a new password, so use the old one from the hidden field,
* which is already md5 encoded.
*/
- if($var['HEADER_ADMIN_PASS'] && empty($setting['HEADER_ADMIN_PASSWORD']))
+ if($dom['config_password'] && !$dom['config_pass'])
{
/* Real == hidden */
- $var['HEADER_ADMIN_PASSWORD'] = $var['HEADER_ADMIN_PASS'];
+ $GLOBALS['header_template']->set_var('CONFIG_PASS',$dom['config_password']);
}
- $GLOBALS['header_template']->set_var($var);
- return $GLOBALS['header_template']->parse('out','header');
+ /* If the admin didn't select a db_port, set to the default */
+ if(!$dom['db_port'])
+ {
+ $GLOBALS['header_template']->set_var('DB_PORT',$GLOBALS['default_db_ports'][$dom['db_type']]);
+ }
+ $GLOBALS['header_template']->parse('domains','domain',True);
}
- function setup_tpl_dir($app_name='setup')
+ $GLOBALS['header_template']->set_var('domain','');
+
+ $setting = get_var('setting',Array('POST'));
+ while($setting && list($k,$v) = @each($setting))
{
- /* hack to get tpl dir */
- if (is_dir(EGW_SERVER_ROOT))
+ if(strtoupper($k) == 'HEADER_ADMIN_PASSWORD')
{
- $srv_root = EGW_SERVER_ROOT . SEP . "$app_name" . SEP;
+ $var[strtoupper($k)] = md5($v);
}
else
{
- $srv_root = '';
+ $var[strtoupper($k)] = $v;
}
+ }
+ /* Admin did not type a new header password, so use the old one from the hidden field,
+ * which is already md5 encoded.
+ */
+ if($var['HEADER_ADMIN_PASS'] && empty($setting['HEADER_ADMIN_PASSWORD']))
+ {
+ /* Real == hidden */
+ $var['HEADER_ADMIN_PASSWORD'] = $var['HEADER_ADMIN_PASS'];
+ }
+ $GLOBALS['header_template']->set_var($var);
+ return $GLOBALS['header_template']->parse('out','header');
+ }
- $tpl_typical = 'templates' . SEP . 'default';
- $tpl_root = "$srv_root" ."$tpl_typical";
- return $tpl_root;
+ static function setup_tpl_dir($app_name='setup')
+ {
+ /* hack to get tpl dir */
+ if (is_dir(EGW_SERVER_ROOT))
+ {
+ $srv_root = EGW_SERVER_ROOT . SEP . "$app_name" . SEP;
+ }
+ else
+ {
+ $srv_root = '';
}
- function show_header($title='',$nologoutbutton=False, $logoutfrom='config', $configdomain='')
+ $tpl_typical = 'templates' . SEP . 'default';
+ $tpl_root = "$srv_root" ."$tpl_typical";
+ return $tpl_root;
+ }
+
+ static function show_header($title='',$nologoutbutton=False, $logoutfrom='config', $configdomain='')
+ {
+ // add a content-type header to overwrite an existing default charset in apache (AddDefaultCharset directiv)
+ header('Content-type: text/html; charset='.$GLOBALS['egw_setup']->system_charset);
+
+ $GLOBALS['setup_tpl']->set_var('charset',$GLOBALS['egw_setup']->system_charset);
+ $style = array(
+ 'th_bg' => '#486591',
+ 'th_text' => '#FFFFFF',
+ 'row_on' => '#DDDDDD',
+ 'row_off' => '#EEEEEE',
+ 'banner_bg' => '#4865F1',
+ 'msg' => '#FF0000',
+ );
+ $GLOBALS['setup_tpl']->set_var($style);
+ if ($nologoutbutton)
{
- // add a content-type header to overwrite an existing default charset in apache (AddDefaultCharset directiv)
- header('Content-type: text/html; charset='.$GLOBALS['egw_setup']->system_charset);
-
- $GLOBALS['setup_tpl']->set_var('charset',$GLOBALS['egw_setup']->system_charset);
- $style = array(
- 'th_bg' => '#486591',
- 'th_text' => '#FFFFFF',
- 'row_on' => '#DDDDDD',
- 'row_off' => '#EEEEEE',
- 'banner_bg' => '#4865F1',
- 'msg' => '#FF0000',
- );
- $GLOBALS['setup_tpl']->set_var($style);
- if ($nologoutbutton)
- {
- $GLOBALS['setup_tpl']->set_block('T_head','loged_in');
- $GLOBALS['setup_tpl']->set_var('loged_in','');
- }
- else
- {
- $btn_logout = '' . lang('Logout').'';
- $check_install = ''.lang('Check installation').'';
- }
-
- $GLOBALS['setup_tpl']->set_var('lang_setup', lang('setup'));
- $GLOBALS['setup_tpl']->set_var('page_title',$title);
- if ($configdomain == '')
- {
- $GLOBALS['setup_tpl']->set_var('configdomain','');
- }
- else
- {
- $GLOBALS['setup_tpl']->set_var('configdomain',' - ' . lang('Domain') . ': ' . $configdomain);
- }
-
- if(basename($_SERVER['SCRIPT_FILENAME']) != 'index.php')
- {
- $index_btn = '' . lang('Setup Main Menu') . '';
- $index_img = '';
- }
-
- $GLOBALS['setup_tpl']->set_var('lang_version',lang('version'));
- $GLOBALS['setup_tpl']->set_var('pgw_ver',@$GLOBALS['egw_info']['server']['versions']['phpgwapi']);
- $GLOBALS['setup_tpl']->set_var(array(
- 'logoutbutton' => $btn_logout,
- 'indexbutton' => $index_btn,
- 'indeximg' => $index_img,
- 'check_install' => $check_install,
- 'main_menu' => lang('Setup Main Menu'),
- 'user_login' => lang('Back to user login')
- ));
-
- // manual / help link to the install manual on egroupware.org
- $manual_remote_egw_url = 'http://manual.egroupware.org/egroupware';
- $url_parts = explode('/',$_SERVER['PHP_SELF']);
- $script = array_pop($url_parts);
- $lang = setup::get_lang();
- $url = $manual_remote_egw_url.'/manual/index.php?referer='.urlencode($manual_remote_egw_url.'/setup/'.$script).
- ($lang ? '&lang='.urlencode($lang) : '');
- $GLOBALS['setup_tpl']->set_var('manual',''.
- htmlspecialchars(lang('Manual / help')).'');
-
- $GLOBALS['setup_tpl']->pparse('out','T_head');
- /* $setup_tpl->set_var('T_head',''); */
+ $GLOBALS['setup_tpl']->set_block('T_head','loged_in');
+ $GLOBALS['setup_tpl']->set_var('loged_in','');
+ }
+ else
+ {
+ $btn_logout = '' . lang('Logout').'';
+ $check_install = ''.lang('Check installation').'';
}
- function show_footer()
+ $GLOBALS['setup_tpl']->set_var('lang_setup', lang('setup'));
+ $GLOBALS['setup_tpl']->set_var('page_title',$title);
+ if ($configdomain == '')
{
- $GLOBALS['setup_tpl']->pparse('out','T_footer');
- unset($GLOBALS['setup_tpl']);
+ $GLOBALS['setup_tpl']->set_var('configdomain','');
+ }
+ else
+ {
+ $GLOBALS['setup_tpl']->set_var('configdomain',' - ' . lang('Domain') . ': ' . $configdomain);
}
- function show_alert_msg($alert_word='Setup alert',$alert_msg='setup alert (generic)')
+ if(basename($_SERVER['SCRIPT_FILENAME']) != 'index.php')
{
- $GLOBALS['setup_tpl']->set_var('V_alert_word',$alert_word);
- $GLOBALS['setup_tpl']->set_var('V_alert_msg',$alert_msg);
- $GLOBALS['setup_tpl']->pparse('out','T_alert_msg');
+ $index_btn = '' . lang('Setup Main Menu') . '';
+ $index_img = '';
}
- function make_frm_btn_simple($pre_frm_blurb='',$frm_method='post',$frm_action='',$input_type='submit',$input_value='',$post_frm_blurb='')
+ $GLOBALS['setup_tpl']->set_var('lang_version',lang('version'));
+ $GLOBALS['setup_tpl']->set_var('pgw_ver',@$GLOBALS['egw_info']['server']['versions']['phpgwapi']);
+ $GLOBALS['setup_tpl']->set_var(array(
+ 'logoutbutton' => $btn_logout,
+ 'indexbutton' => $index_btn,
+ 'indeximg' => $index_img,
+ 'check_install' => $check_install,
+ 'main_menu' => lang('Setup Main Menu'),
+ 'user_login' => lang('Back to user login')
+ ));
+
+ // manual / help link to the install manual on egroupware.org
+ $manual_remote_egw_url = 'http://manual.egroupware.org/egroupware';
+ $url_parts = explode('/',$_SERVER['PHP_SELF']);
+ $script = array_pop($url_parts);
+ $lang = setup::get_lang();
+ $url = $manual_remote_egw_url.'/manual/index.php?referer='.urlencode($manual_remote_egw_url.'/setup/'.$script).
+ ($lang ? '&lang='.urlencode($lang) : '');
+ $GLOBALS['setup_tpl']->set_var('manual',''.
+ htmlspecialchars(lang('Manual / help')).'');
+
+ $GLOBALS['setup_tpl']->pparse('out','T_head');
+ /* $setup_tpl->set_var('T_head',''); */
+ }
+
+ static function show_footer()
+ {
+ $GLOBALS['setup_tpl']->pparse('out','T_footer');
+ unset($GLOBALS['setup_tpl']);
+ }
+
+ static function show_alert_msg($alert_word='Setup alert',$alert_msg='setup alert (generic)')
+ {
+ $GLOBALS['setup_tpl']->set_var('V_alert_word',$alert_word);
+ $GLOBALS['setup_tpl']->set_var('V_alert_msg',$alert_msg);
+ $GLOBALS['setup_tpl']->pparse('out','T_alert_msg');
+ }
+
+ static function make_frm_btn_simple($pre_frm_blurb='',$frm_method='post',$frm_action='',$input_type='submit',$input_value='',$post_frm_blurb='')
+ {
+ /* a simple form has simple components */
+ $simple_form = $pre_frm_blurb ."\n"
+ . '' . "\n"
+ . $post_frm_blurb . "\n";
+ return $simple_form;
+ }
+
+ static function make_href_link_simple($pre_link_blurb='',$href_link='',$href_text='default text',$post_link_blurb='')
+ {
+ /* a simple href link has simple components */
+ $simple_link = $pre_link_blurb
+ . '' . $href_text . ' '
+ . $post_link_blurb . "\n";
+ return $simple_link;
+ }
+
+ static function login_form()
+ {
+ /* begin use TEMPLATE login_main.tpl */
+ $GLOBALS['setup_tpl']->set_var('ConfigLoginMSG',@$GLOBALS['egw_info']['setup']['ConfigLoginMSG']);
+ $GLOBALS['setup_tpl']->set_var('HeaderLoginMSG',@$GLOBALS['egw_info']['setup']['HeaderLoginMSG']);
+ $GLOBALS['setup_tpl']->set_var('lang_header_username',lang('Header Username'));
+ $GLOBALS['setup_tpl']->set_var('lang_header_password',lang('Header Password'));
+ $GLOBALS['setup_tpl']->set_var('lang_header_login',lang('Header Admin Login'));
+ $GLOBALS['setup_tpl']->set_var('lang_config_login',lang('Setup/Config Admin Login'));
+ $GLOBALS['setup_tpl']->set_var('lang_config_username',lang('Config Username'));
+ $GLOBALS['setup_tpl']->set_var('lang_config_password',lang('Config Password'));
+ $GLOBALS['setup_tpl']->set_var('lang_domain',lang('Domain'));
+
+ $GLOBALS['setup_tpl']->set_var('lang_select',self::lang_select());
+
+ if ($GLOBALS['egw_info']['setup']['stage']['header'] == '10')
{
- /* a simple form has simple components */
- $simple_form = $pre_frm_blurb ."\n"
- . '' . "\n"
- . $post_frm_blurb . "\n";
- return $simple_form;
- }
-
- function make_href_link_simple($pre_link_blurb='',$href_link='',$href_text='default text',$post_link_blurb='')
- {
- /* a simple href link has simple components */
- $simple_link = $pre_link_blurb
- . '' . $href_text . ' '
- . $post_link_blurb . "\n";
- return $simple_link;
- }
-
- function login_form()
- {
- /* begin use TEMPLATE login_main.tpl */
- $GLOBALS['setup_tpl']->set_var('ConfigLoginMSG',@$GLOBALS['egw_info']['setup']['ConfigLoginMSG']);
- $GLOBALS['setup_tpl']->set_var('HeaderLoginMSG',@$GLOBALS['egw_info']['setup']['HeaderLoginMSG']);
- $GLOBALS['setup_tpl']->set_var('lang_header_username',lang('Header Username'));
- $GLOBALS['setup_tpl']->set_var('lang_header_password',lang('Header Password'));
- $GLOBALS['setup_tpl']->set_var('lang_header_login',lang('Header Admin Login'));
- $GLOBALS['setup_tpl']->set_var('lang_config_login',lang('Setup/Config Admin Login'));
- $GLOBALS['setup_tpl']->set_var('lang_config_username',lang('Config Username'));
- $GLOBALS['setup_tpl']->set_var('lang_config_password',lang('Config Password'));
- $GLOBALS['setup_tpl']->set_var('lang_domain',lang('Domain'));
-
- $GLOBALS['setup_tpl']->set_var('lang_select',lang_select());
-
- if ($GLOBALS['egw_info']['setup']['stage']['header'] == '10')
+ /*
+ Begin use SUB-TEMPLATE login_stage_header,
+ fills V_login_stage_header used inside of login_main.tpl
+ */
+ if (count($GLOBALS['egw_domain']) > 1)
{
- /*
- Begin use SUB-TEMPLATE login_stage_header,
- fills V_login_stage_header used inside of login_main.tpl
- */
- if (count($GLOBALS['egw_domain']) > 1)
+ foreach($GLOBALS['egw_domain'] as $domain => $data)
{
- foreach($GLOBALS['egw_domain'] as $domain => $data)
- {
- $domains .= "\n";
- }
- $GLOBALS['setup_tpl']->set_var('domains',$domains);
+ $domains .= "\n";
+ }
+ $GLOBALS['setup_tpl']->set_var('domains',$domains);
- // use BLOCK B_multi_domain inside of login_stage_header
- $GLOBALS['setup_tpl']->parse('V_multi_domain','B_multi_domain');
- // in this case, the single domain block needs to be nothing
- $GLOBALS['setup_tpl']->set_var('V_single_domain','');
+ // use BLOCK B_multi_domain inside of login_stage_header
+ $GLOBALS['setup_tpl']->parse('V_multi_domain','B_multi_domain');
+ // in this case, the single domain block needs to be nothing
+ $GLOBALS['setup_tpl']->set_var('V_single_domain','');
+ }
+ else
+ {
+ reset($GLOBALS['egw_domain']);
+ $default_domain = each($GLOBALS['egw_domain']);
+ $GLOBALS['setup_tpl']->set_var('default_domain_zero',$default_domain[0]);
+
+ /* Use BLOCK B_single_domain inside of login_stage_header */
+ $GLOBALS['setup_tpl']->parse('V_single_domain','B_single_domain');
+ /* in this case, the multi domain block needs to be nothing */
+ $GLOBALS['setup_tpl']->set_var('V_multi_domain','');
+ }
+ /*
+ End use SUB-TEMPLATE login_stage_header
+ put all this into V_login_stage_header for use inside login_main
+ */
+ $GLOBALS['setup_tpl']->parse('V_login_stage_header','T_login_stage_header');
+ }
+ else
+ {
+ /* begin SKIP SUB-TEMPLATE login_stage_header */
+ $GLOBALS['setup_tpl']->set_var('V_multi_domain','');
+ $GLOBALS['setup_tpl']->set_var('V_single_domain','');
+ $GLOBALS['setup_tpl']->set_var('V_login_stage_header','');
+ }
+ /*
+ end use TEMPLATE login_main.tpl
+ now out the login_main template
+ */
+ $GLOBALS['setup_tpl']->pparse('out','T_login_main');
+ }
+
+ static function lang_select($onChange=False,$ConfigLang='')
+ {
+ if (!$ConfigLang)
+ {
+ $ConfigLang = setup::get_lang();
+ }
+ $select = '' . "\n";
+
+ return $select;
}
-?>
+
+ static function get_template_list()
+ {
+ $d = dir(EGW_SERVER_ROOT . '/phpgwapi/templates');
+
+ while($entry = $d->read())
+ {
+ if ($entry != 'CVS' && $entry != '.' && $entry != '..')
+ {
+ $list[$entry]['name'] = $entry;
+ $f = EGW_SERVER_ROOT . '/phpgwapi/templates/' . $entry . '/details.inc.php';
+ if (file_exists ($f))
+ {
+ include($f);
+ $list[$entry]['title'] = 'Use ' . $GLOBALS['egw_info']['template'][$entry]['title'] . 'interface';
+ }
+ else
+ {
+ $list[$entry]['title'] = $entry;
+ }
+ }
+ }
+ $d->close();
+ reset ($list);
+ return $list;
+ }
+
+ static function list_themes()
+ {
+ $dh = dir(EGW_SERVER_ROOT . '/phpgwapi/themes');
+ while ($file = $dh->read())
+ {
+ if (preg_match('/'."\.theme$".'/i', $file))
+ {
+ $list[] = substr($file,0,strpos($file,'.'));
+ }
+ }
+ $dh->close();
+ reset ($list);
+ return $list;
+ }
+}
diff --git a/setup/inc/functions.inc.php b/setup/inc/functions.inc.php
index d398c0ac8c..62aad93fa8 100644
--- a/setup/inc/functions.inc.php
+++ b/setup/inc/functions.inc.php
@@ -75,65 +75,6 @@ function lang($key,$vars=null)
return $GLOBALS['egw_setup']->translation->translate("$key", $vars);
}
-/**
- * returns array of languages we support, with enabled set to True if the lang file exists
- */
-function get_langs()
-{
- $f = fopen('./lang/languages','rb');
- while($line = fgets($f,200))
- {
- list($x,$y) = explode("\t",$line);
- $languages[$x]['lang'] = trim($x);
- $languages[$x]['descr'] = trim($y);
- $languages[$x]['available'] = False;
- }
- fclose($f);
-
- $d = dir('./lang');
- while($file=$d->read())
- {
- if(preg_match('/^(php|e)gw_([-a-z]+).lang$/i',$file,$matches))
- {
- $languages[$matches[2]]['available'] = True;
- }
- }
- $d->close();
-
- //print_r($languages);
- return $languages;
-}
-
-function lang_select($onChange=False,$ConfigLang='')
-{
- if (!$ConfigLang)
- {
- $ConfigLang = setup::get_lang();
- }
- $select = '' . "\n";
-
- return $select;
-}
-
if(file_exists(EGW_SERVER_ROOT.'/phpgwapi/setup/setup.inc.php'))
{
include(EGW_SERVER_ROOT.'/phpgwapi/setup/setup.inc.php'); /* To set the current core version */
diff --git a/setup/index.php b/setup/index.php
index cb68b723a5..de0d9e5bcb 100644
--- a/setup/index.php
+++ b/setup/index.php
@@ -480,7 +480,7 @@ switch($GLOBALS['egw_info']['setup']['stage']['lang'])
break;
case 10:
$langs_list = array();
- $languages = get_langs();
+ $languages = setup_translation::get_supported_langs();
foreach ($GLOBALS['egw_info']['setup']['installed_langs'] as $key => $value)
{
$langs_list[] = isset($languages[$key]) ? $languages[$key]['descr'] : $value;