forked from extern/egroupware
Mod to (un)install application translations with each app (applications.php only)
This commit is contained in:
parent
d351573139
commit
950b7a8a5c
@ -141,6 +141,13 @@
|
|||||||
$phpgw_setup->deregister_hooks($setup_info[$appname]['name']);
|
$phpgw_setup->deregister_hooks($setup_info[$appname]['name']);
|
||||||
echo '<br>' . $setup_info[$appname]['title'] . ' ' . lang('hooks deregistered') . '.';
|
echo '<br>' . $setup_info[$appname]['title'] . ' ' . lang('hooks deregistered') . '.';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$dropped = False;
|
||||||
|
$dropped = $phpgw_setup->drop_langs($appname);
|
||||||
|
if($dropped)
|
||||||
|
{
|
||||||
|
echo '<br>' . $setup_info[$appname]['title'] . ' ' . lang('Translations removed') . '.';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (list($appname,$key) = @each($install))
|
while (list($appname,$key) = @each($install))
|
||||||
@ -155,24 +162,25 @@
|
|||||||
echo '<br>' . $setup_info[$appname]['title'] . ' '
|
echo '<br>' . $setup_info[$appname]['title'] . ' '
|
||||||
. lang('tables installed, unless there are errors printed above') . '.';
|
. lang('tables installed, unless there are errors printed above') . '.';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($phpgw_setup->app_registered($setup_info[$appname]['name']))
|
||||||
|
{
|
||||||
|
$phpgw_setup->update_app($setup_info[$appname]['name']);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($phpgw_setup->app_registered($setup_info[$appname]['name']))
|
$phpgw_setup->register_app($setup_info[$appname]['name']);
|
||||||
{
|
|
||||||
$phpgw_setup->update_app($setup_info[$appname]['name']);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$phpgw_setup->register_app($setup_info[$appname]['name']);
|
|
||||||
}
|
|
||||||
echo '<br>' . $setup_info[$appname]['title'] . ' ' . lang('registered') . '.';
|
|
||||||
|
|
||||||
if ($setup_info[$appname]['hooks'])
|
|
||||||
{
|
|
||||||
$phpgw_setup->register_hooks($setup_info[$appname]['name']);
|
|
||||||
echo '<br>' . $setup_info[$appname]['title'] . ' ' . lang('hooks registered') . '.';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
echo '<br>' . $setup_info[$appname]['title'] . ' ' . lang('registered') . '.';
|
||||||
|
|
||||||
|
if ($setup_info[$appname]['hooks'])
|
||||||
|
{
|
||||||
|
$phpgw_setup->register_hooks($setup_info[$appname]['name']);
|
||||||
|
echo '<br>' . $setup_info[$appname]['title'] . ' ' . lang('hooks registered') . '.';
|
||||||
|
}
|
||||||
|
|
||||||
|
$phpgw_setup->add_langs($appname);
|
||||||
|
echo '<br>' . $setup_info[$appname]['title'] . ' ' . lang('Translations added') . '.';
|
||||||
}
|
}
|
||||||
|
|
||||||
while (list($appname,$key) = @each($upgrade))
|
while (list($appname,$key) = @each($upgrade))
|
||||||
|
@ -106,5 +106,89 @@
|
|||||||
}
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Following functions are called for app (un)install in applications.php only */
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@function get_langs
|
||||||
|
@abstract return array of installed languages, e.g. array('de','en')
|
||||||
|
*/
|
||||||
|
function get_langs()
|
||||||
|
{
|
||||||
|
$GLOBALS['phpgw_setup']->db->query("SELECT DISTINCT(lang) FROM lang",__LINE__,__FILE__);
|
||||||
|
$langs = array();
|
||||||
|
|
||||||
|
while($GLOBALS['phpgw_setup']->db->next_record())
|
||||||
|
{
|
||||||
|
/* echo 'HELLO: ' . $GLOBALS['phpgw_setup']->db->f(0); */
|
||||||
|
$langs[] = $GLOBALS['phpgw_setup']->db->f(0);
|
||||||
|
}
|
||||||
|
return $langs;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@function drop_langs
|
||||||
|
@abstract delete all lang entries for an application, return True if langs were found
|
||||||
|
@param $appname app_name whose translations you want to delete
|
||||||
|
*/
|
||||||
|
function drop_langs($appname)
|
||||||
|
{
|
||||||
|
$GLOBALS['phpgw_setup']->db->query("SELECT COUNT(message_id) FROM lang WHERE app_name='$appname'",__LINE__,__FILE__);
|
||||||
|
$GLOBALS['phpgw_setup']->db->next_record();
|
||||||
|
if($GLOBALS['phpgw_setup']->db->f(0))
|
||||||
|
{
|
||||||
|
$GLOBALS['phpgw_setup']->db->query("DELETE FROM lang WHERE app_name='$appname'",__LINE__,__FILE__);
|
||||||
|
return True;
|
||||||
|
}
|
||||||
|
return False;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@function add_langs
|
||||||
|
@abstract process an application's lang files, calling get_langs() to see what langs the admin installed already
|
||||||
|
@param $appname app_name of application to process
|
||||||
|
*/
|
||||||
|
function add_langs($appname)
|
||||||
|
{
|
||||||
|
$langs = $this->get_langs();
|
||||||
|
|
||||||
|
$GLOBALS['phpgw_setup']->db->transaction_begin();
|
||||||
|
|
||||||
|
while (list($null,$lang) = each($langs))
|
||||||
|
{
|
||||||
|
/* echo '<br>Working on: ' . $lang; */
|
||||||
|
$appfile = PHPGW_SERVER_ROOT . SEP . $appname . SEP . 'setup' . SEP . 'phpgw_' . strtolower($lang) . '.lang';
|
||||||
|
if(file_exists($appfile))
|
||||||
|
{
|
||||||
|
/* echo '<br>Including: ' . $appfile; */
|
||||||
|
$raw_file = file($appfile);
|
||||||
|
|
||||||
|
while (list($null,$line) = @each($raw_file))
|
||||||
|
{
|
||||||
|
list($message_id,$app_name,$phpgw_setup->db_lang,$content) = explode("\t",$line);
|
||||||
|
$message_id = $GLOBALS['phpgw_setup']->db->db_addslashes(chop($message_id));
|
||||||
|
/* echo '<br>APPNAME:' . $app_name . ' PHRASE:' . $message_id; */
|
||||||
|
$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));
|
||||||
|
|
||||||
|
$GLOBALS['phpgw_setup']->db->query("SELECT COUNT(*) FROM lang WHERE message_id='$message_id' and lang='"
|
||||||
|
. $GLOBALS['phpgw_setup']->db_lang . "'",__LINE__,__FILE__);
|
||||||
|
$GLOBALS['phpgw_setup']->db->next_record();
|
||||||
|
|
||||||
|
if ($GLOBALS['phpgw_setup']->db->f(0) == 0)
|
||||||
|
{
|
||||||
|
if($message_id && $content)
|
||||||
|
{
|
||||||
|
/* echo "<br>adding - INSERT INTO lang VALUES ('$message_id','$app_name','$phpgw_setup->db_lang','$content')"; */
|
||||||
|
$GLOBALS['phpgw_setup']->db->query("INSERT INTO lang VALUES ('$message_id','$app_name','"
|
||||||
|
. $GLOBALS['phpgw_setup']->db_lang . "','$content')",__LINE__,__FILE__);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$GLOBALS['phpgw_setup']->db->transaction_commit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -215,6 +215,22 @@
|
|||||||
pages from unauthorized use.
|
pages from unauthorized use.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
function _debug_array($array)
|
||||||
|
{
|
||||||
|
if(floor(phpversion()) == 4)
|
||||||
|
{
|
||||||
|
ob_start();
|
||||||
|
echo '<pre>'; print_r($array); echo '</pre>';
|
||||||
|
$contents = ob_get_contents();
|
||||||
|
ob_end_clean();
|
||||||
|
echo $contents;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo '<pre>'; var_dump($array); echo '</pre>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(file_exists(PHPGW_SERVER_ROOT.'/phpgwapi/setup/setup.inc.php'))
|
if(file_exists(PHPGW_SERVER_ROOT.'/phpgwapi/setup/setup.inc.php'))
|
||||||
{
|
{
|
||||||
include(PHPGW_SERVER_ROOT.'/phpgwapi/setup/setup.inc.php'); // To set the current core version
|
include(PHPGW_SERVER_ROOT.'/phpgwapi/setup/setup.inc.php'); // To set the current core version
|
||||||
|
@ -199,6 +199,8 @@ this section will help you import users and groups from your ldap tree into phpG
|
|||||||
this stage is completed<br> setup en This stage is completed<br>
|
this stage is completed<br> setup en This stage is completed<br>
|
||||||
this will create 1 admin account and 3 demo accounts<br>the username/passwords are: demo/guest, demo2/guest and demo3/guest.<br><b>!!!THIS WILL DELETE ALL EXISTING ACCOUNTS!!!</b><br> setup en This will create 1 admin account and 3 demo accounts<br>The username/passwords are: demo/guest, demo2/guest and demo3/guest.<br><b>!!!THIS WILL DELETE ALL EXISTING ACCOUNTS!!!</b><br>
|
this will create 1 admin account and 3 demo accounts<br>the username/passwords are: demo/guest, demo2/guest and demo3/guest.<br><b>!!!THIS WILL DELETE ALL EXISTING ACCOUNTS!!!</b><br> setup en This will create 1 admin account and 3 demo accounts<br>The username/passwords are: demo/guest, demo2/guest and demo3/guest.<br><b>!!!THIS WILL DELETE ALL EXISTING ACCOUNTS!!!</b><br>
|
||||||
to setup 1 admin account and 3 demo accounts.<br><b>this will delete all existing accounts</b> setup en to setup 1 admin account and 3 demo accounts.<br><b>This will delete all existing accounts</b>
|
to setup 1 admin account and 3 demo accounts.<br><b>this will delete all existing accounts</b> setup en to setup 1 admin account and 3 demo accounts.<br><b>This will delete all existing accounts</b>
|
||||||
|
translations added setup en Translations Added
|
||||||
|
translations removed setup en Translations Removed
|
||||||
uninstall all applications setup en Uninstall all applications
|
uninstall all applications setup en Uninstall all applications
|
||||||
uninstalled setup en uninstalled
|
uninstalled setup en uninstalled
|
||||||
upgrade setup en Upgrade
|
upgrade setup en Upgrade
|
||||||
|
Loading…
Reference in New Issue
Block a user