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 = 'ball'; - } - - $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 = 'ball'; } - 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" + . '' . "\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" - . '' . "\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;