diff --git a/admin/inc/class.admin_hooks.inc.php b/admin/inc/class.admin_hooks.inc.php index 625fde86b2..e25045ee02 100644 --- a/admin/inc/class.admin_hooks.inc.php +++ b/admin/inc/class.admin_hooks.inc.php @@ -135,6 +135,7 @@ class admin_hooks $file['Admin queue and history'] = egw::link('/index.php','menuaction=admin.admin_cmds.index'); $file['Remote administration instances'] = egw::link('/index.php','menuaction=admin.admin_cmds.remotes'); $file['Custom translation'] = egw::link('/index.php','menuaction=admin.admin_customtranslation.index'); + $file['Changelog and versions'] = egw::link('/about.php'); $file['Submit statistic information'] = egw::link('/index.php','menuaction=admin.admin_statistics.submit'); diff --git a/admin/lang/egw_de.lang b/admin/lang/egw_de.lang index ad73c9b538..bfbeb6b51c 100644 --- a/admin/lang/egw_de.lang +++ b/admin/lang/egw_de.lang @@ -144,6 +144,8 @@ change owner admin de Besitzer ändern change password for %1 admin de Ändern des Passworts für %1 change password hash to admin de Passwort Verschlüsselung ändern in changed password hash for %1 to %2. admin de Passwort Verschlüsselung für %1 ändern in %2. +changelog admin de Änderungslog +changelog and versions admin de Änderungslog und Versionen check acl for entries of not (longer) existing accounts admin de Prüfe ACL Einträge auf Bezüge zu nicht (mehr) existierenden Benutzerkonten check categories for not (longer) existing accounts admin de Prüfe Kategorien auf Bezüge zu nicht (mehr) existierenden Benutzerkonten check ip address of all sessions admin de IP-Adresse für alle Sessions überprüfen @@ -325,6 +327,7 @@ forward also to admin de Zusätzlich weiterleiten an forward emails to admin de E-Mails weiterleiten an forward only admin de nur weiterleiten full name admin de Vollständiger Name +general admin de Allgemein global categories common de Globale Kategorien go directly to admin menu, returning here the next time you click on administration. admin de Geht direkt zum Administrationsmenü, kehrt hier her zurück wenn Sie das nächste mal auf die Administration klicken. governmental: incl. state or municipal authorities or services admin de Öffentlicher Dienst: Bundes-, Länder- oder städtische Behörden und Dienstleistungen @@ -374,6 +377,7 @@ ip admin de IP jobs admin de Jobs kill admin de Beenden kill session admin de Sitzung beenden +languages admin de Sprachen last %1 logins admin de Letzte %1 Logins last %1 logins for %2 admin de Letzte %1 Logins für %2 last action admin de Letzte Aktion diff --git a/admin/lang/egw_en.lang b/admin/lang/egw_en.lang index dbe84676c4..234d5f0cf7 100644 --- a/admin/lang/egw_en.lang +++ b/admin/lang/egw_en.lang @@ -144,6 +144,8 @@ change owner admin en Change owner change password for %1 admin en Change password for %1 change password hash to admin en Change password hash to changed password hash for %1 to %2. admin en Changed password hash for %1 to %2. +changelog admin en Changelog +changelog and versions admin en Changelog and versions check acl for entries of not (longer) existing accounts admin en Check ACL for entries of not existing accounts. check categories for not (longer) existing accounts admin en Check categories for not (longer) existing accounts check ip address of all sessions admin en Check IP address of all sessions @@ -325,6 +327,7 @@ forward also to admin en Forward also to forward emails to admin en Forward emails to forward only admin en Forward only full name admin en Full name +general admin en General global categories common en Global categories go directly to admin menu, returning here the next time you click on administration. admin en Go directly to admin menu, returning here the next time you click on administration. governmental: incl. state or municipal authorities or services admin en Governmental: incl. state or municipal authorities or services @@ -374,6 +377,7 @@ ip admin en IP jobs admin en Jobs kill admin en Kill kill session admin en Kill session +languages admin en Languages last %1 logins admin en Last %1 logins last %1 logins for %2 admin en Last %1 logins for %2 last action admin en Last action diff --git a/phpgwapi/inc/class.about.inc.php b/phpgwapi/inc/class.about.inc.php index 97cc6bc3d7..ef9da23186 100644 --- a/phpgwapi/inc/class.about.inc.php +++ b/phpgwapi/inc/class.about.inc.php @@ -46,6 +46,8 @@ class about */ function about() { + translation::add_app('admin'); + // list or detail view $name = 'eGroupWare'; $detail = false; @@ -94,24 +96,24 @@ class about */ function _listView() { - $text_content = str_replace('GPLLINK',self::$knownLicenses['GPL'],' -

EGroupware is a free -enterprise ready groupware software for your network. It enables you to manage contacts, appointments, todos + $text_content = str_replace('GPLLINK',self::$knownLicenses['GPL'][0],' +

EGroupware is a free +enterprise ready groupware software for your network. It enables you to manage contacts, appointments, todos and many more for your whole business.

-

EGroupware is a groupware server. It comes with a native web-interface which allowes to access your data -from any platform all over the planet. Moreover you also have the choice to access the EGroupware server with -your favorite groupware client (Kontact, Evolution, Outlook, iCal, Lightning) and also with your mobile or PDA -via SyncML.

-

EGroupware is international. At the time, it supports more than +

EGroupware is a groupware server. It comes with a native web-interface which allowes to access your data +from any platform all over the planet. Moreover you also have the choice to access the EGroupware server with +your favorite groupware client (Kontact, Evolution, Outlook, iCal, Lightning) and also with your mobile or PDA +via eSync.

+

EGroupware is international. At the time, it supports more than 25 languages including rtl support.

-

EGroupware is platform independent. The server runs on Linux, Mac, Windows and many more other operating systems. -On the client side, all you need is a internet browser such as Firefox, Safari, Chrome, Konqueror or Internet Explorer +

EGroupware is platform independent. The server runs on Linux, Mac, Windows and many more other operating systems. +On the client side, all you need is a internet browser such as Chrome, Firefox, Safari or Internet Explorer and many more.

EGroupware is developed by Stylite AG with contributions from community developers.


For more information visit the EGroupware Website

'); - + // get informations about the applications $apps = array(); $apps[] = ''; // first empty row for eTemplate @@ -136,7 +138,7 @@ from community developers.

foreach($GLOBALS['egw']->framework->list_templates(true) as $template => $info) { $info = $this->_getParsedTemplateInfo($info); $templates[] = array( - 'templateImage' => '', + 'templateImage' => '',//'', 'templateName' => $info['title'], 'templateAuthor' => $info['author'], 'templateMaintainer'=> $info['maintainer'], @@ -149,7 +151,6 @@ from community developers.

// get informations about installed languages $translations = array(); $translations[] = ''; // first empty row for eTemplate - $langs = translation::get_installed_langs(); foreach(translation::get_installed_langs() as $translation => $translationinfo) { $translations[] = array( 'langName' => $translationinfo.' ('.$translation.')' @@ -157,9 +158,16 @@ from community developers.

} $changelog = EGW_SERVER_ROOT.'/doc/rpm-build/debian.changes'; + // parse version from changelog + $version = $GLOBALS['egw_info']['server']['versions']['phpgwapi']; + $matches = null; + if (preg_match('/egroupware-epl \(([0-9.]+)/', file_get_contents($changelog), $matches)) + { + $version = preg_replace('/[0-9.]+/', $matches[1], $version); + } // fill content array for eTemplate $content = array( - 'apiVersion' => '

'.lang('eGroupWare API version').' '.$GLOBALS['egw_info']['server']['versions']['phpgwapi'].'

', + 'apiVersion' => '

'.lang('EGroupware version').' '.$version.'

', 'applications' => $apps, 'templates' => $templates, 'translations' => $translations, @@ -215,7 +223,7 @@ from community developers.

'license' => $this->_linkLicense($info['license']) ); - $tmpl =& CreateObject('etemplate.etemplate', 'phpgwapi.about.detail'); + $tmpl = new etemplate('phpgwapi.about.detail'); if ($nonavbar) { $tmpl->exec('phpgwapi.about.detail', $content, array(), array(), array(), 2); } else { @@ -261,10 +269,10 @@ from community developers.

function _getParsedAppInfo($app) { // we read all setup files once, as no every app has it's own file - static $setup_info; + static $setup_info=null; if (is_null($setup_info)) { - foreach($GLOBALS['egw_info']['apps'] as $_app => $_data) + foreach(array_keys($GLOBALS['egw_info']['apps']) as $_app) { if (file_exists($file = EGW_INCLUDE_ROOT.'/'.$_app.'/setup/setup.inc.php')) { @@ -339,7 +347,7 @@ from community developers.

} } else { // may be more authors - foreach ($setup_info[$f] as $number => $values) { + foreach (array_keys($setup_info[$f]) as $number) { if ($setup_info[$f][$number]['name']) { $authors[$number]['name'] = $setup_info[$f][$number]['name']; } @@ -372,14 +380,15 @@ from community developers.

} static public $knownLicenses = array( - 'GPL' => 'http://opensource.org/licenses/gpl-2.0.php', - 'LGPL' => 'http://opensource.org/licenses/lgpl-2.1.php', - 'GPL3' => 'http://opensource.org/licenses/gpl-3.0.php', - 'LGPL3' => 'http://opensource.org/licenses/lgpl-3.0.php', - 'PHP' => 'http://opensource.org/licenses/php.php', + 'GPL' => array('http://opensource.org/licenses/gpl-license.php','GNU General Public License version 2.0 or (at your option) any later version'), + 'GPL2' => array('http://opensource.org/licenses/gpl-2.0.php','GNU General Public License version 2.0'), + 'GPL3' => array('http://opensource.org/licenses/gpl-3.0.php','GNU General Public License version 3.0'), + 'LGPL' => array('http://opensource.org/licenses/lgpl-2.1.php','GNU Lesser General Public License, version 2.1'), + 'LGPL3' => array('http://opensource.org/licenses/lgpl-3.0.php','GNU Lesser General Public License, version 3.0'), + 'PHP' => array('http://opensource.org/licenses/php.php','PHP License'), ); - + /** * surround license string with link to license if it is known * @@ -393,12 +402,16 @@ from community developers.

{ $name = is_array($license) ? $license['name'] : $license; $url = is_array($license) && isset($license['url']) ? $license['url'] : ''; + $title = is_array($license) && isset($license['title']) ? $license['title'] : ''; - if (!$url && isset(self::$knownLicenses[strtoupper($name)])) + if (isset(self::$knownLicenses[strtoupper($name)])) { - $url = $knownLicenses[$name=strtoupper($name)]; + if (!$url) $url = self::$knownLicenses[$name=strtoupper($name)][0]; + if (!$title) $title = self::$knownLicenses[$name=strtoupper($name)][1]; } - return !$url ? $name : ''.htmlspecialchars($name).''; + return !$url ? $name : ''. + htmlspecialchars($name).''; } } diff --git a/phpgwapi/inc/class.egw_framework.inc.php b/phpgwapi/inc/class.egw_framework.inc.php index f43518b859..c843388527 100644 --- a/phpgwapi/inc/class.egw_framework.inc.php +++ b/phpgwapi/inc/class.egw_framework.inc.php @@ -640,9 +640,9 @@ abstract class egw_framework } $var['page_generation_time'] .= ''; } - $var['powered_by'] = lang('Powered by').' Stylite\'s'. - ' EGroupware'. - ' Community Version '.$GLOBALS['egw_info']['server']['versions']['phpgwapi']; + $var['powered_by'] = ''. + lang('Powered by').' Stylite\'s EGroupware '. + $GLOBALS['egw_info']['server']['versions']['phpgwapi'].''; return $var; } @@ -1282,7 +1282,7 @@ if ($app == 'home') continue; */ static function list_templates($full_data=false) { - $list = array(); + $list = array('pixelegg'=>null,'jdots'=>null,'idots'=>null); // templates packaged in the api $d = dir(EGW_SERVER_ROOT . '/phpgwapi/templates'); while (($entry=$d->read())) @@ -1321,9 +1321,8 @@ if ($app == 'home') continue; } } $d->close(); - ksort($list); - return $list; + return array_filter($list); } /**