reworked manageheader:

- removed include_root (is now always identical to server_root)
- removed mcrypt_version (not relevant to todays php versions)
- replaced session_type with session_handler
- look is now a bit more like setup and eGroupware itself
--> updated header-version to 1.29 forcing everyone to update
This commit is contained in:
Ralf Becker 2008-10-09 16:22:42 +00:00
parent 71063707a4
commit b6996bee01
6 changed files with 167 additions and 278 deletions

View File

@ -92,7 +92,7 @@ include(EGW_SERVER_ROOT.'/phpgwapi/setup/setup.inc.php');
$GLOBALS['egw_info']['server']['versions']['phpgwapi'] = $setup_info['phpgwapi']['version']; $GLOBALS['egw_info']['server']['versions']['phpgwapi'] = $setup_info['phpgwapi']['version'];
$GLOBALS['egw_info']['server']['versions']['current_header'] = $setup_info['phpgwapi']['versions']['current_header']; $GLOBALS['egw_info']['server']['versions']['current_header'] = $setup_info['phpgwapi']['versions']['current_header'];
unset($setup_info); unset($setup_info);
$GLOBALS['egw_info']['server']['versions']['header'] = '1.28'; $GLOBALS['egw_info']['server']['versions']['header'] = '1.29';
if(!isset($GLOBALS['egw_info']['flags']['noapi']) || !$GLOBALS['egw_info']['flags']['noapi']) if(!isset($GLOBALS['egw_info']['flags']['noapi']) || !$GLOBALS['egw_info']['flags']['noapi'])
{ {

View File

@ -13,7 +13,7 @@
$setup_info['phpgwapi']['name'] = 'phpgwapi'; $setup_info['phpgwapi']['name'] = 'phpgwapi';
$setup_info['phpgwapi']['title'] = 'eGroupWare API'; $setup_info['phpgwapi']['title'] = 'eGroupWare API';
$setup_info['phpgwapi']['version'] = '1.5.015'; $setup_info['phpgwapi']['version'] = '1.5.015';
$setup_info['phpgwapi']['versions']['current_header'] = '1.28'; $setup_info['phpgwapi']['versions']['current_header'] = '1.29';
$setup_info['phpgwapi']['enable'] = 3; $setup_info['phpgwapi']['enable'] = 3;
$setup_info['phpgwapi']['app_order'] = 1; $setup_info['phpgwapi']['app_order'] = 1;

View File

@ -38,7 +38,7 @@ class setup_detection
{ {
$tname = Array(); $tname = Array();
$GLOBALS['egw_setup']->db->Halt_On_Error = 'no'; $GLOBALS['egw_setup']->db->Halt_On_Error = 'no';
$GLOBALS['egw_setup']->set_table_names(); $GLOBALS['egw_setup']->set_table_names();
if($GLOBALS['egw_setup']->table_exist(array($GLOBALS['egw_setup']->applications_table))) if($GLOBALS['egw_setup']->table_exist(array($GLOBALS['egw_setup']->applications_table)))
@ -342,8 +342,8 @@ class setup_detection
$config_errors[] = lang("Your temporary directory '%1' %2",$config['temp_dir'],$error_msg); $config_errors[] = lang("Your temporary directory '%1' %2",$config['temp_dir'],$error_msg);
} }
if ((!isset($config['file_repository']) || $config['file_repository'] == 'sql') && if ((!isset($config['file_repository']) || $config['file_repository'] == 'sql') &&
(!isset($config['file_store_contents']) || $config['file_store_contents'] == 'filesystem') && (!isset($config['file_store_contents']) || $config['file_store_contents'] == 'filesystem') &&
!$this->check_dir($config['files_dir'],$error_msg,true)) !$this->check_dir($config['files_dir'],$error_msg,true))
{ {
$config_errors[] = lang("Your files directory '%1' %2",$config['files_dir'],$error_msg); $config_errors[] = lang("Your files directory '%1' %2",$config['files_dir'],$error_msg);
@ -487,7 +487,7 @@ class setup_detection
return True; return True;
} }
} }
/** /**
* Checks if a directory exists, is writable by the webserver and optionaly is in the docroot * Checks if a directory exists, is writable by the webserver and optionaly is in the docroot
* *
@ -512,15 +512,15 @@ class setup_detection
{ {
$docroots = array(realpath(EGW_SERVER_ROOT),realpath($_SERVER['DOCUMENT_ROOT'])); $docroots = array(realpath(EGW_SERVER_ROOT),realpath($_SERVER['DOCUMENT_ROOT']));
$dir = realpath($dir); $dir = realpath($dir);
foreach ($docroots as $docroot) foreach ($docroots as $docroot)
{ {
$len = strlen($docroot); $len = strlen($docroot);
if ($docroot == substr($dir,0,$len) && $len>0) if ($docroot == substr($dir,0,$len) && $len>0)
{ {
$rest = substr($dir,$len); $rest = substr($dir,$len);
if (!strlen($rest) || $rest[0] == DIRECTORY_SEPARATOR) if (!strlen($rest) || $rest[0] == DIRECTORY_SEPARATOR)
{ {
$msg = lang('is in the webservers docroot'); $msg = lang('is in the webservers docroot');

View File

@ -31,6 +31,7 @@ $setup_tpl->set_block('T_setup_manage','domain','domain');
// authentication phase // authentication phase
$GLOBALS['egw_info']['setup']['stage']['header'] = $GLOBALS['egw_setup']->detection->check_header(); $GLOBALS['egw_info']['setup']['stage']['header'] = $GLOBALS['egw_setup']->detection->check_header();
if ($GLOBALS['egw_info']['setup']['stage']['header'] > 2 && !$GLOBALS['egw_setup']->auth('Header')) if ($GLOBALS['egw_info']['setup']['stage']['header'] > 2 && !$GLOBALS['egw_setup']->auth('Header'))
{ {
$GLOBALS['egw_setup']->html->show_header('Please login',True); $GLOBALS['egw_setup']->html->show_header('Please login',True);
@ -72,7 +73,6 @@ if (!file_exists('../header.inc.php') || !is_readable('../header.inc.php'))
else else
{ {
$GLOBALS['egw_info']['server']['server_root'] = EGW_SERVER_ROOT; $GLOBALS['egw_info']['server']['server_root'] = EGW_SERVER_ROOT;
$GLOBALS['egw_info']['server']['include_root'] = EGW_INCLUDE_ROOT;
} }
if (isset($_POST['setting'])) // Post of the header-form if (isset($_POST['setting'])) // Post of the header-form
{ {
@ -159,8 +159,6 @@ function check_header_form()
case 'new_admin_password': case 'new_admin_password':
if ($value) $GLOBALS['egw_info']['server']['header_admin_password'] = md5($value); if ($value) $GLOBALS['egw_info']['server']['header_admin_password'] = md5($value);
break; break;
case 'mcrypt_version':
$GLOBALS['egw_info']['server']['versions']['mcrypt'] = $value;
default: default:
$GLOBALS['egw_info']['server'][$name] = $value; $GLOBALS['egw_info']['server'][$name] = $value;
break; break;
@ -187,8 +185,7 @@ function check_header_form()
// validate the input and return errors // validate the input and return errors
$validation_errors = $GLOBALS['egw_setup']->header->validation_errors( $validation_errors = $GLOBALS['egw_setup']->header->validation_errors(
$GLOBALS['egw_info']['server']['server_root'], $GLOBALS['egw_info']['server']['server_root'],$GLOBALS['egw_info']['server']['server_root']);
$GLOBALS['egw_info']['server']['include_root']);
//echo "egw_info[server]=<pre>".print_r($GLOBALS['egw_info']['server'],true)."</pre>\n"; //echo "egw_info[server]=<pre>".print_r($GLOBALS['egw_info']['server'],true)."</pre>\n";
//echo "egw_domain=<pre>".print_r($GLOBALS['egw_domain'],true)."</pre>\n"; //echo "egw_domain=<pre>".print_r($GLOBALS['egw_domain'],true)."</pre>\n";
@ -225,15 +222,6 @@ function show_header_form($validation_errors)
$GLOBALS['egw_setup']->html->show_footer(); $GLOBALS['egw_setup']->html->show_footer();
exit; exit;
} }
if((float) PHP_VERSION < $GLOBALS['egw_setup']->required_php_version)
{
echo '<p align="center" class="msg"><b>' .
lang('You are using PHP version %1. eGroupWare now requires %2 or later, recommended is PHP %3.',
PHP_VERSION,$GLOBALS['egw_setup']->required_php_version,$GLOBALS['egw_setup']->recommended_php_version) .
"</b></p>\n";
$GLOBALS['egw_setup']->html->show_footer();
exit;
}
$supported_db = $GLOBALS['egw_setup']->header->check_db_support($detected); $supported_db = $GLOBALS['egw_setup']->header->check_db_support($detected);
if (!count($supported_db)) if (!count($supported_db))
@ -253,40 +241,7 @@ function show_header_form($validation_errors)
} }
$setup_tpl->set_var('js_default_db_ports',$js_default_db_ports); $setup_tpl->set_var('js_default_db_ports',$js_default_db_ports);
// checking PHP session support if ($validation_errors) $setup_tpl->set_var('detected','<ul><li>'.implode("</li>\n<li>",$validation_errors)."</li>\n</ul>\n");
if ($GLOBALS['egw_setup']->header->check_load_extension('session'))
{
$detected[] = lang('You appear to have PHP session support. Enabling PHP sessions.');
$supported_sessions_type['php4'] = 'PHP'; // makeing php sessions the default
$supported_sessions_type['php4-restore'] = lang('PHP plus restore'); // php-sessions with restore of egw_info array and egw object from the session
}
$supported_sessions_type['db'] = lang('Database');
if (file_exists('../header.inc.php') && is_file('../header.inc.php') && is_readable('../header.inc.php'))
{
$detected[] = lang('Found existing configuration file. Loading settings from the file...');
// This code makes sure the newer multi-domain supporting header.inc.php is being used
if(!isset($GLOBALS['egw_domain']))
{
$detected[] = lang('You need to add some domains to your header.inc.php.');
$GLOBALS['egw_domain']['default'] = $GLOBALS['egw_setup']->header->domain_defaults(
$GLOBALS['egw_info']['server']['header_admin_user'],
$GLOBALS['egw_info']['server']['header_admin_password'],$supported_db);
}
elseif(@$GLOBALS['egw_info']['server']['header_version'] != @$GLOBALS['egw_info']['server']['current_header_version'])
{
$detected[] = lang("You're using an old header.inc.php version...");
$detected[] = lang('Importing old settings into the new format....');
}
}
else // no config file found => using or detecting the defaults
{
$detected[] = lang('Sample configuration not found. Using built in defaults');
}
if ($validation_errors) $detected = $validation_errors;
$setup_tpl->set_var('detected','<ul><li>'.implode("</li>\n<li>",$detected)."</li>\n</ul>\n");
if ($_POST['adddomain']) if ($_POST['adddomain'])
{ {
@ -305,18 +260,22 @@ function show_header_form($validation_errors)
case 'mcrypt_enabled': case 'mcrypt_enabled':
$setup_tpl->set_var($name.($GLOBALS['egw_info']['server'][$name] ? '_yes' : '_no'),' selected="selected"'); $setup_tpl->set_var($name.($GLOBALS['egw_info']['server'][$name] ? '_yes' : '_no'),' selected="selected"');
break; break;
case 'versions':
$setup_tpl->set_var('mcrypt_version',htmlspecialchars($GLOBALS['egw_info']['server']['versions']['mcrypt']));
break;
default: default:
$setup_tpl->set_var($name,htmlspecialchars($value)); if (!is_array($value)) $setup_tpl->set_var($name,htmlspecialchars($value));
break; break;
} }
} }
$options = array(); $supported_session_handler = array(
foreach($supported_sessions_type as $type => $label) 'egw_session_files' => lang('PHP session handler enabled in php.ini'),
);
if (!isset($supported_session_handler[$GLOBALS['egw_info']['server']['sessions_handler']]))
{ {
$options[] = '<option ' . ($type == $GLOBALS['egw_info']['server']['sessions_type'] ? $supported_session_handler[$GLOBALS['egw_info']['server']['sessions_handler']] = lang("Custom handler: %1",$GLOBALS['egw_info']['server']['sessions_handler']);
}
$options = array();
foreach($supported_session_handler as $type => $label)
{
$options[] = '<option ' . ($type == $GLOBALS['egw_info']['server']['session_handler'] ?
'selected="selected" ' : '') . 'value="' . $type . '">' . $label . '</option>'; 'selected="selected" ' : '') . 'value="' . $type . '">' . $label . '</option>';
} }
$setup_tpl->set_var('session_options',implode("\n",$options)); $setup_tpl->set_var('session_options',implode("\n",$options));
@ -367,15 +326,13 @@ function show_header_form($validation_errors)
)); ));
$setup_tpl->set_var(array( $setup_tpl->set_var(array(
'lang_analysis' => $validation_errors ? lang('Validation errors') : lang('Analysis'), 'lang_analysis' => $validation_errors ? lang('Validation errors') : '',
'lang_settings' => lang('Settings'), 'lang_settings' => lang('Settings'),
'lang_domain' => lang('Database instance (eGW domain)'), 'lang_domain' => lang('Database instance (eGW domain)'),
'lang_delete' => lang('Delete'), 'lang_delete' => lang('Delete'),
'lang_adddomain' => lang('Add new database instance (eGW domain)'), 'lang_adddomain' => lang('Add new database instance (eGW domain)'),
'lang_serverroot' => lang('Server Root'), 'lang_serverroot' => lang('Server Root'),
'lang_serverroot_descr'=> lang('Path (not URL!) to your eGroupWare installation.'), 'lang_serverroot_descr'=> lang('Path (not URL!) to your eGroupWare installation.'),
'lang_includeroot' => lang('Include Root'),
'lang_includeroot_descr'=>lang('Should be the same as Server Root unless you know what you are doing.'),
'lang_adminuser' => lang('Header username'), 'lang_adminuser' => lang('Header username'),
'lang_adminuser_descr' => lang('Admin user for header manager'), 'lang_adminuser_descr' => lang('Admin user for header manager'),
'lang_adminpass' => lang('Header password'), 'lang_adminpass' => lang('Header password'),
@ -403,14 +360,10 @@ function show_header_form($validation_errors)
'lang_passforconfig' => lang('Password needed for domain configuration.'), 'lang_passforconfig' => lang('Password needed for domain configuration.'),
'lang_persist' => lang('Persistent connections'), 'lang_persist' => lang('Persistent connections'),
'lang_persistdescr' => lang('Do you want persistent connections (higher performance, but consumes more resources)'), 'lang_persistdescr' => lang('Do you want persistent connections (higher performance, but consumes more resources)'),
'lang_sesstype' => lang('Sessions Type'), 'lang_session' => lang('Sessions Handler'),
'lang_sesstypedescr' => lang('What type of sessions management do you want to use (PHP session management may perform better)?'). 'lang_session_descr' => lang('Session handler class used.'),
' '.lang('PHP plus restore gives by far the best performance, as it stores the eGW enviroment completly in the session.').
' '.lang('Unfortunally some PHP/Apache packages have problems with it (Apache dies and you cant login anymore).'),
'lang_enablemcrypt' => lang('Enable MCrypt'), 'lang_enablemcrypt' => lang('Enable MCrypt'),
'lang_mcrypt_warning' => lang('Not all mcrypt algorithms and modes work with eGroupWare. If you experience problems try switching it off.'), 'lang_mcrypt_warning' => lang('Not all mcrypt algorithms and modes work with eGroupWare. If you experience problems try switching it off.'),
'lang_mcryptversion' => lang('MCrypt version'),
'lang_mcryptversiondescr' => lang('Set this to "old" for versions &lt; 2.4, otherwise the exact mcrypt version you use.'),
'lang_mcryptiv' => lang('MCrypt initialization vector'), 'lang_mcryptiv' => lang('MCrypt initialization vector'),
'lang_mcryptivdescr' => lang('This should be around 30 bytes in length.<br />Note: The default has been randomly generated.'), 'lang_mcryptivdescr' => lang('This should be around 30 bytes in length.<br />Note: The default has been randomly generated.'),
'lang_domselect' => lang('Domain select box on login'), 'lang_domselect' => lang('Domain select box on login'),

View File

@ -1,24 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<!--
HTML Coding Standards;
1. use lowercase if possible, because of xhtml validation
2. make your template validate either html 4.01 or xhtml 1
3. make your application validate both if possible
4. always use quotes ("") when possible
5. use png-graphics if possible, but keep in mind IE has a transparency bug when it renders png's
-->
<!-- LAY-OUT BUGS
1. in IE no link cursor is displayed when png's are used for that link
2. tabs are ugly in preferences
3. spacers inside sidebox
-->
<title>eGroupWare Setup - {lang_setup} {configdomain}</title> <title>eGroupWare Setup - {lang_setup} {configdomain}</title>
<meta http-equiv="content-type" content="text/html; charset={charset}" /> <meta http-equiv="content-type" content="text/html; charset={charset}" />
<meta name="keywords" content="egroupware" /> <meta name="keywords" content="egroupware" />
@ -49,29 +31,16 @@
td td
{ {
/*font-size:12px;*/
line-height:170%; line-height:170%;
} }
/* some styles specially for setup */ /* some styles specially for setup */
#tbl_manage_header td #tbl_manage_header td
{ {
border:solid 0px green; vertical-align: top;
vertical-align:top; padding-bottom: 3px;
padding-bottom:10px; padding-left: 5px;
} }
.th th,
.th td
{
padding:3px;
}
.table_domains
{
border:solid 1px #cccccc;
width:100%;
margin-bottom:10px;
}
--> -->
</style> </style>

