diff --git a/setup/inc/class.setup_html.inc.php b/setup/inc/class.setup_html.inc.php new file mode 100644 index 0000000000..00d50a9c51 --- /dev/null +++ b/setup/inc/class.setup_html.inc.php @@ -0,0 +1,322 @@ + * + * 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. * + \**************************************************************************/ + + /* $Id$ */ + + class setup_html + { + /** + * 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) + { + 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); + } + + $GLOBALS['header_template']->set_var('domain',''); + + $setting = get_var('setting',Array('POST')); + while($setting && list($k,$v) = @each($setting)) + { + if(strtoupper($k) == 'HEADER_ADMIN_PASSWORD') + { + $var[strtoupper($k)] = md5($v); + } + else + { + $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'); + } + + 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 = ''; + } + + $tpl_typical = 'templates' . SEP . 'default'; + $tpl_root = "$srv_root" ."$tpl_typical"; + return $tpl_root; + } + + 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) + { + $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 = get_var('ConfigLang',Array('POST','COOKIE')); + $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',''); */ + } + + function show_footer() + { + $GLOBALS['setup_tpl']->pparse('out','T_footer'); + unset($GLOBALS['setup_tpl']); + } + + 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'); + } + + 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; + } + + 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) + { + foreach($GLOBALS['egw_domain'] as $domain => $data) + { + $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',''); + } + 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'); + } + + 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; + } + + function list_themes() + { + $dh = dir(EGW_SERVER_ROOT . '/phpgwapi/themes'); + while ($file = $dh->read()) + { + if (eregi("\.theme$", $file)) + { + $list[] = substr($file,0,strpos($file,'.')); + } + } + $dh->close(); + reset ($list); + return $list; + } + } +?>