2001-07-30 18:05:42 +02:00
< ? php
/************************************************************************** \
* phpGroupWare - Setup *
* http :// www . phpgroupware . org *
* -------------------------------------------- *
* This program is free software ; you can redistribute it and / or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation ; either version 2 of the License , or ( at your *
* option ) any later version . *
\ **************************************************************************/
/* $Id$ */
2002-09-16 01:21:01 +02:00
$phpgw_info = array ();
if ( ! $included )
2001-07-30 18:05:42 +02:00
{
2002-09-16 01:21:01 +02:00
$GLOBALS [ 'phpgw_info' ][ 'flags' ] = array (
2001-07-30 18:05:42 +02:00
'noheader' => True ,
'nonavbar' => True ,
2001-09-12 16:20:54 +02:00
'currentapp' => 'home' ,
2001-07-30 18:05:42 +02:00
'noapi' => True
);
include ( './inc/functions.inc.php' );
// Authorize the user to use setup app and load the database
// Does not return unless user is authorized
2002-03-03 22:53:00 +01:00
if ( ! $GLOBALS [ 'phpgw_setup' ] -> auth ( 'Config' ))
2001-07-30 18:05:42 +02:00
{
2001-09-12 16:20:54 +02:00
Header ( 'Location: index.php' );
2001-07-30 18:05:42 +02:00
exit ;
}
2002-03-03 22:53:00 +01:00
$GLOBALS [ 'phpgw_setup' ] -> loaddb ();
2002-09-16 01:21:01 +02:00
2001-07-30 18:05:42 +02:00
include ( PHPGW_API_INC . '/class.common.inc.php' );
$common = new common ;
// this is not used
//$sep = $common->filesystem_separator();
}
else
{
$newinstall = True ;
$lang_selected [ 'en' ] = 'en' ;
$submit = True ;
}
2002-09-16 01:21:01 +02:00
if ( @ $GLOBALS [ 'HTTP_POST_VARS' ][ 'submit' ])
2001-07-30 18:05:42 +02:00
{
2002-09-16 01:21:01 +02:00
$lang_selected = @ $GLOBALS [ 'HTTP_POST_VARS' ][ 'lang_selected' ];
$upgrademethod = @ $GLOBALS [ 'HTTP_POST_VARS' ][ 'upgrademethod' ];
2002-03-03 22:53:00 +01:00
$GLOBALS [ 'phpgw_setup' ] -> db -> transaction_begin ();
2001-07-30 18:05:42 +02:00
if ( count ( $lang_selected ))
{
if ( $upgrademethod == 'dumpold' )
{
2002-11-23 13:32:16 +01:00
// dont delete the custom main- & loginscreen messages every time
$GLOBALS [ 'phpgw_setup' ] -> db -> query ( " DELETE FROM phpgw_lang where app_name != 'mainscreen' AND app_name != 'loginscreen' " , __LINE__ , __FILE__ );
2001-09-12 16:20:54 +02:00
//echo '<br>Test: dumpold';
2001-07-30 18:05:42 +02:00
}
while ( list ( $null , $lang ) = each ( $lang_selected ))
{
//echo '<br>Working on: ' . $lang;
$addlang = False ;
if ( $upgrademethod == 'addonlynew' )
{
2002-10-18 16:44:10 +02:00
//echo "<br>Test: addonlynew - select count(*) from phpgw_lang where lang='".$lang."'";
$GLOBALS [ 'phpgw_setup' ] -> db -> query ( " SELECT COUNT(*) FROM phpgw_lang WHERE lang=' " . $lang . " ' " , __LINE__ , __FILE__ );
2002-03-03 22:53:00 +01:00
$GLOBALS [ 'phpgw_setup' ] -> db -> next_record ();
2001-07-30 18:05:42 +02:00
2002-03-03 22:53:00 +01:00
if ( $GLOBALS [ 'phpgw_setup' ] -> db -> f ( 0 ) == 0 )
2001-07-30 18:05:42 +02:00
{
2001-09-12 16:20:54 +02:00
//echo '<br>Test: addonlynew - True';
2001-07-30 18:05:42 +02:00
$addlang = True ;
}
}
if (( $addlang && $upgrademethod == 'addonlynew' ) || ( $upgrademethod != 'addonlynew' ))
{
//echo '<br>Test: loop above file()';
2002-10-18 16:44:10 +02:00
$setup_info = $GLOBALS [ 'phpgw_setup' ] -> detection -> get_versions ();
$setup_info = $GLOBALS [ 'phpgw_setup' ] -> detection -> get_db_versions ( $setup_info );
2001-07-30 18:05:42 +02:00
$raw = $raw_file = array ();
// Visit each app/setup dir, look for a lang file
while ( list ( $key , $app ) = each ( $setup_info ))
{
$appfile = PHPGW_SERVER_ROOT . SEP . $app [ 'name' ] . SEP . 'setup' . SEP . 'phpgw_' . strtolower ( $lang ) . '.lang' ;
//echo '<br>Checking in: ' . $app['name'];
2002-03-03 22:53:00 +01:00
if ( $GLOBALS [ 'phpgw_setup' ] -> app_registered ( $app [ 'name' ]) && file_exists ( $appfile ))
2001-07-30 18:05:42 +02:00
{
//echo '<br>Including: ' . $appfile;
$raw [] = file ( $appfile );
}
}
@ reset ( $raw );
while ( list ( $a , $raw_file ) = @ each ( $raw ))
{
2002-01-08 15:42:59 +01:00
while ( list ( $_null , $line ) = @ each ( $raw_file ))
2001-07-30 18:05:42 +02:00
{
$addit = False ;
2002-03-03 22:53:00 +01:00
list ( $message_id , $app_name , $GLOBALS [ 'phpgw_setup' ] -> db_lang , $content ) = explode ( " \t " , $line );
$message_id = $GLOBALS [ 'phpgw_setup' ] -> db -> db_addslashes ( chop ( $message_id ));
2001-07-30 18:05:42 +02:00
//echo '<br>APPNAME:' . $app_name . ' PHRASE:' . $message_id;
2002-03-03 22:53:00 +01:00
$app_name = $GLOBALS [ 'phpgw_setup' ] -> db -> db_addslashes ( chop ( $app_name ));
$GLOBALS [ 'phpgw_setup' ] -> db_lang = $GLOBALS [ 'phpgw_setup' ] -> db -> db_addslashes ( chop ( $GLOBALS [ 'phpgw_setup' ] -> db_lang ));
$content = $GLOBALS [ 'phpgw_setup' ] -> db -> db_addslashes ( chop ( $content ));
2002-11-21 03:07:02 +01:00
if ( $upgrademethod == 'addmissing' || $upgrademethod == 'dumpold' )
2001-07-30 18:05:42 +02:00
{
2001-09-12 16:20:54 +02:00
//echo '<br>Test: addmissing';
2002-10-18 16:44:10 +02:00
$GLOBALS [ 'phpgw_setup' ] -> db -> query ( " SELECT COUNT(*) FROM phpgw_lang WHERE message_id=' " . $message_id . " ' and lang=' " . $GLOBALS [ 'phpgw_setup' ] -> db_lang . " ' and (app_name=' " . $app_name . " ' or app_name='common') " , __LINE__ , __FILE__ );
2002-03-03 22:53:00 +01:00
$GLOBALS [ 'phpgw_setup' ] -> db -> next_record ();
2001-07-30 18:05:42 +02:00
2002-03-03 22:53:00 +01:00
if ( $GLOBALS [ 'phpgw_setup' ] -> db -> f ( 0 ) == 0 )
2001-07-30 18:05:42 +02:00
{
2002-03-03 22:53:00 +01:00
//echo '<br>Test: addmissing - True - Total: ' . $GLOBALS['phpgw_setup']->db->f(0);
2001-07-30 18:05:42 +02:00
$addit = True ;
}
}
2002-11-16 13:27:04 +01:00
// if ($addit || ($upgrademethod == 'dumpold' || $newinstall || $upgrademethod == 'addonlynew'))
if ( $addit || ( $newinstall || $upgrademethod == 'addonlynew' ))
2001-07-30 18:05:42 +02:00
{
if ( $message_id && $content )
{
2002-09-16 01:21:01 +02:00
//echo "<br>adding - insert into lang values ('".$message_id."','".$app_name."','".$GLOBALS['phpgw_setup']->db_lang."','".$content."')";
2002-10-18 16:44:10 +02:00
$result = $GLOBALS [ 'phpgw_setup' ] -> db -> query ( " INSERT INTO phpgw_lang(message_id,app_name,lang,content) VALUES(' " . $message_id . " ',' " . $app_name . " ',' " . $GLOBALS [ 'phpgw_setup' ] -> db_lang . " ',' " . $content . " ') " , __LINE__ , __FILE__ );
2002-09-16 01:21:01 +02:00
if ( intval ( $result ) <= 0 )
{
2002-10-18 16:44:10 +02:00
echo " <br>Error inserting record: phpgw_lang values (' " . $message_id . " ',' " . $app_name . " ',' " . $GLOBALS [ 'phpgw_setup' ] -> db_lang . " ',' " . $content . " ') " ;
2002-09-16 01:21:01 +02:00
}
2001-07-30 18:05:42 +02:00
}
}
}
}
}
}
2002-03-03 22:53:00 +01:00
$GLOBALS [ 'phpgw_setup' ] -> db -> transaction_commit ();
2001-07-30 18:05:42 +02:00
}
2002-09-16 01:21:01 +02:00
if ( ! $included )
2001-07-30 18:05:42 +02:00
{
2001-09-12 16:20:54 +02:00
Header ( 'Location: index.php' );
2001-07-30 18:05:42 +02:00
exit ;
}
}
else
{
2002-09-16 01:21:01 +02:00
if ( $GLOBALS [ 'HTTP_POST_VARS' ][ 'cancel' ])
2001-07-30 18:05:42 +02:00
{
2001-09-12 16:20:54 +02:00
Header ( 'Location: index.php' );
2001-07-30 18:05:42 +02:00
exit ;
}
2002-09-16 01:21:01 +02:00
if ( ! $included )
2001-07-30 18:05:42 +02:00
{
2002-10-18 16:44:10 +02:00
$tpl_root = $GLOBALS [ 'phpgw_setup' ] -> html -> setup_tpl_dir ( 'setup' );
2002-09-16 01:21:01 +02:00
$setup_tpl = CreateObject ( 'phpgwapi.Template' , $tpl_root );
2001-07-30 18:05:42 +02:00
$setup_tpl -> set_file ( array (
'T_head' => 'head.tpl' ,
'T_footer' => 'footer.tpl' ,
'T_alert_msg' => 'msg_alert_msg.tpl' ,
'T_lang_main' => 'lang_main.tpl'
));
$setup_tpl -> set_block ( 'T_lang_main' , 'B_choose_method' , 'V_choose_method' );
$stage_title = lang ( 'Multi-Language support setup' );
2001-09-12 16:20:54 +02:00
$stage_desc = lang ( 'This program will help you upgrade or install different languages for phpGroupWare' );
$tbl_width = $newinstall ? '60%' : '80%' ;
$td_colspan = $newinstall ? '1' : '2' ;
$td_align = $newinstall ? ' align="center"' : '' ;
$hidden_var1 = $newinstall ? '<input type="hidden" name="newinstall" value="True">' : '' ;
2001-07-30 18:05:42 +02:00
$select_box_desc = lang ( 'Select which languages you would like to use' );
2002-09-16 01:21:01 +02:00
$select_box = '' ;
2002-10-18 16:44:10 +02:00
$GLOBALS [ 'phpgw_setup' ] -> db -> query ( " select lang_id,lang_name from phpgw_languages where available='Yes' " );
2002-03-03 22:53:00 +01:00
while ( $GLOBALS [ 'phpgw_setup' ] -> db -> next_record ())
2001-07-30 18:05:42 +02:00
{
2002-09-16 01:21:01 +02:00
$select_box_langs =
$select_box_langs
. '<option value="' . $GLOBALS [ 'phpgw_setup' ] -> db -> f ( 'lang_id' ) . '">'
. $GLOBALS [ 'phpgw_setup' ] -> db -> f ( 'lang_name' ) . '</option>'
. " \n " ;
2001-07-30 18:05:42 +02:00
}
if ( ! $newinstall )
{
$meth_desc = lang ( 'Select which method of upgrade you would like to do' );
$blurb_addonlynew = lang ( 'Only add languages that are not in the database already' );
$blurb_addmissing = lang ( 'Only add new phrases' );
$blurb_dumpold = lang ( 'Delete all old languages and install new ones' );
$setup_tpl -> set_var ( 'meth_desc' , $meth_desc );
$setup_tpl -> set_var ( 'blurb_addonlynew' , $blurb_addonlynew );
$setup_tpl -> set_var ( 'blurb_addmissing' , $blurb_addmissing );
$setup_tpl -> set_var ( 'blurb_dumpold' , $blurb_dumpold );
$setup_tpl -> parse ( 'V_choose_method' , 'B_choose_method' );
}
else
{
$setup_tpl -> set_var ( 'V_choose_method' , '' );
}
$setup_tpl -> set_var ( 'stage_title' , $stage_title );
$setup_tpl -> set_var ( 'stage_desc' , $stage_desc );
$setup_tpl -> set_var ( 'tbl_width' , $tbl_width );
$setup_tpl -> set_var ( 'td_colspan' , $td_colspan );
$setup_tpl -> set_var ( 'td_align' , $td_align );
$setup_tpl -> set_var ( 'hidden_var1' , $hidden_var1 );
$setup_tpl -> set_var ( 'select_box_desc' , $select_box_desc );
$setup_tpl -> set_var ( 'select_box_langs' , $select_box_langs );
$setup_tpl -> set_var ( 'lang_install' , lang ( 'install' ));
$setup_tpl -> set_var ( 'lang_cancel' , lang ( 'cancel' ));
2002-09-16 01:21:01 +02:00
$ConfigDomain = $GLOBALS [ 'HTTP_COOKIE_VARS' ][ 'ConfigDomain' ] ? $GLOBALS [ 'HTTP_COOKIE_VARS' ][ 'ConfigDomain' ] : $GLOBALS [ 'HTTP_POST_VARS' ][ 'ConfigDomain' ];
2002-10-18 16:44:10 +02:00
$GLOBALS [ 'phpgw_setup' ] -> html -> show_header ( " $stage_title " , False , 'config' , $ConfigDomain . '(' . $phpgw_domain [ $ConfigDomain ][ 'db_type' ] . ')' );
2001-07-30 18:05:42 +02:00
$setup_tpl -> pparse ( 'out' , 'T_lang_main' );
2002-10-18 16:44:10 +02:00
$GLOBALS [ 'phpgw_setup' ] -> html -> show_footer ();
2001-07-30 18:05:42 +02:00
}
}
?>