From 940deb08a9cdf71da0751e18b010642284f0aefb Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Fri, 15 Oct 2004 23:06:34 +0000 Subject: [PATCH] finished DB backup and restore for eGW: - the backup is independent of the used DB and can eg. be used to port an install to an other DB type - autom. backup before upgrades of the DB structure - installing backups instead an installation from scratch - own backup screen in setup and admin to: + shedule repeating backups + up- and download of backups + creating and restoring backups --- admin/inc/class.admin_db_backup.inc.php | 54 +++++ admin/inc/hook_acl_manager.inc.php | 7 + admin/inc/hook_admin.inc.php | 5 + admin/inc/hook_sidebox_menu.inc.php | 5 + admin/setup/phpgw_de.lang | 2 + admin/setup/phpgw_en.lang | 2 + phpgwapi/inc/class.db_backup.inc.php | 138 +++++++----- phpgwapi/inc/class.translation_sql.inc.php | 30 +++ setup/db_backup.php | 224 +++++++++++++++++++ setup/index.php | 233 +++++++++++++++----- setup/lang/phpgw_de.lang | 49 +++- setup/lang/phpgw_en.lang | 49 +++- setup/lang/phpgw_es-ca.lang | 2 +- setup/lang/phpgw_es-es.lang | 2 +- setup/lang/phpgw_fi.lang | 2 +- setup/lang/phpgw_fr.lang | 2 +- setup/lang/phpgw_it.lang | 2 +- setup/lang/phpgw_ja.lang | 2 +- setup/lang/phpgw_ko.lang | 2 +- setup/lang/phpgw_pl.lang | 2 +- setup/lang/phpgw_pt-br.lang | 2 +- setup/lang/phpgw_pt.lang | 2 +- setup/lang/phpgw_sl.lang | 2 +- setup/lang/phpgw_zh.lang | 2 +- setup/lang/phpgw_zt.lang | 2 +- setup/templates/default/config.tpl | 7 +- setup/templates/default/db_backup.tpl | 85 +++++++ setup/templates/default/setup_db_blocks.tpl | 18 +- setup/templates/default/setup_main.tpl | 13 ++ 29 files changed, 812 insertions(+), 135 deletions(-) create mode 100644 admin/inc/class.admin_db_backup.inc.php create mode 100644 setup/db_backup.php create mode 100644 setup/templates/default/db_backup.tpl diff --git a/admin/inc/class.admin_db_backup.inc.php b/admin/inc/class.admin_db_backup.inc.php new file mode 100644 index 0000000000..1814b404e1 --- /dev/null +++ b/admin/inc/class.admin_db_backup.inc.php @@ -0,0 +1,54 @@ + true, + 'index' => true, + ); + var $db_backup; + + function admin_db_backup() + { + } + + /** + * Method for sheduled backups, called via asynservice + */ + function do_backup() + { + $this->db_backup = CreateObject('phpgwapi.db_backup'); + + if ($f = $this->db_backup->fopen_backup()) + { + $this->db_backup->backup($f); + fclose($f); + } + } + + /** + * includes setup's db_backup to display/access it inside admin + */ + function index() + { + $tpl_root = PHPGW_SERVER_ROOT.'/setup/templates/default'; + $self = $GLOBALS['phpgw']->link('/index.php',array('menuaction'=>'admin.admin_db_backup.index')); + $GLOBALS['phpgw']->translation->add_app('setup'); + + include PHPGW_SERVER_ROOT.'/setup/db_backup.php'; + + $GLOBALS['phpgw']->common->phpgw_footer(); + } + } \ No newline at end of file diff --git a/admin/inc/hook_acl_manager.inc.php b/admin/inc/hook_acl_manager.inc.php index 865f851afd..4893c35afa 100644 --- a/admin/inc/hook_acl_manager.inc.php +++ b/admin/inc/hook_acl_manager.inc.php @@ -120,6 +120,13 @@ ) ); // added and working ralfbecker + $GLOBALS['acl_manager']['admin']['db_backup_access'] = array( + 'name' => 'Deny access to DB backup and restore', + 'rights' => array( + 'DB backup and restore' => 1 + ) + ); // added and working ralfbecker + $GLOBALS['acl_manager']['admin']['info_access'] = array( 'name' => 'Deny access to phpinfo', 'rights' => array( diff --git a/admin/inc/hook_admin.inc.php b/admin/inc/hook_admin.inc.php index 0a47bb9a4a..8ec1082579 100644 --- a/admin/inc/hook_admin.inc.php +++ b/admin/inc/hook_admin.inc.php @@ -72,6 +72,11 @@ $file['Asynchronous timed services'] = $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiasyncservice.index'); } + if (! $GLOBALS['phpgw']->acl->check('db_backup_access',1,'admin')) + { + $file['DB backup and restore'] = $GLOBALS['phpgw']->link('/index.php','menuaction=admin.admin_db_backup.index'); + } + if (! $GLOBALS['phpgw']->acl->check('info_access',1,'admin')) { $file['phpInfo'] = "javascript:openwindow('" . $GLOBALS['phpgw']->link('/admin/phpinfo.php') . "')"; //$GLOBALS['phpgw']->link('/admin/phpinfo.php'); diff --git a/admin/inc/hook_sidebox_menu.inc.php b/admin/inc/hook_sidebox_menu.inc.php index b6555fa983..9029e9f40b 100644 --- a/admin/inc/hook_sidebox_menu.inc.php +++ b/admin/inc/hook_sidebox_menu.inc.php @@ -86,6 +86,11 @@ $file['Asynchronous timed services'] = $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiasyncservice.index'); } + if (! $GLOBALS['phpgw']->acl->check('db_backup_access',1,'admin')) + { + $file['DB backup and restore'] = $GLOBALS['phpgw']->link('/index.php','menuaction=admin.admin_db_backup.index'); + } + if (! $GLOBALS['phpgw']->acl->check('info_access',1,'admin')) { $file['phpInfo'] = "javascript:openwindow('" . $GLOBALS['phpgw']->link('/admin/phpinfo.php') . "')"; diff --git a/admin/setup/phpgw_de.lang b/admin/setup/phpgw_de.lang index 9a99d770ad..baa4ae0f86 100644 --- a/admin/setup/phpgw_de.lang +++ b/admin/setup/phpgw_de.lang @@ -95,6 +95,7 @@ cyrus imap server admin de Cyrus IMAP Server data admin de Daten day admin de Tag day of week
(0-6, 0=sun) admin de Wochentag
(0-6, 0=Sonntag) +db backup and restore admin de DB Datensicherung und Wiederherstellung default admin de Vorgabe default file system space per user admin de Vorgabewert für Dateisystemplatz pro Benutzer default file system space per user/group ? admin de Vorgabewert für Dateisystemplatz pro Benutzer/Gruppe verwenden? @@ -115,6 +116,7 @@ deny access to application registery admin de Zugriff auf Anwendungsdatenbank ve deny access to applications admin de Zugriff auf Anwendungen verbieten deny access to asynchronous timed services admin de Zugriff auf asynchroner zeitgesteuerter Dienst verbieten deny access to current sessions admin de Zugriff auf aktuellen Sitzungen verbieten +deny access to db backup and restore admin de Zugriff auf DB Datensicherung und Wiederherstellung verbieten deny access to error log admin de Zugriff auf Fehlerprotokoll verbieten deny access to global categories admin de Zugriff auf globalen Kategorien verbieten deny access to groups admin de Zugriff auf Benutzergruppen verbieten diff --git a/admin/setup/phpgw_en.lang b/admin/setup/phpgw_en.lang index be1e873955..aa1689d3cf 100644 --- a/admin/setup/phpgw_en.lang +++ b/admin/setup/phpgw_en.lang @@ -94,6 +94,7 @@ cyrus imap server admin en Cyrus IMAP Server data admin en Data day admin en Day day of week
(0-6, 0=sun) admin en Day of week
(0-6, 0=Sun) +db backup and restore admin en DB backup and restore default admin en Default default file system space per user admin en Default file system space per user default file system space per user/group ? admin en Default file system space per user/group ? @@ -115,6 +116,7 @@ deny access to application registery admin en Deny access to application registe deny access to applications admin en Deny access to applications deny access to asynchronous timed services admin en Deny access to asynchronous timed services deny access to current sessions admin en Deny access to current sessions +deny access to db backup and restore admin en Deny access to DB backup and restore deny access to error log admin en Deny access to error log deny access to global categories admin en Deny access to global categories deny access to groups admin en Deny access to groups diff --git a/phpgwapi/inc/class.db_backup.inc.php b/phpgwapi/inc/class.db_backup.inc.php index 979727d560..eceec95dfa 100644 --- a/phpgwapi/inc/class.db_backup.inc.php +++ b/phpgwapi/inc/class.db_backup.inc.php @@ -39,17 +39,55 @@ */ function db_backup() { - if (is_object($GLOBALS['phpgw_setup']->oProc)) // called from within setup + if (is_object($GLOBALS['phpgw_setup']->oProc)) // schema_proc already instanciated, use it { $this->schema_proc = $GLOBALS['phpgw_setup']->oProc; } - else // called from eGW + else { $this->schema_proc = CreateObject('phpgwapi.schema_proc'); } $this->db = $this->schema_proc->m_odb; $this->adodb = &$GLOBALS['phpgw']->ADOdb; - + + if (is_object($GLOBALS['phpgw_setup'])) // called from setup + { + $tables = $this->adodb->MetaTables('TABLES'); + if (in_array('phpgw_config',$tables)) + { + $this->db->query("SELECT config_value FROM phpgw_config WHERE config_app='phpgwapi' AND config_name='backup_dir'",__LINE__,__FILE__); + $this->db->next_record(); + if (!($this->backup_dir = $this->db->f(0))) + { + $this->db->query("SELECT config_value FROM phpgw_config WHERE config_app='phpgwapi' AND config_name='files_dir'",__LINE__,__FILE__); + $this->db->next_record(); + $this->backup_dir = $this->db->f(0).'/db_backup'; + } + $this->db->query("SELECT config_value FROM phpgw_config WHERE config_app='phpgwapi' AND config_name='system_charset'",__LINE__,__FILE__); + $this->db->next_record(); + $this->charset = $this->db->f(0); + if (!$this->charset) + { + $this->db->query("SELECT content FROM phpgw_lang WHERE message_id='charset' AND app_name='common' AND lang!='en'",__LINE__,__FILE__); + $this->db->next_record(); + $this->charset = $this->db->f(0); + } + } + if (!$this->charset) $this->charset = 'iso-8859-1'; + } + else // called from eGW + { + $this->schema_proc = CreateObject('phpgwapi.schema_proc'); + if (!($this->backup_dir = $GLOBALS['phpgw_info']['server']['backup_dir'])) + { + $this->backup_dir = $GLOBALS['phpgw_info']['server']['files_dir'].'/db_backup'; + } + $this->charset = $GLOBALS['phpgw']->translation->charset(); + } + if (!is_dir($this->backup_dir) && is_writable(dirname($this->backup_dir))) + { + mkdir($this->backup_dir); + } switch($this->db->Type) { case 'sapdb': @@ -60,10 +98,44 @@ } } + /** + * Opens the backup-file using the highest availible compression + * + * @param $name=false string/boolean filename to use, or false for the default one + * @param $reading=false opening for reading ('rb') or writing ('wb') + * @return string/resource error-msg of file-handle + */ + function fopen_backup($name=false,$reading=false) + { + if (!$name) + { + if (!$this->backup_dir || !is_writable($this->backup_dir)) + { + return lang("backupdir '%1' is not writeable by the webserver",$this->backup_dir); + } + $name = $this->backup_dir.'/db_backup-'.date('YmdHi'); + } + else // remove the extension, to use the correct wrapper based on the extension + { + $name = preg_replace('/\.(bz2|gz)$/i','',$name); + } + $mode = $reading ? 'rb' : 'wb'; + + if (!($f = @fopen($file = "compress.bzip2://$name.bz2",$mode)) && + !($f = @fopen($file = "compress.zlib://$name.gz",$mode)) && + !($f = @fopen($file = "zlib:$name.gz",$mode)) && // php < 4.3 + !($f = @fopen($file = $name,$mode))) + { + $lang_mode = $reading ? lang('reading') : lang('writing'); + return lang("Cant open '%1' for %2",$name,$lang_mode); + } + return $f; + } + /** * Backup all data in the form of a (compressed) csv file * - * @param f resource file opened with fopen for reading + * @param $f resource file opened with fopen for reading */ function restore($f) { @@ -88,7 +160,7 @@ while(!feof($f)) { $line = trim(fgets($f)); ++$n; - +echo "$n: $line
"; if (empty($line)) continue; if (substr($line,0,9) == 'charset: ') @@ -104,7 +176,7 @@ $this->schemas = unserialize(trim(substr($line,8))); foreach($this->schemas as $table_name => $schema) { - //echo "
$table_name => ".$this->write_array($schema,1)."
\n"; + echo "
$table_name => ".$this->write_array($schema,1)."
\n"; $this->schema_proc->CreateTable($table_name,$schema); } // make the schemas availible for the db-class @@ -233,7 +305,7 @@ fwrite($f,"eGroupWare backup from ".date('Y-m-d H:i:s')."\n"); - fwrite($f,"\ncharset: ".$GLOBALS['phpgw']->translation->charset()."\n\n"); + fwrite($f,"\ncharset: $this->charset\n\n"); $this->schema_backup($f); // add the schema in a human readable form too @@ -372,55 +444,3 @@ return $def; } } -/* - $phpgw_info = array('flags' => array( - 'currentapp' => 'admin', - 'noheader' => true, - 'nonavbar' => true, - )); - include '../../header.inc.php'; - - $db_backup = new db_backup(); - - //ini_set('mbstring.internal_encoding','iso-8859-1'); - //$str = '"c00cebe55f292105174b89133e5fc62a","ralf@pole","127.0.0.1",1091089152,1091089230,501'; - //$str = '306266,"hansjorg","7722959c3ad772bcc6ac608bced3d9f4","Hansjörg","Helms",NULL,NULL,NULL,"A",-1,"u",NULL,0'."\n"; - //$str = '306266,"hansjorg","7722959c3ad772bcc6ac608bced3d9f4","Hansjörg \\"Hansi\\"","Helms, Hansjörg\\\\",NULL,NULL,NULL,"A",-1,"u",NULL,0'."\n"; - //$str = '"en","calendar","are you sure\\\\nyou want to\\\\ndelete this entry ?\\\\n\\\\nthis will delete\\\\nthis entry for all users.","Are you sure\\\\nyou want to\\\\ndelete this entry ?\\\\n\\\\nThis will delete\\\\nthis entry for all users."'; - //echo "'$str'=
".print_r($db_backup->csv_split($str),true)."
\n"; - //exit; - - if ($_GET['backup']) - { - $name = is_numeric($_GET['backup']) ? '/tmp/db_backup' : $_GET['backup']; - - if (!($f = fopen($file = "compress.bzip2://$name.bz2",'wb')) && - !($f = fopen($file = "compress.zlib://$name.gz",'wb')) && - !($f = fopen($file = "zlib:$name.gz",'wb')) && // php < 4.3 - !($f = fopen($file = $name,'wb'))) - { - die("Cant open $name for writing"); - } - $db_backup->backup($f); - fclose($f); - - echo "
";
-		fpassthru(fopen($file,'r'));
-	}
-	elseif ($_GET['restore'])
-	{
-		$name = is_numeric($_GET['restore']) ? '/tmp/db_backup' : $_GET['restore'];
-
-		if (!($f = fopen($file = "compress.bzip2://$name.bz2",'r')))
-		{
-			die("Cant open $name for reading");
-		}
-		$db_backup->restore($f);
-		fclose($f);
-		echo "DB restored from dump";
-	}
-	else
-	{
-		$db_backup->schema_backup();
-	}
-*/
\ No newline at end of file
diff --git a/phpgwapi/inc/class.translation_sql.inc.php b/phpgwapi/inc/class.translation_sql.inc.php
index bf6dab9889..19c1ef53bf 100644
--- a/phpgwapi/inc/class.translation_sql.inc.php
+++ b/phpgwapi/inc/class.translation_sql.inc.php
@@ -201,6 +201,8 @@
 
 			if (!isset($this->loaded_apps[$app]) || $this->loaded_apps[$app] != $lang)
 			{
+				if ($app == 'setup') return $this->add_setup($lang);
+
 				$this->db->select($this->lang_table,'message_id,content',array(
 					'lang'		=> $lang,
 					'app_name'	=> $app,
@@ -213,6 +215,34 @@
 			}
 		}
 
+		/**
+		 * Adds setup's translations, they are not in the DB!
+		 */
+		function add_setup($lang)
+		{
+			$fn = PHPGW_SERVER_ROOT.'/setup/lang/phpgw_' . $lang . '.lang';
+			if (!file_exists($fn))
+			{
+				$fn = PHPGW_SERVER_ROOT.'/setup/lang/phpgw_en.lang';
+			}
+			if (file_exists($fn))
+			{
+				$fp = fopen($fn,'r');
+				while ($data = fgets($fp,8000))
+				{
+					// explode with "\t" and removing "\n" with str_replace, needed to work with mbstring.overload=7
+					list($message_id,,,$content) = explode("\t",$data);
+					$phrases[strtolower(trim($message_id))] = str_replace("\n",'',$content);
+				}
+				fclose($fp);
+				
+				foreach($phrases as $message_id => $content)
+				{
+					$GLOBALS['lang'][$message_id] = $this->convert($content,$phrases['charset']);
+				}
+			}
+			$this->loaded_apps['setup'] = $lang;
+		}
 		/*!
 		@function get_installed_langs
 		@abstract returns a list of installed langs
diff --git a/setup/db_backup.php b/setup/db_backup.php
new file mode 100644
index 0000000000..30178fdd1d
--- /dev/null
+++ b/setup/db_backup.php
@@ -0,0 +1,224 @@
+ setup
+ 	{
+		$GLOBALS['phpgw_info'] = array('flags' => array(
+			'noheader' => True,
+			'nonavbar' => True,
+			'currentapp' => 'home',
+			'noapi' => True
+		));
+		include ('./inc/functions.inc.php');
+	
+		@set_time_limit(0);
+	
+		// Check header and authentication
+		if (!$GLOBALS['phpgw_setup']->auth('Config'))
+		{
+			Header('Location: index.php');
+			exit;
+		}
+		// Does not return unless user is authorized
+	
+		$GLOBALS['phpgw_setup']->loaddb();
+
+		$tpl_root = $GLOBALS['phpgw_setup']->html->setup_tpl_dir('setup');
+		$self = 'db_backup.php';
+	}
+	$db_backup = CreateObject('phpgwapi.db_backup');
+	$asyncservice = CreateObject('phpgwapi.asyncservice');
+
+	// download a backup, has to be before any output !!!
+	if ($_POST['download'])
+	{
+		list($file) = each($_POST['download']);
+		$file = $db_backup->backup_dir.'/'.basename($file);	// basename to now allow to change the dir
+		
+		$browser = CreateObject('phpgwapi.browser');
+		$browser->content_header(basename($file));
+		fpassthru($f = fopen($file,'rb'));
+		fclose($f);
+		exit;
+	}
+ 	$setup_tpl = CreateObject('phpgwapi.Template',$tpl_root);
+	$setup_tpl->set_file(array(
+		'T_head' => 'head.tpl',
+		'T_footer' => 'footer.tpl',
+		'T_db_backup' => 'db_backup.tpl',
+	));
+	$setup_tpl->set_block('T_db_backup','shedule_row','shedule_rows');
+	$setup_tpl->set_block('T_db_backup','set_row','set_rows');
+
+	$setup_tpl->set_var('stage_title',$stage_title = lang('DB backup and restore'));
+	$setup_tpl->set_var('stage_desc',lang('This program lets you backup your database, shedule a backup or restore it.'));
+	$setup_tpl->set_var('error_msg','');
+
+	$bgcolor = array('#DDDDDD','#EEEEEE');
+
+	if (is_object($GLOBALS['phpgw_setup']->html))
+	{
+		$GLOBALS['phpgw_setup']->html->show_header($stage_title,False,'config',$GLOBALS['phpgw_setup']->ConfigDomain . '(' . $phpgw_domain[$GLOBALS['phpgw_setup']->ConfigDomain]['db_type'] . ')');
+	}
+	else
+	{
+		$setup_tpl->set_block('T_db_backup','setup_header');
+		$setup_tpl->set_var('setup_header','');
+		$GLOBALS['phpgw_info']['flags']['app_header'] = $stage_title;
+		$GLOBALS['phpgw']->common->phpgw_header();
+		parse_navbar();
+	}
+	// create a backup now
+	if($_POST['backup'])
+	{
+		if (is_resource($f = $db_backup->fopen_backup()))
+		{
+			echo '

'.lang('backup started, this might take a view minutes ...')."

\n".str_repeat(' ',4096); + $db_backup->backup($f); + fclose($f); + $setup_tpl->set_var('error_msg',lang('backup finished')); + } + else + { + $setup_tpl->set_var('error_msg',$f); + } + } + $setup_tpl->set_var('backup_now_button',''); + $setup_tpl->set_var('upload','  '. + ''); + + if ($_POST['upload'] && is_array($_FILES['uploaded']) && !$_FILES['uploaded']['error'] && + is_uploaded_file($_FILES['uploaded']['tmp_name'])) + { + move_uploaded_file($_FILES['uploaded']['tmp_name'],$db_backup->backup_dir.'/'.$_FILES['uploaded']['name']); + + if (function_exists('md5_file')) // php4.2+ + { + $md5 = ', md5='.md5_file($db_backup->backup_dir.'/'.$_FILES['uploaded']['name']); + } + $setup_tpl->set_var('error_msg',lang("succesfully uploaded file %1",$_FILES['uploaded']['name'].', '. + sprintf('%3.1lf MB (%d)',$_FILES['uploaded']['size']/(1024*1024),$_FILES['uploaded']['size']).$md5)); + } + // delete a backup + if ($_POST['delete']) + { + list($file) = each($_POST['delete']); + $file = $db_backup->backup_dir.'/'.basename($file); // basename to now allow to change the dir + + if (unlink($file)) $setup_tpl->set_var('error_msg',lang("backup '%1' deleted",$file)); + } + // restore a backup + if ($_POST['restore']) + { + list($file) = each($_POST['restore']); + $file = $db_backup->backup_dir.'/'.basename($file); // basename to now allow to change the dir + + if (is_resource($f = $db_backup->fopen_backup($file,true))) + { + echo '

'.lang('restore started, this might take a view minutes ...')."

\n".str_repeat(' ',4096); + $db_backup->restore($f); + fclose($f); + $setup_tpl->set_var('error_msg',lang("backup '%1' restored",$file)); + } + else + { + $setup_tpl->set_var('error_msg',$f); + } + } + // create a new shedulted backup + if ($_POST['shedule']) + { + $asyncservice->set_timer($_POST['times'],'db_backup-'.implode(':',$_POST['times']),'admin.admin_db_backup.do_backup',''); + } + // cancel a shedulted backup + if (is_array($_POST['cancel'])) + { + list($id) = each($_POST['cancel']); + $asyncservice->cancel_timer($id); + } + // list sheduled backups + if (($jobs = $asyncservice->read('db_backup-%'))) + { + foreach($jobs as $job) + { + $setup_tpl->set_var($job['times']); + $setup_tpl->set_var('next_run',date('Y-m-d H:i',$job['next'])); + $setup_tpl->set_var('actions',''); + $setup_tpl->parse('shedule_rows','shedule_row',true); + } + } + // input-fields to create a new sheduled backup + foreach($times=array('year'=>'*','month'=>'*','day'=>'*','dow'=>'2-6','hour'=>3,'minute'=>0) as $name => $default) + { + $setup_tpl->set_var($name,''); + } + $setup_tpl->set_var('next_run',' '); + $setup_tpl->set_var('actions',''); + $setup_tpl->parse('shedule_rows','shedule_row',true); + + // listing the availible backup sets + $setup_tpl->set_var('backup_dir',$db_backup->backup_dir); + $setup_tpl->set_var('set_rows',''); + $handle = @opendir($db_backup->backup_dir); + $files = array(); + while($handle && ($file = readdir($handle))) + { + if ($file != '.' && $file != '..') + { + $files[filectime($db_backup->backup_dir.'/'.$file)] = $file; + } + } + if ($handle) closedir($handle); + + krsort($files); + foreach($files as $ctime => $file) + { + $size = filesize($db_backup->backup_dir.'/'.$file); + $setup_tpl->set_var(array( + 'filename' => $file, + 'date' => date('Y-m-d H:i',$ctime), + 'size' => sprintf('%3.1lf MB (%d)',$size/(1024*1024),$size), + 'actions' => '  '. + '  '. + '', + )); + $setup_tpl->parse('set_rows','set_row',true); + } + + $setup_tpl->set_var(array( + 'lang_sheduled_backups' => lang('sheduled backups'), + 'lang_year' => lang('year'), + 'lang_month' => lang('month'), + 'lang_day' => lang('day'), + 'lang_dow' => lang('day of week
(0-6, 0=sunday)'), + 'lang_hour' => lang('hour (0-24)'), + 'lang_minute' => lang('minute'), + 'lang_next_run' => lang('next run'), + 'lang_actions' => lang('actions'), + 'lang_backup_sets' => lang('backup sets'), + 'lang_filename' => lang('filename'), + 'lang_date' => lang('created'), + 'lang_size' => lang('size'), + )); + + $setup_tpl->set_var('self',$self); + $setup_tpl->pparse('out','T_db_backup'); + + if (is_object($GLOBALS['phpgw_setup']->html)) + { + $GLOBALS['phpgw_setup']->html->show_footer(); + } +?> diff --git a/setup/index.php b/setup/index.php index 06383f707a..49de450fd4 100644 --- a/setup/index.php +++ b/setup/index.php @@ -75,6 +75,12 @@ $GLOBALS['phpgw_setup']->loaddb(); + $GLOBALS['phpgw_setup']->html->show_header( + $GLOBALS['phpgw_info']['setup']['header_msg'], + False, + 'config', + $GLOBALS['phpgw_setup']->ConfigDomain . '(' . $GLOBALS['phpgw_domain'][$GLOBALS['phpgw_setup']->ConfigDomain]['db_type'] . ')' + ); /* Add cleaning of app_sessions per skeeter, but with a check for the table being there, just in case */ /* $GLOBALS['phpgw_setup']->clear_session_cache(); */ @@ -124,13 +130,24 @@ case 'Upgrade': $subtitle = lang('Upgrading Tables'); $submsg = lang('At your request, this script is going to attempt to upgrade your old applications to the current versions').'.'; + if ($_POST['backup']) + { + $submsg .= ' '.lang('After backing up your tables first.'); + } $subaction = lang('upgraded'); $GLOBALS['phpgw_info']['setup']['currentver']['phpgwapi'] = 'oldversion'; $GLOBALS['phpgw_info']['setup']['stage']['db'] = 6; break; case 'Install': $subtitle = lang('Creating Tables'); - $submsg = lang('At your request, this script is going to attempt to install the core tables and the admin and preferences applications for you').'.'; + if ($_POST['upload']) + { + $submsg = lang('At your request, this script is going to attempt to install a previous backup').'.'; + } + else + { + $submsg = lang('At your request, this script is going to attempt to install the core tables and the admin and preferences applications for you').'.'; + } $subaction = lang('installed'); $GLOBALS['phpgw_info']['setup']['currentver']['phpgwapi'] = 'new'; $GLOBALS['phpgw_info']['setup']['stage']['db'] = 6; @@ -213,6 +230,9 @@ $setup_tpl->set_var('proceed',lang('We can proceed')); $setup_tpl->set_var('coreapps',lang('all applications')); $setup_tpl->set_var('lang_debug',lang('enable for extra debug-messages')); + $setup_tpl->set_var('lang_restore',lang('Or you can install a previous backup.')); + $setup_tpl->set_var('upload','  '. + ''); $setup_tpl->parse('V_db_stage_3','B_db_stage_3'); $db_filled_block = $setup_tpl->get_var('V_db_stage_3'); $setup_tpl->set_var('V_db_filled_block',$db_filled_block); @@ -220,13 +240,15 @@ case 4: $setup_tpl->set_var('oldver',lang('You appear to be running version %1 of eGroupWare',$setup_info['phpgwapi']['currentver'])); $setup_tpl->set_var('automatic',lang('We will automatically update your tables/records to %1',$setup_info['phpgwapi']['version'])); - $setup_tpl->set_var('backupwarn',lang('backupwarn')); + $setup_tpl->set_var('backupwarn',lang('but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data.')); + $setup_tpl->set_var('lang_backup',lang('create a backup before upgrading the DB')); $setup_tpl->set_var('lang_debug',lang('enable for extra debug-messages')); $setup_tpl->set_var('upgrade',lang('Upgrade')); $setup_tpl->set_var('goto',lang('Go to')); $setup_tpl->set_var('configuration',lang('configuration')); $setup_tpl->set_var('admin_account',lang('Create admin account')); $setup_tpl->set_var('applications',lang('Manage Applications')); + $setup_tpl->set_var('db_backup',lang('DB backup and restore')); $setup_tpl->set_var('language_management',lang('Manage Languages')); $setup_tpl->set_var('uninstall_all_applications',lang('Uninstall all applications')); $setup_tpl->set_var('dont_touch_my_data',lang('Dont touch my data')); @@ -251,6 +273,7 @@ $setup_tpl->set_var('tblchange',lang('Table Change Messages')); $setup_tpl->parse('V_db_stage_6_pre','B_db_stage_6_pre'); $db_filled_block = $setup_tpl->get_var('V_db_stage_6_pre'); + $setup_tpl->set_var('tableshave',lang('If you did not receive any errors, your applications have been')); // FIXME : CAPTURE THIS OUTPUT $GLOBALS['phpgw_setup']->db->Halt_On_Error = 'report'; @@ -265,20 +288,71 @@ $setup_info = $GLOBALS['phpgw_setup']->process->droptables($setup_info); break; case 'new': - /* process all apps and langs(last param True), excluding apps with the no_mass_update flag set. */ - $setup_info = $GLOBALS['phpgw_setup']->detection->upgrade_exclude($setup_info); - $setup_info = $GLOBALS['phpgw_setup']->process->pass($setup_info,'new',$_REQUEST['debug'],True); - $GLOBALS['phpgw_info']['setup']['currentver']['phpgwapi'] = 'oldversion'; + // use uploaded backup, instead installing from scratch + if ($_POST['upload']) + { + $db_backup = CreateObject('phpgwapi.db_backup'); + if (is_array($_FILES['uploaded']) && !$_FILES['uploaded']['error'] && + is_uploaded_file($_FILES['uploaded']['tmp_name'])) + { + if (preg_match('/\.(bz2|gz)$/i',$_FILES['uploaded']['name'],$matches)) + { + $ext = '.'.$matches[1]; + move_uploaded_file($_FILES['uploaded']['tmp_name'],$_FILES['uploaded']['tmp_name'].$ext); + $_FILES['uploaded']['tmp_name'] .= $ext; + } + if (is_resource($f = $db_backup->fopen_backup($_FILES['uploaded']['tmp_name'],true))) + { + echo '

'.lang('restore started, this might take a view minutes ...')."

\n".str_repeat(' ',4096); + $db_backup->restore($f); + fclose($f); + echo '

'.lang('restore finished')."

\n"; + unlink($_FILES['uploaded']['tmp_name']); + } + else // backup failed ==> dont start the upgrade + { + $setup_tpl->set_var('submsg',lang('Restore failed')); + $setup_tpl->set_var('tableshave',''.$f.''); + $setup_tpl->set_var('subaction',''); + } + } + } + else + { + $setup_info = $GLOBALS['phpgw_setup']->detection->upgrade_exclude($setup_info); + $setup_info = $GLOBALS['phpgw_setup']->process->pass($setup_info,'new',$_REQUEST['debug'],True); + $GLOBALS['phpgw_info']['setup']['currentver']['phpgwapi'] = 'oldversion'; + } break; case 'oldversion': - $setup_info = $GLOBALS['phpgw_setup']->process->pass($setup_info,'upgrade',$_REQUEST['debug']); - $GLOBALS['phpgw_info']['setup']['currentver']['phpgwapi'] = 'oldversion'; + // create a backup, before upgrading the tables + if ($_POST['backup']) + { + $db_backup = CreateObject('phpgwapi.db_backup'); + if (is_resource($f = $db_backup->fopen_backup())) + { + echo '

'.lang('backup started, this might take a view minutes ...')."

\n".str_repeat(' ',4096); + $db_backup->backup($f); + fclose($f); + echo '

'.lang('backup finished')."

\n"; + } + else // backup failed ==> dont start the upgrade + { + $setup_tpl->set_var('submsg',lang('Backup failed')); + $setup_tpl->set_var('tableshave',''.$f.''); + $setup_tpl->set_var('subaction',''); + } + } + if (!@$_POST['backup'] || !is_string($f)) + { + $setup_info = $GLOBALS['phpgw_setup']->process->pass($setup_info,'upgrade',$_REQUEST['debug']); + $GLOBALS['phpgw_info']['setup']['currentver']['phpgwapi'] = 'oldversion'; + } break; } $GLOBALS['phpgw_setup']->db->Halt_On_Error = 'no'; - $setup_tpl->set_var('tableshave',lang('If you did not receive any errors, your applications have been')); $setup_tpl->set_var('re-check_my_installation',lang('Re-Check My Installation')); $setup_tpl->parse('V_db_stage_6_post','B_db_stage_6_post'); $db_filled_block = $db_filled_block . $setup_tpl->get_var('V_db_stage_6_post'); @@ -301,6 +375,42 @@ $setup_tpl->set_var('V_db_filled_block',$db_filled_block); break; } + +function check_dir($dir,&$msg,$check_in_docroot=false) +{ + if (!@is_dir($dir)) + { + $msg = lang('does not exist'); + return false; + } + if (!@is_writeable($dir)) + { + $msg = lang('is not writeable by the webserver'); + return false; + } + if ($check_in_docroot) + { + $docroots = array(PHPGW_SERVER_ROOT,$_SERVER['DOCUMENT_ROOT']); + $dir = realpath($dir); + + foreach ($docroots as $docroot) + { + $len = strlen($docroot); + + if ($docroot == substr($dir,0,$len)) + { + $rest = substr($dir,$len); + + if (!strlen($rest) || $rest[0] == DIRECTORY_SEPARATOR) + { + $msg = lang('is in the webservers docroot'); + return false; + } + } + } + } + return true; +} // Config Section $setup_tpl->set_var('config_step_text',lang('Step %1 - Configuration',2)); @@ -310,11 +420,11 @@ //$GLOBALS['phpgw_info']['setup']['stage']['config'] = 10; // end DEBUG code + $setup_tpl->set_var('config_status_img',$incomplete); + $setup_tpl->set_var('config_status_alt',lang('not completed')); switch($GLOBALS['phpgw_info']['setup']['stage']['config']) { case 1: - $setup_tpl->set_var('config_status_img',$incomplete); - $setup_tpl->set_var('config_status_alt',lang('not completed')); $btn_config_now = $GLOBALS['phpgw_setup']->html->make_frm_btn_simple( lang('Please configure eGroupWare for your environment'), 'POST','config.php', @@ -324,21 +434,48 @@ $setup_tpl->set_var('ldap_table_data',' '); break; case 10: - $setup_tpl->set_var('config_status_img',$completed); - $setup_tpl->set_var('config_status_alt',lang('completed')); + $GLOBALS['phpgw_setup']->db->query("SELECT config_name,config_value FROM phpgw_config WHERE config_app='phpgwapi'"); + while($GLOBALS['phpgw_setup']->db->next_record()) + { + $config[$GLOBALS['phpgw_setup']->db->f(0)] = $GLOBALS['phpgw_setup']->db->f(1); + } + // set and create the default backup_dir + if (@is_writeable($config['files_dir']) && !isset($config['backup_dir']) && $config['file_store_contents'] == 'filesystem') + { + $config['backup_dir'] = $config['files_dir'].'/db_backup'; + if (!is_dir($config['backup_dir']) && mkdir($config['backup_dir'])) + { + $GLOBALS['phpgw_setup']->db->query("INSERT INTO phpgw_config (config_app,config_name,config_value) VALUES ('phpgwapi','backup_dir',".$GLOBALS['phpgw_setup']->db->quote($config['backup_dir']).')',__LINE__,__FILE__); + } + } + $config_msg = ''; + if (!check_dir($config['temp_dir'],$error_msg)) + { + $config_msg = lang("Your temporary directory '%1' %2",$config['temp_dir'],$error_msg); + } + if (!check_dir($config['files_dir'],$error_msg,true)) + { + $config_msg .= ($config_msg?"
\n":'').lang("Your files directory '%1' %2",$config['files_dir'],$error_msg); + } + if (!check_dir($config['backup_dir'],$error_msg,true)) + { + $config_msg .= ($config_msg?"
\n":'').lang("Your backup directory '%1' %2",$config['backup_dir'],$error_msg); + } + if (!$config_msg) + { + $setup_tpl->set_var('config_status_img',$completed); + $setup_tpl->set_var('config_status_alt',lang('completed')); + $config_msg = lang('Configuration completed'); + } $btn_edit_config = $GLOBALS['phpgw_setup']->html->make_frm_btn_simple( - lang('Configuration completed'), + $config_msg, 'POST','config.php', 'submit',lang('Edit Current Configuration'), '' ); - $GLOBALS['phpgw_setup']->db->query("select config_value FROM phpgw_config WHERE config_name='auth_type'"); - $GLOBALS['phpgw_setup']->db->next_record(); - if ($GLOBALS['phpgw_setup']->db->f(0) == 'ldap') + if ($config['auth_type'] == 'ldap') { - $GLOBALS['phpgw_setup']->db->query("select config_value FROM phpgw_config WHERE config_name='ldap_host'"); - $GLOBALS['phpgw_setup']->db->next_record(); - if ($GLOBALS['phpgw_setup']->db->f(0) != '') + if ($config['ldap_host'] != '') { $btn_config_ldap = $GLOBALS['phpgw_setup']->html->make_frm_btn_simple( lang('LDAP account import/export'), @@ -351,35 +488,6 @@ { $btn_config_ldap = ''; } -/* - $GLOBALS['phpgw_setup']->db->query("select config_value FROM phpgw_config WHERE config_name='webserver_url'"); - $GLOBALS['phpgw_setup']->db->next_record(); - if ($GLOBALS['phpgw_setup']->db->f(0)) - { - $link_make_accts = $GLOBALS['phpgw_setup']->html->make_href_link_simple( - '
', - 'setup_demo.php', - lang('Click Here'), - ''.lang('to setup 1 admin account and 3 demo accounts.').'' - ); - } - else - { - $link_make_accts = ' '; - } - } - else - { - $btn_config_ldap = ''; - $link_make_accts = $GLOBALS['phpgw_setup']->html->make_href_link_simple( - '
', - 'setup_demo.php', - lang('Click Here'), - ''.lang('to setup 1 admin account and 3 demo accounts.').'' - ); - } - $config_td = "$btn_edit_config"."$link_make_accts"; -*/ } $setup_tpl->set_var('config_table_data',$btn_edit_config); $setup_tpl->set_var('ldap_table_data',$btn_config_ldap); @@ -496,13 +604,26 @@ $setup_tpl->set_var('apps_table_data',lang('Not ready for this stage yet')); break; } - - $GLOBALS['phpgw_setup']->html->show_header( - $GLOBALS['phpgw_info']['setup']['header_msg'], - False, - 'config', - $GLOBALS['phpgw_setup']->ConfigDomain . '(' . $GLOBALS['phpgw_domain'][$GLOBALS['phpgw_setup']->ConfigDomain]['db_type'] . ')' - ); + // Backup and restore section + $setup_tpl->set_var('backup_step_text',lang('Step %1 - DB backup and restore',6)); + switch($GLOBALS['phpgw_info']['setup']['stage']['db']) + { + case 10: + $setup_tpl->set_var('backup_status_img',$completed); + $setup_tpl->set_var('backup_status_alt',lang('completed')); + $setup_tpl->set_var('backup_table_data',$GLOBALS['phpgw_setup']->html->make_frm_btn_simple( + ''/*lang('This stage is completed
')*/, + '','db_backup.php', + 'submit',lang('backup and restore'), + '')); + break; + default: + $setup_tpl->set_var('backup_status_img',$incomplete); + $setup_tpl->set_var('backup_status_alt',lang('not completed')); + $setup_tpl->set_var('backup_table_data',lang('Not ready for this stage yet')); + break; + } + $setup_tpl->pparse('out','T_setup_main'); $GLOBALS['phpgw_setup']->html->show_footer(); ?> diff --git a/setup/lang/phpgw_de.lang b/setup/lang/phpgw_de.lang index bfe237ed57..ed8f77622e 100644 --- a/setup/lang/phpgw_de.lang +++ b/setup/lang/phpgw_de.lang @@ -19,6 +19,7 @@ admin password to header manager setup de Admin-Passwort f admin user for header manager setup de Admin-Benutzer für Headerverwaltung admin username setup de Admin-Benutzername admins setup de Administratoren +after backing up your tables first. setup de Nach einer Datensicherung Ihrer Tabelen. after retrieving the file, put it into place as the header.inc.php. then, click "continue". setup de Datei nach dem Herunterladen als header.inc.php speichern. Danach auf "Weiter" klicken. all applications setup de Alle Anwendungen all core tables and the admin and preferences applications setup de Sie alle Kern-Tabellen und die Anwendungen Admin und Einstellungen @@ -38,6 +39,7 @@ application: %1, file: %2, line: "%3" setup de Anwendung: %1, Datei: %2, Zeile: are you sure you want to delete your existing tables and data? setup de Sind Sie sicher, dass Sie Ihre bestehenden Tabellen und Daten löschen wollen? are you sure? setup de SIND SIE SICHER? at your request, this script is going to attempt to create the database and assign the db user rights to it setup de Auf Ihre Anforderung hin wird dieses Skript nun versuchen, die Datendank zu erstellen und die Benutzerrechte zuzuordnen +at your request, this script is going to attempt to install a previous backup setup de Auf Ihre Anforderung hin wird dieses Skript nun eine vorherige Datensicherung installieren. at your request, this script is going to attempt to install all the applications for you setup de Auf Ihre Anforderung hin wird dieses Skript nun versuchen, alle Applikationen für Sie zu installieren at your request, this script is going to attempt to install the core tables and the admin and preferences applications for you setup de Auf Ihre Anforderung hin wird dieses Skript nun versuchen die Kern-Tabellen und die Anwendungen Admin und Einstellungen für Sie installieren. at your request, this script is going to attempt to upgrade your old applications to the current versions setup de Auf Ihre Anforderung hin wird dieses Skript versuchen, Ihre Anwendungen auf die gegenwärtige Version zu aktualisieren @@ -51,7 +53,15 @@ auto-created user accounts expire setup de Automatisch angelegte Benutzerkonten available version setup de Verfügbare Version back to the previous screen setup de Zurück zur vorhergehenden Seite back to user login setup de Zurück zur Benutzeranmeldung -backupwarn setup de Aber wir raten Ihnen dringend, eine Sicherungskopie anzulegen für den Fall, dass dieses Skript Ihre bestehenden Daten beschädigt!
Diese automatisierten Skripts können leicht Ihre Daten beschädigen!.
highly recommend backing up your tables in case the script causes damage to your data.
these automated scripts can easily destroy your data. setup de Aber wir raten Ihnen dringend, eine Sicherungskopie anzulegen für den Fall, dass dieses Skript Ihre bestehenden Daten beschädigt!
Diese automatisierten Skripts können leicht Ihre Daten beschädigen!. cancel setup de Abbrechen cannot create the header.inc.php due to file permission restrictions.
instead you can %1 the file. setup de Kann die Datei header.inc.php wegen unzureichenden Zugriffsrechten nicht erzeugen.
Stattdessen können Sie die Datei %1. change system-charset setup de Systemzeichensatz wechseln @@ -85,6 +96,7 @@ configuration completed setup de Konfiguration abgeschlossen configuration password setup de Konfigurationspasswort configuration user setup de Konfigurationsbenutzer configure now setup de Jetzt konfigurieren +confirm to delete this backup? setup de Bestätigen Sie diese Datensicherung zu löschen? contain setup de enthält continue setup de Weiter continue to the header admin setup de Weiter zur Headerverwaltung @@ -92,6 +104,7 @@ convert setup de Konvertieren could not open header.inc.php for writing! setup de Konnte die Datei header.inc.php nicht zum schreiben öffen! country selection setup de Länderauswahl create setup de erstellen +create a backup before upgrading the db setup de mache eine Datensicherung bevor die DB aktualisiert wird create admin account setup de Administrator-Konto anlegen create database setup de Datenbank erzeugen create demo accounts setup de Demo-Benutzer anlegen @@ -108,6 +121,9 @@ current version setup de Gegenw currently installed languages: %1
setup de Gegenwärtig installierte Sprachen: %1
database successfully converted from '%1' to '%2' setup de Datenbank erfolgreich von "%1" nach "%2" konvertiert datetime port.
if using port 13, please set firewall rules appropriately before submitting this page.
(port: 13 / host: 129.6.15.28) setup de Port für Datum/Zeitabfragen
Wenn der Port 13 verwendet wird, bitte VOR dem Absenden die Firewallregeln dementsprechend setzen.
(Port 13/Host: 129.6.15.28) +day setup de Tag +day of week
(0-6, 0=sunday) setup de Wochentag
(0-6, 0=Sonntag) +db backup and restore setup de DB Datensicherung und Wiederherstellung db host setup de Datenbank-Host db name setup de Datenbank-Name db password setup de Datenbank-Passwort @@ -132,6 +148,7 @@ developers' table schema toy setup de Entwickler Tabellen Schema "Spielzeug" did not find any valid db support! setup de Konnte keine gültige Datenbankunterstützung finden! do you want persistent connections (higher performance, but consumes more resources) setup de Wollen Sie eine permanente Datenbankverbindung (höhere Performance, braucht aber mehr Resourcen) do you want to manage homedirectory and loginshell attributes? setup de Wollen Sie Benutzerverzeichnisse und Login-Shell Attribute verwalten? +does not exist setup de existiert nicht domain setup de Domain domain select box on login setup de Domain-Auswahlbox beim Einloggen dont touch my data setup de Meine Daten nicht verändern @@ -149,6 +166,7 @@ enter the full path for temporary files.
examples: /tmp, c:\temp setup de Vol enter the full path for temporary files.
examples: /tmp, c:temp setup de Vollständiger Pfad für temporäre Dateien.
Beispiel: /tmp, C:\TEMP enter the full path for users and group files.
examples: /files, e:\files setup de Vollständiger Pfad für Benutzer- und Gruppendateien.
Beispiel: /files, E:\Files enter the full path for users and group files.
examples: /files, e:files setup de Vollständiger Pfad für Benutzer- und Gruppendateien.
Beispiel: /files, E:\Files +enter the full path to the backup directory.
if empty: files directory setup de Vollständiger Pfad für das Datensicherungsverzeichnis.
Wenn leer: Dateiverzeichnis enter the hostname of the machine on which this server is running setup de Hostname des Computers auf dem der Server läuft enter the location of egroupware's url.
example: http://www.domain.com/egroupware   or   /egroupware
no trailing slash setup de URL zur eGroupWare Installation.
Beispiel: http://www.domain.com/egroupware   or   /egroupware
keinen nachfolgenden Slash / enter the site password for peer servers setup de Site Passwort für Peer Server @@ -167,6 +185,7 @@ export sql users to ldap setup de SQL-Benutzer in LDAP exportieren false setup de Falsch file setup de DATEI file type, size, version, etc. setup de Dateityp, Größe, Version usw. +filename setup de Dateiname for a new install, select import. to convert existing sql accounts to ldap, select export setup de Für eine Neuinstallation, wählen Sie importieren. Um existierende SQL-Accounts zu LDAP zu konvertieren, wählen Sie exportieren. force selectbox setup de Auswahl erzwingen found existing configuration file. loading settings from the file... setup de Existierende Konfigurationsdatei gefunden. Lade Einstellungen von der Datei ... @@ -182,6 +201,7 @@ hooks deregistered setup de Haken nicht mehr aktiv hooks registered setup de Haken registriert host information setup de Host Informationen hostname/ip of database server setup de Hostname/IP des Datenbank-Servers +hour (0-24) setup de Stunde (0-24) however, the application is otherwise installed setup de Wie auch immer, die Anwendung ist ansonsten installiert however, the application may still work setup de Wie auch immer, die Anwendung mag denoch funktionieren if no acl records for user or any group the user is a member of setup de Wenn es keinen ACL-Eintrag für einen Benutzer oder eine Gruppe, der er angehört gibt @@ -204,6 +224,7 @@ insanity setup de Irrsinn install setup de Installieren install all setup de Alle Installieren install applications setup de Anwendungen installieren +install backup setup de Datensicherung installieren install language setup de Sprachen installieren installed setup de installiert instructions for creating the database in %1: setup de Anweisungen um eine Datenbank unter %1 anzulegen: @@ -211,6 +232,8 @@ invalid ip address setup de Ung invalid password setup de Ungültiges Passwort is broken setup de ist kaputt is disabled setup de ist nicht aktiv +is in the webservers docroot setup de ist im Dokumentenverzeichnis (Documentroot) des Webservers +is not writeable by the webserver setup de ist nicht vom Webserver schreibbar ldap account import/export setup de LDAP-Benutzerkonten importieren/exportieren ldap accounts configuration setup de LDAP-Benutzerkonten Konfiguration ldap accounts context setup de LDAP-Kontext für Benutzerkonten @@ -244,20 +267,24 @@ mcrypt settings (requires mcrypt php extension) setup de MCrypt-Einstellungen (b mcrypt version setup de MCrypt-Version memory_limit is set to less than 16m: some applications of egroupware need more than the recommend 8m, expect occasional failures setup de memory_limit (maximale Speicher für ein Skript) ist auf weniger als 16M gesetzt: einige eGroupWare Anwendungen benötigen mehr als die empfohlenen 8M. Sie müssen mit gelegentlichen Fehlern rechnen. minimum account id (e.g. 500 or 100, etc.) setup de Minimum für Benutzer-ID (z.B. 500 oder 100) +minute setup de Minute modifications have been completed! setup de Änderung ist abgeschlossen! modify setup de Ändern modify an existing ldap account store for use with egroupware (for a new install using ldap accounts) setup de Bestehende LDAP-Benutzerkonten für die Benutzung durch eGroupWare anpassen (für eine neue Installation mit LDAP-Konten) +month setup de Monat multi-language support setup setup de Mehr-Sprachen Unterstützung einrichten name of database setup de Name der Datenbank name of db user egroupware uses to connect setup de Name des Datenbank-Benutzers den eGroupWare verwendet never setup de niemals new setup de Neu +next run setup de nächste Ausführung no setup de Nein no accounts existing setup de Keine Benutzerkonten gefunden no algorithms available setup de Kein Algorithmus verfügbar no microsoft sql server support found. disabling setup de Keine Unterstützung für Microsoft SQL Server gefunden. Abgeschaltet no modes available setup de kein Modus verfügbar no mysql support found. disabling setup de Keine Unterstützung für MySQL gefunden. Abgeschaltet +no odbc support found. disabling setup de Keine ODBC Unterstützung gefunden. Abgeschaltet no oracle-db support found. disabling setup de Keine Unterstützung für Oracle gefunden. Abgeschaltet no postgresql support found. disabling setup de Keine Unterstützung für PostgreSQL gefunden. Abgeschaltet no xml support found. disabling setup de Keine Unterstützung für XML gefunden. Abgeschaltet @@ -279,6 +306,7 @@ or setup de oder or %1continue to the header admin%2 setup de oder %1mit der Headerverwaltung weiter machen%2 or http://webdav.domain.com (webdav) setup de oder http://webdav.domain.com (für WebDAV) or we can attempt to create the database for you: setup de Oder wir können versuchen die Datenbank für Sie anzulegen: +or you can install a previous backup. setup de Oder Sie können eine vorherige Datensicherung installieren. password needed for configuration setup de Passwort wird für die Konfiguration benötgt password of db user setup de Passwort des Datenbank Benutzers passwords did not match, please re-enter setup de Passworte stimmten nicht überein, bitte nocheinmal eingeben @@ -317,6 +345,11 @@ remove all setup de Alle Entfernen requires reinstall or manual repair setup de Erfordert Neuinstallation oder manuelle Reparatur requires upgrade setup de Erfordert Aktualisierung resolve setup de Lösen +restore setup de Wiederherstellen +restore failed setup de Wiederherstellen fehlgeschlagen +restore finished setup de Wiederherstellen beendet +restore started, this might take a view minutes ... setup de Wiederherstellung gestartet, das kann einige Minuten dauern ... +restoring a backup will delete/replace all content in your database. are you sure? setup de Das Wiederherstellen einer Datensicherung löscht / ersetzt den Inhalt Ihrer Datenbank. Sind Sie sicher? return to setup setup de Zurück zum Setup run installation tests setup de Installationstests starten safe_mode is turned on, which is generaly a good thing as it makes your install more secure. setup de safe_mode ist eingeschaltet, was ist generell gut, da es Ihre Installation sicherer macht. @@ -355,7 +388,10 @@ setup demo accounts in ldap setup de Demo-Benutzer in LDAP einrichten setup main menu setup de Setup-Hauptmenü setup the database setup de Datenbank einzurichten setup/config admin login setup de Setup-/Konfigurationsadmin-Login +shedule setup de planen +sheduled backups setup de Regelmäßige Datensicherungen show 'powered by' logo on setup de Zeige "powered by" Logo +size setup de Größe some or all of its tables are missing setup de Einige oder alle Tabellen fehlen sql encryption type setup de SQL-Verschlüsselungstyp für das Passwort (Vorgabe MD5) start the postmaster setup de Starten Sie den postmaster @@ -363,8 +399,10 @@ status setup de Status step %1 - admin account setup de Schrit %1 - Administrator-Konto step %1 - advanced application management setup de Schritt %1 - Erweiterte Verwaltung der Anwendungen step %1 - configuration setup de Schritt %1 - Konfiguration +step %1 - db backup and restore setup de Schritt %1 - DB Datensicherung und Wiederherstellung step %1 - language management setup de Schritt %1 - Verwaltung der Sprachen step %1 - simple application management setup de Schritt %1 - Einfache Verwaltung der Anwendungen +succesfully uploaded file %1 setup de Datei %1 erfolgreich hochgeladen table change messages setup de Tabellenänderungsmeldungen tables dropped setup de Tabellen wurden gelöscht tables installed, unless there are errors printed above setup de Tabellen wurden installiert, außer oben sind Fehlermelungen zu sehen @@ -387,6 +425,7 @@ there was a problem trying to connect to your ldap server.
setup de Es gab there was a problem trying to connect to your ldap server.
please check your ldap server configuration setup de Es gab ein Problem eine Verbindung zu Ihrem LDAP-Server herzustellen.
Bitte überprüfen Sie die Konfiguration Ihres LDAP-Servers. this has to be outside the webservers document-root!!! setup de Muss außerhalb des Wurzelverzeichnisses (document root) des Webservers sein!!! this might take a while, please wait ... setup de Dieser Test braucht einige Zeit, bitte warten ... +this program lets you backup your database, shedule a backup or restore it. setup de Mit diesem Programm können Sie Ihre Datenbank sichern, eine regelmäßige Datensicherung planen oder sie zurücksichern. this program will convert your database to a new system-charset. setup de Dieses Programm wird Ihre Datenbank in einen neuen Systemzeichensatz konvertieren. this program will help you upgrade or install different languages for egroupware setup de Dieses Programm wird Ihnen bei der Aktualisierung oder Installation verschiedender Sprachen für eGroupWare behilflich sein this section will help you export users and groups from egroupware's account tables into your ldap tree setup de Dieser Abschnitt wird Ihnen beim Exportieren von Benutzern/Gruppen aus eGroupWare's Account-Tabellen in Ihren LDAP-Baum behilflich sein @@ -410,6 +449,9 @@ upgrade setup de Aktualisieren upgrade all setup de Alle Aktualiseren upgraded setup de Aktualisiert upgrading tables setup de aktualisiere Tabellen +upload backup setup de Datensicherung hochladen +uploads a backup and installs it on your db setup de lädt eine Datensicherung hoch und installiert sie auf Ihrer DB +uploads a backup to the backup-dir, from where you can restore it setup de Läde eine Datensicherung in das Datensicherungsverzeichnis, von wo sie diese zurücksichern können use cookies to pass sessionid setup de SitzungsId in einem Cookie speichern use pure html compliant code (not fully working yet) setup de Vollständig HTML kompatiblen Code verwenden (nicht vollständig implementiert) user account prefix setup de Präfix für Benutzernamen @@ -433,6 +475,7 @@ would you like egroupware to check for a new version
when admins login ? setu would you like to show each application's upgrade status ? setup de Soll der Upgrade-Status aller Anwendungen angezeigt werden ? writable by the webserver setup de schreibar durch den Webserver write config setup de Konfiguration schreiben +year setup de Jahr yes setup de Ja you appear to be running a pre-beta version of egroupware.
these versions are no longer supported, and there is no upgrade path for them in setup.
you may wish to first upgrade to 0.9.10 (the last version to support pre-beta upgrades)
and then upgrade from there with the current version. setup de Es sieht so aus, als ob Sie eine vor-beta Version von eGroupWare benutzen.
Diese Versionen werden nicht länger unterstützt, und es gibt keinen Aktualisierungs-Pfad für Sie im Einrichtung-Programm.
Sie möchten vieleicht erst auf you appear to be running an old version of php
it its recommend that you upgrade to a new version.
older version of php might not run egroupware correctly, if at all.

please upgrade to at least version %1 setup de Es sieht so aus als ob Sie eine alte PHP-Version benutzen
Es ist notwendig auf eine neue Version zu aktualisieren.
Ältere PHP-Versionen könnten eGroupWare (wenn überhaupt) nicht korrekt ausführen.

Biite aktualisieren Sie mindestens auf Version %1 @@ -442,6 +485,7 @@ you appear to be using php3. disabling php4 sessions support setup de Sie schein you appear to be using php4. enabling php4 sessions support setup de Sie scheinen PHP4 zu verwenden. Schalte PHP4 Session Unterstützung ein. you appear to have microsoft sql server support enabled setup de Sie scheinen Microsoft SQL Server Unterstützung zu haben. you appear to have mysql support enabled setup de Sie scheinen MySQL Unterstützung zu haben. +you appear to have odbc support enabled setup de Sie scheinen ODBC Unterstützung zu haben. you appear to have oracle support enabled setup de Sie scheinen Oracle Unterstützung zu haben. you appear to have oracle v8 (oci) support enabled setup de Sie scheinen Oracle V8 (OCI) Unterstützung zu haben. you appear to have postgresql support enabled setup de Sie scheinen PostgreSQL Unterstützung zu haben. @@ -462,9 +506,11 @@ you will need to load the proper schema into your ldap server - see phpgwapi/doc you're using an old configuration file format... setup de Sie verwenden ein altes Format der Konfigurationsdatei ... you're using an old header.inc.php version... setup de Sie verwenden eine alte header.inc.php Version ... your applications are current setup de Ihre Anwendungen sind aktuell +your backup directory '%1' %2 setup de Ihr Datensicherungsverzeichnis '%1' %2 your database does not exist setup de Ihre Datenbank existiert nicht your database is not working! setup de Ihre Datenbank funktioniert nicht! your database is working, but you dont have any applications installed setup de Ihre Datenbank arbeitet, aber Sie haben keine Anwendungen installiert! +your files directory '%1' %2 setup de Ihr Dateiverzeichnis '%1' %2 your header admin password is not set. please set it now! setup de Ihr Headerverwaltungspasswort wurde NICHT gesetzt. Bitte setzen Sie es jetzt! your header.inc.php needs upgrading. setup de Ihre header.inc.php muss aktualisiert werden. your header.inc.php needs upgrading.
warning!
make backups! setup de Ihre header.inc.php muss aktualisiert werden.
WARNUNG!
MACHEN SIE EINE SICHERUNG! @@ -472,3 +518,4 @@ your php installation does not have appropriate gd support. you need gd library your tables are current setup de Ihre Tabellen sind aktuell your tables may be altered and you may lose data setup de Ihre Tabellen könnten verändert werden, und Sie könnten Daten verlieren! your tables will be dropped and you will lose data setup de Ihre Tabellen werden gelöscht werden und Sie werden Daten verlieren! +your temporary directory '%1' %2 setup de Ihr temporäres Verzeichnis '%1' %2 diff --git a/setup/lang/phpgw_en.lang b/setup/lang/phpgw_en.lang index f42c36a5b5..5c23257075 100644 --- a/setup/lang/phpgw_en.lang +++ b/setup/lang/phpgw_en.lang @@ -19,6 +19,7 @@ admin password to header manager setup en Admin password to header manager admin user for header manager setup en Admin user for header manager admin username setup en Admin username admins setup en Admins +after backing up your tables first. setup en After backing up your tables first. after retrieving the file, put it into place as the header.inc.php. then, click "continue". setup en After retrieving the file, put it into place as the header.inc.php. Then, click "continue". all applications setup en all applications all core tables and the admin and preferences applications setup en all core tables and the admin and preferences applications @@ -38,6 +39,7 @@ application: %1, file: %2, line: "%3" setup en Application: %1, File: %2, Line: are you sure you want to delete your existing tables and data? setup en Are you sure you want to delete your existing tables and data? are you sure? setup en ARE YOU SURE? at your request, this script is going to attempt to create the database and assign the db user rights to it setup en At your request, this script is going to attempt to create the database and assign the db user rights to it +at your request, this script is going to attempt to install a previous backup setup en At your request, this script is going to attempt to install a previous backup at your request, this script is going to attempt to install the core tables and the admin and preferences applications for you setup en At your request, this script is going to attempt to install the core tables and the admin and preferences applications for you. at your request, this script is going to attempt to upgrade your old applications to the current versions setup en At your request, this script is going to attempt to upgrade your old applications to the current versions at your request, this script is going to attempt to upgrade your old tables to the new format setup en At your request, this script is going to attempt to upgrade your old tables to the new format @@ -50,7 +52,15 @@ auto-created user accounts expire setup en Auto-created user accounts expire available version setup en Available Version back to the previous screen setup en Back to the previous screen back to user login setup en Back to user login -backupwarn setup en but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data.
Please backup before going any further! +back's up your db now, this might take a view minutes setup en back's up your DB now, this might take a view minutes +backup '%1' deleted setup en backup '%1' deleted +backup '%1' restored setup en backup '%1' restored +backup and restore setup en backup and restore +backup failed setup en Backup failed +backup finished setup en backup finished +backup now setup en backup now +backup sets setup en backup sets +backup started, this might take a view minutes ... setup en backup started, this might take a view minutes ... because an application it depends upon was upgraded setup en because an application it depends upon was upgraded because it depends upon setup en because it depends upon because it is not a user application, or access is controlled via acl setup en because it is not a user application, or access is controlled via acl @@ -60,6 +70,7 @@ because of a failed upgrade or install setup en because of a failed upgrade or i because of a failed upgrade, or the database is newer than the installed version of this app setup en because of a failed upgrade, or the database is newer than the installed version of this app because the enable flag for this app is set to 0, or is undefined setup en because the enable flag for this app is set to 0, or is undefined bottom setup en bottom +but we highly recommend backing up your tables in case the script causes damage to your data.
these automated scripts can easily destroy your data. setup en but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. cancel setup en Cancel cannot create the header.inc.php due to file permission restrictions.
instead you can %1 the file. setup en Cannot create the header.inc.php due to file permission restrictions.
Instead you can %1 the file. change system-charset setup en Change system-charset @@ -84,6 +95,7 @@ configuration completed setup en Configuration completed configuration password setup en Configuration Password configuration user setup en Configuration User configure now setup en Configure Now +confirm to delete this backup? setup en Confirm to delete this backup? contain setup en contain continue setup en Continue continue to the header admin setup en Continue to the Header Admin @@ -91,6 +103,7 @@ convert setup en Convert could not open header.inc.php for writing! setup en Could not open header.inc.php for writing! country selection setup en Country Selection create setup en Create +create a backup before upgrading the db setup en create a backup before upgrading the DB create admin account setup en Create admin account create database setup en Create Database create demo accounts setup en Create demo accounts @@ -107,6 +120,9 @@ current version setup en Current Version currently installed languages: %1
setup en Currently installed languages: %1
database successfully converted from '%1' to '%2' setup en Database successfully converted from '%1' to '%2' datetime port.
if using port 13, please set firewall rules appropriately before submitting this page.
(port: 13 / host: 129.6.15.28) setup en Datetime port.
If using port 13, please set firewall rules appropriately before submitting this page.
(Port: 13 / Host: 129.6.15.28) +day setup en day +day of week
(0-6, 0=sunday) setup en day of week
(0-6, 0=sunday) +db backup and restore setup en DB backup and restore db host setup en DB Host db name setup en DB Name db password setup en DB Password @@ -131,6 +147,7 @@ developers' table schema toy setup en Developers' Table Schema Toy did not find any valid db support! setup en Did not find any valid DB support! do you want persistent connections (higher performance, but consumes more resources) setup en Do you want persistent connections (higher performance, but consumes more resources) do you want to manage homedirectory and loginshell attributes? setup en Do you want to manage homedirectory and loginshell attributes? +does not exist setup en does not exist domain setup en Domain domain select box on login setup en Domain select box on login dont touch my data setup en Dont touch my data @@ -146,6 +163,7 @@ enter some random text for app session encryption setup en Enter some random tex enter some random text for app_session
encryption (requires mcrypt) setup en Enter some random text for app_session
encryption (requires mcrypt) enter the full path for temporary files.
examples: /tmp, c:\temp setup en Enter the full path for temporary files.
Examples: /tmp, C:\TEMP enter the full path for users and group files.
examples: /files, e:\files setup en Enter the full path for users and group files.
Examples: /files, E:\FILES +enter the full path to the backup directory.
if empty: files directory setup en Enter the full path to the backup directory.
if empty: files directory enter the hostname of the machine on which this server is running setup en Enter the hostname of the machine on which this server is running enter the location of egroupware's url.
example: http://www.domain.com/egroupware   or   /egroupware
no trailing slash setup en Enter the location of eGroupWare's URL.
Example: http://www.domain.com/egroupware   or   /egroupware
No trailing slash enter the site password for peer servers setup en Enter the site password for peer servers @@ -164,6 +182,7 @@ export sql users to ldap setup en Export SQL users to LDAP false setup en False file setup en FILE file type, size, version, etc. setup en file type, size, version, etc. +filename setup en filename for a new install, select import. to convert existing sql accounts to ldap, select export setup en For a new install, select import. To convert existing SQL accounts to LDAP, select export force selectbox setup en Force Selectbox found existing configuration file. loading settings from the file... setup en Found existing configuration file. Loading settings from the file... @@ -179,6 +198,7 @@ hooks deregistered setup en hooks deregistered hooks registered setup en hooks registered host information setup en Host information hostname/ip of database server setup en Hostname/IP of database server +hour (0-24) setup en hour (0-24) however, the application is otherwise installed setup en However, the application is otherwise installed however, the application may still work setup en However, the application may still work if no acl records for user or any group the user is a member of setup en If no ACL records for user or any group the user is a member of @@ -201,6 +221,7 @@ insanity setup en Insanity install setup en Install install all setup en Install All install applications setup en Install Applications +install backup setup en install backup install language setup en Install Language installed setup en installed instructions for creating the database in %1: setup en Instructions for creating the database in %1: @@ -208,6 +229,8 @@ invalid ip address setup en Invalid IP address invalid password setup en Invalid password is broken setup en is broken is disabled setup en is disabled +is in the webservers docroot setup en is in the webservers docroot +is not writeable by the webserver setup en is not writeable by the webserver ldap account import/export setup en LDAP account import/export ldap accounts configuration setup en LDAP Accounts Configuration ldap accounts context setup en LDAP accounts context @@ -241,20 +264,24 @@ mcrypt settings (requires mcrypt php extension) setup en Mcrypt Settings (requir mcrypt version setup en MCrypt version memory_limit is set to less than 16m: some applications of egroupware need more than the recommend 8m, expect occasional failures setup en memory_limit is set to less than 16M: some applications of eGroupWare need more than the recommend 8M, expect occasional failures minimum account id (e.g. 500 or 100, etc.) setup en Minimum account id (e.g. 500 or 100, etc.) +minute setup en minute modifications have been completed! setup en Modifications have been completed! modify setup en Modify modify an existing ldap account store for use with egroupware (for a new install using ldap accounts) setup en Modify an existing LDAP account store for use with eGroupWare (for a new install using LDAP accounts) +month setup en month multi-language support setup setup en Multi-Language support setup name of database setup en Name of database name of db user egroupware uses to connect setup en Name of db user eGroupWare uses to connect never setup en never new setup en New +next run setup en next run no setup en No no accounts existing setup en No accounts existing no algorithms available setup en no algorithms available no microsoft sql server support found. disabling setup en No Microsoft SQL Server support found. Disabling no modes available setup en no modes available no mysql support found. disabling setup en No MySQL support found. Disabling +no odbc support found. disabling setup en No ODBC support found. Disabling no oracle-db support found. disabling setup en No Oracle-DB support found. Disabling no postgresql support found. disabling setup en No PostgreSQL support found. Disabling no xml support found. disabling setup en No XML support found. Disabling @@ -276,6 +303,7 @@ or setup en or or %1continue to the header admin%2 setup en or %1Continue to the Header Admin%2 or http://webdav.domain.com (webdav) setup en or http://webdav.domain.com (WebDAV) or we can attempt to create the database for you: setup en Or we can attempt to create the database for you: +or you can install a previous backup. setup en Or you can install a previous backup. password needed for configuration setup en Password needed for configuration password of db user setup en Password of db user passwords did not match, please re-enter setup en Passwords did not match, please re-enter @@ -314,6 +342,11 @@ remove all setup en Remove All requires reinstall or manual repair setup en Requires reinstall or manual repair requires upgrade setup en Requires upgrade resolve setup en Resolve +restore setup en restore +restore failed setup en Restore failed +restore finished setup en restore finished +restore started, this might take a view minutes ... setup en restore started, this might take a view minutes ... +restoring a backup will delete/replace all content in your database. are you sure? setup en Restoring a backup will delete/replace all content in your database. Are you sure? return to setup setup en Return to Setup run installation tests setup en Run installation tests safe_mode is turned on, which is generaly a good thing as it makes your install more secure. setup en safe_mode is turned on, which is generaly a good thing as it makes your install more secure. @@ -352,7 +385,10 @@ setup demo accounts in ldap setup en Setup demo accounts in LDAP setup main menu setup en Setup Main Menu setup the database setup en Setup the database setup/config admin login setup en Setup/Config Admin Login +shedule setup en shedule +sheduled backups setup en sheduled backups show 'powered by' logo on setup en Show 'powered by' logo on +size setup en size some or all of its tables are missing setup en Some or all of its tables are missing sql encryption type setup en SQL encryption type for passwords (default - md5) start the postmaster setup en Start the postmaster @@ -360,8 +396,10 @@ status setup en Status step %1 - admin account setup en Step %1 - Admin Account step %1 - advanced application management setup en Step %1 - Advanced Application Management step %1 - configuration setup en Step %1 - Configuration +step %1 - db backup and restore setup en Step %1 - DB backup and restore step %1 - language management setup en Step %1 - Language Management step %1 - simple application management setup en Step %1 - Simple Application Management +succesfully uploaded file %1 setup en succesfully uploaded file %1 table change messages setup en Table Change Messages tables dropped setup en tables dropped tables installed, unless there are errors printed above setup en tables installed, unless there are errors printed above @@ -383,6 +421,7 @@ there was a problem trying to connect to your ldap server.
setup en There w there was a problem trying to connect to your ldap server.
please check your ldap server configuration setup en There was a problem trying to connect to your LDAP server.
please check your LDAP server configuration this has to be outside the webservers document-root!!! setup en This has to be outside the webservers document-root!!! this might take a while, please wait ... setup en This might take a while, please wait ... +this program lets you backup your database, shedule a backup or restore it. setup en This program lets you backup your database, shedule a backup or restore it. this program will convert your database to a new system-charset. setup en This program will convert your database to a new system-charset. this program will help you upgrade or install different languages for egroupware setup en This program will help you upgrade or install different languages for eGroupWare this section will help you export users and groups from egroupware's account tables into your ldap tree setup en This section will help you export users and groups from eGroupWare's account tables into your LDAP tree @@ -406,6 +445,9 @@ upgrade setup en Upgrade upgrade all setup en Upgrade All upgraded setup en upgraded upgrading tables setup en Upgrading Tables +upload backup setup en upload backup +uploads a backup and installs it on your db setup en uploads a backup and installs it on your DB +uploads a backup to the backup-dir, from where you can restore it setup en uploads a backup to the backup-dir, from where you can restore it use cookies to pass sessionid setup en Use cookies to pass sessionid use pure html compliant code (not fully working yet) setup en Use pure HTML compliant code (not fully working yet) user account prefix setup en User account prefix @@ -429,6 +471,7 @@ would you like egroupware to check for a new version
when admins login ? setu would you like to show each application's upgrade status ? setup en Would you like to show each application's upgrade status ? writable by the webserver setup en writable by the webserver write config setup en Write config +year setup en year yes setup en Yes you appear to be running a pre-beta version of egroupware.
these versions are no longer supported, and there is no upgrade path for them in setup.
you may wish to first upgrade to 0.9.10 (the last version to support pre-beta upgrades)
and then upgrade from there with the current version. setup en You appear to be running a pre-beta version of eGroupWare.
These versions are no longer supported, and there is no upgrade path for them in setup.
You may wish to first upgrade to 0.9.10 (the last version to support pre-beta upgrades)
and then upgrade from there with the current version. you appear to be running an old version of php
it its recommend that you upgrade to a new version.
older version of php might not run egroupware correctly, if at all.

please upgrade to at least version %1 setup en You appear to be running an old version of PHP
It its recommend that you upgrade to a new version.
Older version of PHP might not run eGroupWare correctly, if at all.

Please upgrade to at least version %1 @@ -438,6 +481,7 @@ you appear to be using php3. disabling php4 sessions support setup en You appear you appear to be using php4. enabling php4 sessions support setup en You appear to be using PHP4. Enabling PHP4 sessions support you appear to have microsoft sql server support enabled setup en You appear to have Microsoft SQL Server support enabled you appear to have mysql support enabled setup en You appear to have MySQL support enabled +you appear to have odbc support enabled setup en You appear to have ODBC support enabled you appear to have oracle support enabled setup en You appear to have Oracle support enabled you appear to have oracle v8 (oci) support enabled setup en You appear to have Oracle V8 (OCI) support enabled you appear to have postgresql support enabled setup en You appear to have PostgreSQL support enabled @@ -458,9 +502,11 @@ you will need to load the proper schema into your ldap server - see phpgwapi/doc you're using an old configuration file format... setup en You're using an old configuration file format... you're using an old header.inc.php version... setup en You're using an old header.inc.php version... your applications are current setup en Your applications are current +your backup directory '%1' %2 setup en Your backup directory '%1' %2 your database does not exist setup en Your database does not exist your database is not working! setup en Your Database is not working! your database is working, but you dont have any applications installed setup en Your database is working, but you dont have any applications installed +your files directory '%1' %2 setup en Your files directory '%1' %2 your header admin password is not set. please set it now! setup en Your header admin password is NOT set. Please set it now! your header.inc.php needs upgrading. setup en Your header.inc.php needs upgrading. your header.inc.php needs upgrading.
warning!
make backups! setup en Your header.inc.php needs upgrading.
WARNING!
MAKE BACKUPS! @@ -468,3 +514,4 @@ your php installation does not have appropriate gd support. you need gd library your tables are current setup en Your tables are current your tables may be altered and you may lose data setup en Your tables may be altered and you may lose data. your tables will be dropped and you will lose data setup en Your tables will be dropped and you will lose data !! +your temporary directory '%1' %2 setup en Your temporary directory '%1' %2 diff --git a/setup/lang/phpgw_es-ca.lang b/setup/lang/phpgw_es-ca.lang index 4b873f4236..eebea05b5a 100644 --- a/setup/lang/phpgw_es-ca.lang +++ b/setup/lang/phpgw_es-ca.lang @@ -44,7 +44,7 @@ auto-created user accounts expire setup es-ca Els comptes creats autom available version setup es-ca Versió disponible back to the previous screen setup es-ca Tornar a la pantalla anterior back to user login setup es-ca Tornar a l'inici de sessió d'usuari -backupwarn setup es-ca però us recomanem que feu copia de seguretat de les taules per el cas que el script faci malbé l'informació.
Aquests scripts automàtics poden fàcilment destruir la vostra informació.
Si us plau, feu copia de seguretat de l'informació abans de continuar! +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup es-ca però us recomanem que feu copia de seguretat de les taules per el cas que el script faci malbé l'informació.
Aquests scripts automàtics poden fàcilment destruir la vostra informació. because an application it depends upon was upgraded setup es-ca perqué una aplicació de la que en depén s'ha actualitzat because it depends upon setup es-ca perqué depén de because it is not a user application, or access is controlled via acl setup es-ca perqué no és una aplicació d'usuari, o bé l'accés està controlat per ACL diff --git a/setup/lang/phpgw_es-es.lang b/setup/lang/phpgw_es-es.lang index 02f847133f..202fd37ba3 100644 --- a/setup/lang/phpgw_es-es.lang +++ b/setup/lang/phpgw_es-es.lang @@ -52,7 +52,7 @@ auto-created user accounts expire setup es-es Las cuentas creadas autom available version setup es-es Versión disponible back to the previous screen setup es-es Volver al menú anterior back to user login setup es-es Volver al inicio de sesión de usuario -backupwarn setup es-es pero le recomendamos encarecidamente que haga copia de seguridad de sus tablas en caso de que el guión cause daños a su información.
Estos guiones automáticos pueden facilmente destruir su información.
¡Por favor haga copia de seguridad de su información antes de continuar! +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup es-es pero le recomendamos encarecidamente que haga copia de seguridad de sus tablas en caso de que el guión cause daños a su información.
Estos guiones automáticos pueden facilmente destruir su información. because an application it depends upon was upgraded setup es-es porque una aplicación de la que depende se actualizó because it depends upon setup es-es porque depende de because it is not a user application, or access is controlled via acl setup es-es porque no es una aplicación de usuario, o el acceso está controlado por ACL diff --git a/setup/lang/phpgw_fi.lang b/setup/lang/phpgw_fi.lang index 3076336d09..4b9a0ca227 100644 --- a/setup/lang/phpgw_fi.lang +++ b/setup/lang/phpgw_fi.lang @@ -47,7 +47,7 @@ auto-created user accounts expire setup fi Automaattisesti luotujen tilien vanhe available version setup fi Käytettävissä oleva versio back to the previous screen setup fi Takaisin edelliselle sivulle back to user login setup fi Kirjaudu sisään -backupwarn setup fi Suosittelemme, että varmuuskopioit taulujen tiedot, jotta voit tarvittaessa palauttaa ne.
Automaattiset skriptit voivat tuhota dataa.
Varmuuskopioi, ennen kuin jatkat! +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup fi Suosittelemme, että varmuuskopioit taulujen tiedot, jotta voit tarvittaessa palauttaa ne.
Automaattiset skriptit voivat tuhota dataa. because an application it depends upon was upgraded setup fi koska sovellus, josta se riippuu, on päivitetty because it depends upon setup fi koska se riippuu sovelluksesta because it is not a user application, or access is controlled via acl setup fi koska se ei ole käyttäjien sovellus, tai sen käyttöä hallitaan acl:n avulla diff --git a/setup/lang/phpgw_fr.lang b/setup/lang/phpgw_fr.lang index 16ea24c72a..d757982518 100644 --- a/setup/lang/phpgw_fr.lang +++ b/setup/lang/phpgw_fr.lang @@ -53,7 +53,7 @@ auto-created user accounts expire setup fr Les comptes d'utilisateur auto-cr available version setup fr Version disponible back to the previous screen setup fr Retour à l'écran précédent back to user login setup fr Revenir à la maison -backupwarn setup fr Mais nous vous recommendons fortement de sauvegarder vos tables pour le cas où le script endommagerait vos données.
Ces scripts automatiques peuvent facilement endommager vos données.
SVP faites une sauvegarde avant de continuer! +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup fr Mais nous vous recommendons fortement de sauvegarder vos tables pour le cas où le script endommagerait vos données.
Ces scripts automatiques peuvent facilement endommager vos données. because an application it depends upon was upgraded setup fr parce-qu'une application de laquelle il dépend a été mise à jour because it depends upon setup fr Parce-que ça dépend de because it is not a user application, or access is controlled via acl setup fr Parce-que ce n'est pas une application utilisateur, ou l'accès est contrôlé par ACL diff --git a/setup/lang/phpgw_it.lang b/setup/lang/phpgw_it.lang index 473842969a..f88f570c69 100644 --- a/setup/lang/phpgw_it.lang +++ b/setup/lang/phpgw_it.lang @@ -46,7 +46,7 @@ auto-created user accounts expire setup it Gli account utente auto-creati scadon available version setup it Versione Disponibile back to the previous screen setup it Indietro alla schermata precedente back to user login setup it Indietro al Login Utente -backupwarn setup it ma noi consigliamo vivamente di salvare le tue tabelle nel caso in cui la procedura causidanni ai tuoi dati.
Queste procedure automatizzate possono distruggere molto facilmente i tuoi dati.
Per favore esegui un salvataggio prima di proseguire oltre! +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup it ma noi consigliamo vivamente di salvare le tue tabelle nel caso in cui la procedura causidanni ai tuoi dati.
Queste procedure automatizzate possono distruggere molto facilmente i tuoi dati. because an application it depends upon was upgraded setup it perché un'applicazione da cui dipende è stata aggiornata because it depends upon setup it perché dipende da because it is not a user application, or access is controlled via acl setup it perché non si tratta di un'applicazione dell'utente, o l'accesso è controllato tramite ACL diff --git a/setup/lang/phpgw_ja.lang b/setup/lang/phpgw_ja.lang index 67080fb0e2..4daadeaac3 100644 --- a/setup/lang/phpgw_ja.lang +++ b/setup/lang/phpgw_ja.lang @@ -26,7 +26,7 @@ authentication / accounts setup ja ǧ auto create account records for authenticated users setup ja ǧ¾Ú¤·¤¿¥æ¡¼¥¶¾ðÊó¤ò¼«Æ°Åª¤ËºîÀ®¤¹¤ë auto-created user accounts expire setup ja ¼«Æ°ºîÀ®¤·¤¿¥æ¡¼¥¶¤ÎÍ­¸ú´ü¸Â available version setup ja ºÇ¿·¤Î
¥Ð¡¼¥¸¥ç¥ó -backupwarn setup ja
¤·¤«¤·¡¢¤³¤Î½èÍý¤¬¡¢¤¢¤Ê¤¿¤Î¥Ç¡¼¥¿¤òÇ˲õ¤·¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤ËÈ÷¤¨¤Æ¡¢¥Ç¡¼¥¿¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¤ª´«¤á¤·¤Þ¤¹¡£
Àè¤Ë¿Ê¤àÁ°¤Ë¡¢¥Ç¡¼¥¿¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¹Ô¤Ã¤Æ²¼¤µ¤¤¡£ +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup ja
¤·¤«¤·¡¢¤³¤Î½èÍý¤¬¡¢¤¢¤Ê¤¿¤Î¥Ç¡¼¥¿¤òÇ˲õ¤·¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤ËÈ÷¤¨¤Æ¡¢¥Ç¡¼¥¿¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¤ª´«¤á¤·¤Þ¤¹¡£ because it depends upon setup ja Íýͳ¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹ because it is not a user application, or access is controlled via acl setup ja ¥æ¡¼¥¶¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ê¤¤¤«¡¢ACL ¤Ë¤è¤Ã¤Æ¥¢¥¯¥»¥¹À©¸Â¤·¤Æ¤¤¤Þ¤¹¡£ because it requires manual table installation,
or the table definition was incorrect setup ja ¼êÆ°¤Ç¥Æ¡¼¥Ö¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¤«¡¢
¥Æ¡¼¥Ö¥ëÄêµÁ¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£ diff --git a/setup/lang/phpgw_ko.lang b/setup/lang/phpgw_ko.lang index 745ad13755..4164584c7e 100644 --- a/setup/lang/phpgw_ko.lang +++ b/setup/lang/phpgw_ko.lang @@ -49,7 +49,7 @@ auto-created user accounts expire setup ko available version setup ko °¡´ÉÇÑ ¹öÀü back to the previous screen setup ko ÀÌÀü È­¸éÀ¸·Î µ¹¾Æ°¡±â back to user login setup ko »ç¿ëÀÚ Á¢¼ÓÀ¸·Î µ¹¾Æ°¡±â -backupwarn setup ko ÇÏÁö¸¸ ÀúÈñ´Â ½ºÅ©¸³Æ®°¡ ½ÇÇ൵Áß µ¥ÀÌÅ͸¦ ¼Õ»óÇÒ ¼ö Àֱ⶧¹®¿¡ ±ÍÇÏÀÇ Å×À̺íÀ» ¹é¾÷Çϱæ Àû±Ø ±ÇÀåÇÕ´Ï´Ù
ÀÌ ÀÚµ¿È­µÈ ½ºÅ©¸³Æ®´Â µ¥ÀÌÅͼսÇÀÌ ÀϾ¼ö ÀÖ½À´Ï´Ù.
´õ ÁøÇàÇϱâ Àü¿¡ ¹é¾÷ÇÏ½Ã±æ ±ÇÀåÇÕ´Ï´Ù! +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup ko ÇÏÁö¸¸ ÀúÈñ´Â ½ºÅ©¸³Æ®°¡ ½ÇÇ൵Áß µ¥ÀÌÅ͸¦ ¼Õ»óÇÒ ¼ö Àֱ⶧¹®¿¡ ±ÍÇÏÀÇ Å×À̺íÀ» ¹é¾÷Çϱæ Àû±Ø ±ÇÀåÇÕ´Ï´Ù
ÀÌ ÀÚµ¿È­µÈ ½ºÅ©¸³Æ®´Â µ¥ÀÌÅͼսÇÀÌ ÀϾ¼ö ÀÖ½À´Ï´Ù. because an application it depends upon was upgraded setup ko ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¾÷±×·¹ÀÌµå µÇ¾ú´ÂÁö ¿©ºÎ¿¡ ´Þ·ÁÀÖÀ½ because it depends upon setup ko ÀÇÁ¸¼º¶§¹®¿¡ because it is not a user application, or access is controlled via acl setup ko »ç¿ëÀÚ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¾Æ´Ï±â¶§¹®¿¡, Á¢±Ù Á¦¾î´Â ACLÀ» ÅëÇؼ­ diff --git a/setup/lang/phpgw_pl.lang b/setup/lang/phpgw_pl.lang index 8a9ef88634..9501225a13 100755 --- a/setup/lang/phpgw_pl.lang +++ b/setup/lang/phpgw_pl.lang @@ -28,7 +28,7 @@ authentication / accounts setup pl Uwierzytelnianie / Konta auto create account records for authenticated users setup pl Automatycznie twórz zapisy kont dla uwierzytelnionych u¿ytkowników auto-created user accounts expire setup pl Utworzone automatycznie konta u¿ytkowników wygas³y available version setup pl Dostêpne wersje -backupwarn setup pl but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data.
Please backup before going any further! +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup pl but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. because it depends upon setup pl because it depends upon because it is not a user application, or access is controlled via acl setup pl because it is not a user application, or access is controlled via acl because it requires manual table installation,
or the table definition was incorrect setup pl because it requires manual table installation,
or the table definition was incorrect diff --git a/setup/lang/phpgw_pt-br.lang b/setup/lang/phpgw_pt-br.lang index 80dfd5c515..ff2824ac3d 100644 --- a/setup/lang/phpgw_pt-br.lang +++ b/setup/lang/phpgw_pt-br.lang @@ -47,7 +47,7 @@ auto-created user accounts expire setup pt-br Usu available version setup pt-br Versão Disponível back to the previous screen setup pt-br Voltar a tela anterior back to user login setup pt-br Voltar a tela de conexão -backupwarn setup pt-br é altamente recomendável fazer uma cópia de segurança das tabelas do banco de dados caso o script danifique seus dados.
Estes scripts automáticos podem destruir seus dados facilmente
Por favor faça uma cópia de segurança antes de continuar +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup pt-br é altamente recomendável fazer uma cópia de segurança das tabelas do banco de dados caso o script danifique seus dados.
Estes scripts automáticos podem destruir seus dados facilmente because an application it depends upon was upgraded setup pt-br Porque um aplicativo que ele depende foi atualizado because it depends upon setup pt-br pois depende de because it is not a user application, or access is controlled via acl setup pt-br porque não é uma aplicação de usuário ou o acesso é controlado através das regras de acesso diff --git a/setup/lang/phpgw_pt.lang b/setup/lang/phpgw_pt.lang index 2e3edd4c22..c46839b636 100644 --- a/setup/lang/phpgw_pt.lang +++ b/setup/lang/phpgw_pt.lang @@ -27,7 +27,7 @@ Authentication / Accounts setup pt Autentica Auto create account records for authenticated users setup pt Criar contas de usuários automaticamente para usuários autenticados auto-created user accounts expire setup pt Usuários criados automaticamente expiram em available version setup pt Versão disponível -backupwarn setup pt é altamente recomendável fazer um backup das tabelas do banco de dados caso o script danifique seus dados.
Estes scripts automáticos podem destruir seus dados facilmente
Por favor faça um backup antes de continuar +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup pt é altamente recomendável fazer um backup das tabelas do banco de dados caso o script danifique seus dados.
Estes scripts automáticos podem destruir seus dados facilmente because it depends upon setup pt pois depende de because it is not a user application, or access is controlled via acl setup pt pois não é uma aplicação de usuário ou o acesso é controlado através das regras de acesso because it requires manual table installation,
or the table definition was incorrect setup pt pois requer instalação das tabelas do banco de dados manualmente,
ou a definição da tabela está incorreta diff --git a/setup/lang/phpgw_sl.lang b/setup/lang/phpgw_sl.lang index a7318d2f44..ffc96f60ac 100644 --- a/setup/lang/phpgw_sl.lang +++ b/setup/lang/phpgw_sl.lang @@ -39,7 +39,7 @@ auto create account records for authenticated users setup sl Avtomatično us auto-created user accounts expire setup sl Avtomatično ustvarjeni uporabniški računi pretečejo available version setup sl Razpoložljiva različica back to the previous screen setup sl Nazaj na prejšnji zaslon -backupwarn setup sl toda, zelo priporočamo izdelavo rezervne kopije vaših podatkov, za primer, da skripta le te poškoduje.
Avtomatične skripte namreč lahko zaradi nepredvidenih okoliščin uničijo vaše podatke.
Prosimo, izdelajte rezervno kopijo pred nadaljevanjem! +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup sl toda, zelo priporočamo izdelavo rezervne kopije vaših podatkov, za primer, da skripta le te poškoduje.
Avtomatične skripte namreč lahko zaradi nepredvidenih okoliščin uničijo vaše podatke. because an application it depends upon was upgraded setup sl ker je bila aplikacija, od katere je odvisen, nadgrajena because it depends upon setup sl ker je odvisen od because it is not a user application, or access is controlled via acl setup sl ker ni uporabnikova aplikacija, ali pa je dostop nadzorovan skozi acl diff --git a/setup/lang/phpgw_zh.lang b/setup/lang/phpgw_zh.lang index 2b970d5f9e..174e8be368 100644 --- a/setup/lang/phpgw_zh.lang +++ b/setup/lang/phpgw_zh.lang @@ -40,7 +40,7 @@ auto-created user accounts expire setup zh 自动建立的用户å¸æˆ·å·²è¿‡æœŸ available version setup zh å¯ç”¨ç‰ˆæœ¬ back to the previous screen setup zh è¿”å›žä¸Šä¸€ä¸ªé¡µé¢ back to user login setup zh è¿”å›žç”¨æˆ·ç™»å½•ç•Œé¢ -backupwarn setup zh 但是我们 强烈建议您备份表格, 以防止脚本破åæ•°æ®ï¼Œ
这是有å¯èƒ½å‘生的ï¼
请在æ“作å‰ä½œå¥½å¤‡ä»½ï¼ +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup zh 但是我们 强烈建议您备份表格, 以防止脚本破åæ•°æ®ï¼Œ
这是有å¯èƒ½å‘ç”Ÿçš„ï¼ because an application it depends upon was upgraded setup zh 因为它所ä¾èµ–的应用程åºå·²å‡çº§ because it depends upon setup zh 因为它ä¾èµ–于 because it is not a user application, or access is controlled via acl setup zh 因为它ä¸æ˜¯ç”¨æˆ·åº”用程åº, 或者å—ACLé™åˆ¶æ— æƒè®¿é—® diff --git a/setup/lang/phpgw_zt.lang b/setup/lang/phpgw_zt.lang index 4fa26595a7..7fe906677b 100644 --- a/setup/lang/phpgw_zt.lang +++ b/setup/lang/phpgw_zt.lang @@ -53,7 +53,7 @@ auto-created user accounts expire setup zt 自動建立的使用者帳號éŽæœŸ available version setup zt å¯ä½¿ç”¨çš„版本 back to the previous screen setup zt å›žåˆ°ä¸Šä¸€å€‹ç•«é¢ back to user login setup zt å›žåˆ°é¦–é  -backupwarn setup zt 但是我們強烈建議您備份您的資料表,以å…系統自動作業時æ傷到您的資料,
這個自動作業程å¼å¾ˆå®¹æ„造æˆè³‡æ–™çš„æ傷,
請在進行任何動作å‰å®Œæ•´å‚™ä»½æ‚¨çš„è³‡æ–™ï¼ +but we highly recommend backing up your tables in case the script causes damage to your data.
These automated scripts can easily destroy your data. setup zt 但是我們強烈建議您備份您的資料表,以å…系統自動作業時æ傷到您的資料,
這個自動作業程å¼å¾ˆå®¹æ„造æˆè³‡æ–™çš„æ傷, because an application it depends upon was upgraded setup zt 因為它所ä¾å­˜çš„應用程å¼å·²ç¶“å‡ç´šäº† because it depends upon setup zt 因為此應用程å¼è¢«é—œè¯åˆ° because it is not a user application, or access is controlled via acl setup zt 因為此應用程å¼ä¸æ˜¯ä¸€å€‹ä½¿ç”¨è€…端的應用程å¼ï¼Œæˆ–是由權é™æŽ§ç®¡å­˜å–權é™ã€‚ diff --git a/setup/templates/default/config.tpl b/setup/templates/default/config.tpl index abb534e0ff..226e4ee752 100644 --- a/setup/templates/default/config.tpl +++ b/setup/templates/default/config.tpl @@ -26,11 +26,16 @@ + {lang_Enter_the_full_path_to_the_backup_directory.
if_empty:_files_directory}/db_backup:
{lang_This_has_to_be_outside_the_webservers_document-root!!!} + + + + {lang_Enter_the_location_of_eGroupWare's_URL.
Example:_http://www.domain.com/egroupware_ _or_ _/egroupware
No_trailing_slash}: - + {lang_Image_type_selection_order}: {dbexists}
- {coreapps} -
{lang_debug} + {coreapps}
+ {lang_debug} +
+ {lang_restore}
+ {upload} @@ -90,6 +93,7 @@ + {lang_backup}

{lang_debug}
@@ -101,7 +105,7 @@
({dropwarn})
-{dont_touch_my_data}.  {goto}: + {dont_touch_my_data}.  {goto}:
@@ -118,6 +122,10 @@
+
+ + +
@@ -162,11 +170,13 @@ {submsg} +     diff --git a/setup/templates/default/setup_main.tpl b/setup/templates/default/setup_main.tpl index b49082adc0..e9afc1829e 100644 --- a/setup/templates/default/setup_main.tpl +++ b/setup/templates/default/setup_main.tpl @@ -66,6 +66,19 @@ + + + {backup_step_text} + + + + {backup_status_alt} + + + {backup_table_data} + + +