View File

@ -16,179 +16,146 @@ function setDefaultDBPort(selectBox,portField)
//--> //-->
</script> </script>
<table border="0" width="600px;" id="tbl_manage_header" style="border-spacing:5px;" cellspacing="0" cellpadding="0" align="center"> <form name="domain_settings" action="manageheader.php" method="post">
<tbody> <table border="0" width="90%" id="tbl_manage_header" style="border-spacing: 3px;" align="center">
{lang_select} <tbody>
<tr><td colspan="2"><h3>{pagemsg}</h3></td></tr> {lang_select}
<tr class="th"><th colspan="2">{lang_analysis}</th> <tr>
</tr> <td colspan="2">
<tr> <h3>{pagemsg}</h3>
<td colspan="2"> <h2>{lang_analysis}</h2>
{detected} {detected}
</td> </td>
</tr> </tr>
<!-- <tr> <tr class="th">
<td>--> <th colspan="2">{lang_settings}</th>
<form name="domain_settings" action="manageheader.php" method="post"> </tr>
<!-- <table style="border-spacing:5px;" border="0" width="100%" cellspacing="0" cellpadding="0"> <tr class="row_on">
<tbody>--> <td colspan="2">
<tr class="th"> <strong>{lang_serverroot}</strong> {lang_serverroot_descr}<br />
<th colspan="2">{lang_settings}</th> <input type="text" name="setting[server_root]" size="80" value="{server_root}" />
</tr> </td>
<tr> </tr>
<td colspan="2"> <tr class="row_off">
<strong>{lang_serverroot}</strong> {lang_serverroot_descr}<br /> <td><strong>{lang_adminuser}</strong><br /><input type="text" name="setting[header_admin_user]" size="30" value="{header_admin_user}" /></td>
<input type="text" name="setting[server_root]" size="80" value="{server_root}" /> <td>{lang_adminuser_descr}</td>
</td> </tr>
</tr> <tr class="row_on">
<tr> <td><strong>{lang_adminpass}</strong><br />
<td colspan="2"> <input type="hidden" name="setting[header_admin_password]" value="{header_admin_password}" />
<strong>{lang_includeroot}</strong> {lang_includeroot_descr}<br /> <input type="password" name="setting[new_admin_password]" size="30" value="" /></td>
<input type="text" name="setting[include_root]" size="80" value="{include_root}" /> <td>{lang_adminpass_descr}<br />{lang_leave_empty}</td>
</td> </tr>
</tr> <tr class="row_off">
<tr> <td><strong>{lang_setup_acl}</strong><br /><input type="text" name="setting[setup_acl]" size="30" value="{setup_acl}" /></td>
<td><strong>{lang_adminuser}</strong><br /><input type="text" name="setting[header_admin_user]" size="30" value="{header_admin_user}" /></td> <td>{lang_setup_acl_descr}</td>
<td>{lang_adminuser_descr}</td> </tr>
</tr> <tr class="row_on">
<tr> <td><strong>{lang_persist}</strong><br />
<td><strong>{lang_adminpass}</strong><br /> <select name="setting[db_persistent]">
<input type="hidden" name="setting[header_admin_password]" value="{header_admin_password}" /> <option value="True"{db_persistent_yes}>{lang_Yes}</option>
<input type="password" name="setting[new_admin_password]" size="30" value="" /></td> <option value="False"{db_persistent_no}>{lang_No}</option>
<td>{lang_adminpass_descr}<br />{lang_leave_empty}</td> </select>
</tr> </td>
<tr> <td>{lang_persistdescr}</td>
<td><strong>{lang_setup_acl}</strong><br /><input type="text" name="setting[setup_acl]" size="30" value="{setup_acl}" /></td> </tr>
<td>{lang_setup_acl_descr}</td> <tr class="row_off">
</tr> <td><strong>{lang_session}</strong><br />
<tr> <select name="setting[sessions_handler]">
<td><strong>{lang_persist}</strong><br /> {session_options}
<select name="setting[db_persistent]"> </select>
<option value="True"{db_persistent_yes}>{lang_Yes}</option> </td>
<option value="False"{db_persistent_no}>{lang_No}</option> <td>{lang_session_descr}</td>
</select> </tr>
</td> <tr class="row_on">
<td>{lang_persistdescr}</td> <td><strong>{lang_enablemcrypt}</strong><br />
</tr> <select name="setting[mcrypt_enabled]">
<tr> <option value="True"{mcrypt_enabled_yes}>{lang_Yes}</option>
<td><strong>{lang_sesstype}</strong><br /> <option value="False"{mcrypt_enabled_no}>{lang_No}</option>
<select name="setting[sessions_type]"> </select>
{session_options} </td>
</select> <td>{lang_mcrypt_warning}</td>
</td> </tr>
<td>{lang_sesstypedescr}</td> <tr class="row_off">
</tr> <td><strong>{lang_mcryptiv}</strong><br /><input type="text" name="setting[mcrypt_iv]" value="{mcrypt_iv}" size="35" /></td>
<tr> <td>{lang_mcryptivdescr}</td>
<td><strong>{lang_enablemcrypt}</strong><br /> </tr>
<select name="setting[mcrypt_enabled]"> <tr class="row_on">
<option value="True"{mcrypt_enabled_yes}>{lang_Yes}</option> <td><strong>{lang_domselect}</strong><br />
<option value="False"{mcrypt_enabled_no}>{lang_No}</option> <select name="setting[show_domain_selectbox]">
</select> <option value="True"{show_domain_selectbox_yes}>{lang_Yes}</option>
</td> <option value="False"{show_domain_selectbox_no}>{lang_No}</option>
<td>{lang_mcrypt_warning}</td> </select></td>
</tr> <td>{lang_domselect_descr}</td>
<tr> </tr>
<td><strong>{lang_mcryptversion}</strong><br /><input type="text" name="setting[mcrypt_version]" value="{mcrypt_version}" /></td> {domains}
<td>{lang_mcryptversiondescr}</td> {comment_l}
</tr> <tr class="th">
<tr> <td style="padding:3px;" colspan="2"><input type="submit" name="adddomain" value="{lang_adddomain}" /></td>
<td><strong>{lang_mcryptiv}</strong><br /><input type="text" name="setting[mcrypt_iv]" value="{mcrypt_iv}" size="35" /></td> </tr>
<td>{lang_mcryptivdescr}</td> {comment_r}
</tr> <tr>
<tr> <td colspan="2">{actions}</td>
<td><strong>{lang_domselect}</strong><br /> </tr>
<select name="setting[show_domain_selectbox]"> </tbody>
<option value="True"{show_domain_selectbox_yes}>{lang_Yes}</option> </table>
<option value="False"{show_domain_selectbox_no}>{lang_No}</option> </form>
</select></td>
<td>{lang_domselect_descr}</td>
</tr>
<tr>
<td colspan="2">
{domains}
</td>
</tr>
{comment_l}
<tr class="th">
<td style="padding:3px;" colspan="2"><input type="submit" name="adddomain" value="{lang_adddomain}" /></td>
</tr>
{comment_r}
<tr>
<td colspan="2">{actions}</td>
</tr>
<!-- </tbody>
</table>-->
</form>
<!-- </td>
</tr>-->
<tr> <form action="index.php" method="post">
<td colspan="2"> <table border="0" width="90%" align="center" cellspacing="0" cellpadding="0">
<form action="index.php" method="post"> <tbody>
<table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr>
<tbody> <td>
<tr> <br />{lang_finaldescr}<br />
<td> <input type="hidden" name="FormLogout" value="header" />
<br />{lang_finaldescr}<br /> <input type="hidden" name="ConfigLogin" value="Login" />
<input type="hidden" name="FormLogout" value="header" /> <input type="hidden" name="FormUser" value="{FormUser}" />
<input type="hidden" name="ConfigLogin" value="Login" /> <input type="hidden" name="FormPW" value="{FormPW}" />
<input type="hidden" name="FormUser" value="{FormUser}" /> <input type="hidden" name="FormDomain" value="{FormDomain}" />
<input type="hidden" name="FormPW" value="{FormPW}" /> <input type="submit" name="junk" value="{lang_continue}" />
<input type="hidden" name="FormDomain" value="{FormDomain}" /> </td>
<input type="submit" name="junk" value="{lang_continue}" /> </tr>
</td> </tbody>
</tr> </table>
</tbody> </form>
</table>
</form>
</td>
</tr>
</tbody>
</table>
<!-- END manageheader --> <!-- END manageheader -->
<!-- BEGIN domain --> <!-- BEGIN domain -->
<table class="table_domains"> <tr class="th">
<tr class="th"> <td>{lang_domain}:</td>
<td colspan="2" style="text-align:center;padding:3px;">{lang_domain}:&nbsp;<input name="domains[{db_domain}]" value="{db_domain}" />&nbsp;&nbsp;<input type="checkbox" name="deletedomain[{db_domain}]" />&nbsp;{lang_delete}</td> <td><input name="domains[{db_domain}]" value="{db_domain}" />&nbsp;&nbsp;<input type="checkbox" name="deletedomain[{db_domain}]" />&nbsp;{lang_delete}</td>
</tr> </tr>
<tr> <tr class="row_on">
<td><strong>{lang_dbtype}</strong><br /> <td><strong>{lang_dbtype}</strong><br />
<select name="setting_{db_domain}[db_type]" onchange="setDefaultDBPort(this,this.form['setting_{db_domain}[db_port]']);"> <select name="setting_{db_domain}[db_type]" onchange="setDefaultDBPort(this,this.form['setting_{db_domain}[db_port]']);">
{dbtype_options} {dbtype_options}
</select> </select>
</td> </td>
<td>{lang_whichdb}</td> <td>{lang_whichdb}</td>
</tr> </tr>
<tr> <tr class="row_off">
<td><strong>{lang_dbhost}</strong><br /><input type="text" name="setting_{db_domain}[db_host]" value="{db_host}" /></td><td>{lang_dbhostdescr}</td> <td><strong>{lang_dbhost}</strong><br /><input type="text" name="setting_{db_domain}[db_host]" value="{db_host}" /></td><td>{lang_dbhostdescr}</td>
</tr> </tr>
<tr> <tr class="row_on">
<td><strong>{lang_dbport}</strong><br /><input type="text" name="setting_{db_domain}[db_port]" value="{db_port}" /></td><td>{lang_dbportdescr}</td> <td><strong>{lang_dbport}</strong><br /><input type="text" name="setting_{db_domain}[db_port]" value="{db_port}" /></td><td>{lang_dbportdescr}</td>
</tr> </tr>
<tr> <tr class="row_off">
<td><strong>{lang_dbname}</strong><br /><input type="text" name="setting_{db_domain}[db_name]" value="{db_name}" /></td><td>{lang_dbnamedescr}</td> <td><strong>{lang_dbname}</strong><br /><input type="text" name="setting_{db_domain}[db_name]" value="{db_name}" /></td><td>{lang_dbnamedescr}</td>
</tr> </tr>
<tr> <tr class="row_on">
<td><strong>{lang_dbuser}</strong><br /><input type="text" name="setting_{db_domain}[db_user]" value="{db_user}" /></td><td>{lang_dbuserdescr}</td> <td><strong>{lang_dbuser}</strong><br /><input type="text" name="setting_{db_domain}[db_user]" value="{db_user}" /></td><td>{lang_dbuserdescr}</td>
</tr> </tr>
<tr> <tr class="row_off">
<td><strong>{lang_dbpass}</strong><br /><input type="password" name="setting_{db_domain}[db_pass]" value="{db_pass}" /></td><td>{lang_dbpassdescr}</td> <td><strong>{lang_dbpass}</strong><br /><input type="password" name="setting_{db_domain}[db_pass]" value="{db_pass}" /></td><td>{lang_dbpassdescr}</td>
</tr> </tr>
<tr> <tr class="row_on">
<td><strong>{lang_configuser}</strong><br /><input type="text" name="setting_{db_domain}[config_user]" value="{config_user}" /></td> <td><strong>{lang_configuser}</strong><br /><input type="text" name="setting_{db_domain}[config_user]" value="{config_user}" /></td>
<td>{lang_configuser_descr}</td> <td>{lang_configuser_descr}</td>
</tr> </tr>
<tr> <tr class="row_off">
<td><strong>{lang_configpass}</strong><br /> <td><strong>{lang_configpass}</strong><br />
<input type="hidden" name="setting_{db_domain}[config_passwd]" value="{config_passwd}" /> <input type="hidden" name="setting_{db_domain}[config_passwd]" value="{config_passwd}" />
<input type="password" name="setting_{db_domain}[new_config_passwd]" value="" /></td> <input type="password" name="setting_{db_domain}[new_config_passwd]" value="" /></td>
<td>{lang_passforconfig}<br />{lang_leave_empty}</td> <td>{lang_passforconfig}<br />{lang_leave_empty}</td>
</tr> </tr>
</table>
<!-- END domain --> <!-- END domain -->
</td></tr>
</tbody>
</table>