merge from trunk(revision 23607:23739) to 1.4 branch

This commit is contained in:
Lars Kneschke 2007-04-30 10:29:44 +00:00
commit efb5498561
111 changed files with 1567 additions and 672 deletions

View File

@ -236,7 +236,7 @@ class bocontacts extends socontacts
if (is_null($type)) $type = $contact['fileas_type'];
if (!$type) $type = $this->fileas_types[0];
if (strstr($type,'n_fn')) $contact['n_fn'] = $this->fullname($contact);
if (strpos($type,'n_fn') !== false) $contact['n_fn'] = $this->fullname($contact);
$fileas = str_replace(array('n_prefix','n_given','n_middle','n_family','n_suffix','n_fn','org_name','org_unit','adr_one_locality'),
array($contact['n_prefix'],$contact['n_given'],$contact['n_middle'],$contact['n_family'],$contact['n_suffix'],
@ -978,7 +978,7 @@ class bocontacts extends socontacts
*/
function delete_list($list)
{
if (!$this->ceck_list($list,EGW_ACL_DELETE)) return false;
if (!$this->check_list($list,EGW_ACL_DELETE)) return false;
return parent::delete_list($list);
}

View File

@ -80,7 +80,7 @@ class csv_export
foreach($fields as $field => $label)
{
$value = $data[$field];
if (strstr($value,$this->separator) !== false || strstr($value,"\n") !== false || strstr($value,"\r") !== false)
if (strpos($value,$this->separator) !== false || strpos($value,"\n") !== false || strpos($value,"\r") !== false)
{
$value = '"'.str_replace(array('\\','"'),array('\\\\','\\"'),$value).'"';
}

View File

@ -68,7 +68,7 @@ class export_contacts_csv implements iface_export_plugin {
* @return string descriprion
*/
public static function get_description() {
return lang("Exports contacts from your Addressbook into a CSV File. CSV means 'Comma Seperated Values'. However in the options Tab you can also choose other seperators.");
return lang("Exports contacts from your Addressbook into a CSV File. CSV means 'Comma Seperated Values'. However in the options Tab you can also choose other seperators.");
}
/**

View File

@ -530,7 +530,7 @@ class uicontacts extends bocontacts
case 'email':
case 'email_home':
$action_msg = lang('%1 added',$action=='email'?lang('Business email') : lang('Home email'));
if (($Ok = !!($contact = $this->read($id)) && strstr($contact[$action],'@')))
if (($Ok = !!($contact = $this->read($id)) && strpos($contact[$action],'@') !== false))
{
if(!@is_object($GLOBALS['egw']->js)) $GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript');
@ -1045,6 +1045,7 @@ class uicontacts extends bocontacts
$content['upload_photo']['tmp_name'] != 'none')
{
$content['jpegphoto'] = $this->resize_photo($content['upload_photo']);
unset($content['upload_photo']);
}
$links = false;
if (!$content['id'] && is_array($content['link_to']['to_id']))
@ -1449,7 +1450,7 @@ $readonlys['button[vcard]'] = true;
*/
function email2link($email)
{
if (!strstr($email,'@')) return '';
if (strpos($email,'@') == false) return '';
if($GLOBALS['egw_info']['user']['apps']['felamimail'])
{

View File

@ -120,7 +120,7 @@ edit custom field addressbook de Benutzerdefiniertes Feld bearbeiten
edit custom fields admin de Benutzerdefinierte Felder bearbeiten
edit extra account-data in the addressbook admin de Zusätzliche Benutzerdaten im Adressbuch bearbeiten.
edit phonenumbers - addressbook de Telefonnummern bearbeiten
email & internet addressbook de Email & Internet
email & internet addressbook de E-Mail & Internet
empty for all addressbook de leer für alle
enable an extra private addressbook addressbook de Privates Adressbuch einschalten
enter the path to the exported file here addressbook de Bitte geben Sie den Pfad für die exportierte Datei an
@ -135,7 +135,7 @@ export file name addressbook de Dateiname zum Exportieren
export from addressbook addressbook de Export vom Adressbuch
export selection addressbook de Auswahl exportieren
exported addressbook de exportiert
exports contacts from your addressbook into a csv file. csv means 'comma seperated values'. however in the options tab you can also choose other seperators. addressbook de Exportiert Kontakte vom Adressbuch in eine CSV Datei. CSV bedeutet 'Komma getrennte Werte'. Im Optionen Reiter können Sie aber auch ein anderes Trennzeichen wählen.
exports contacts from your addressbook into a csv file. csv means 'comma seperated values'. however in the options tab you can also choose other seperators. addressbook de Exportiert Kontakte vom Adressbuch in eine CSV Datei. CSV bedeutet 'Komma getrennte Werte'. Im Optionen Reiter können Sie aber auch ein anderes Trennzeichen wählen.
extra addressbook de Extra
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook de %1 Mitglied(er) der Organisation nicht geändert (fehlende Rechte) !!!
fax addressbook de Telefax

View File

@ -135,7 +135,7 @@ export file name addressbook en Export file name
export from addressbook addressbook en Export from Addressbook
export selection addressbook en Export selection
exported addressbook en exported
exports contacts from your addressbook into a csv file. csv means 'comma seperated values'. however in the options tab you can also choose other seperators. addressbook en Exports contacts from your Addressbook into a CSV File. CSV means 'Comma Seperated Values'. However in the options Tab you can also choose other seperators.
exports contacts from your addressbook into a csv file. csv means 'comma seperated values'. however in the options tab you can also choose other seperators. addressbook en Exports contacts from your Addressbook into a CSV File. CSV means 'Comma Seperated Values'. However in the options Tab you can also choose other seperators.
extra addressbook en Extra
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook en failed to change %1 organisation member(s) (insufficent rights) !!!
fax addressbook en Fax

View File

@ -10,7 +10,7 @@
/* Basic information about this app */
$setup_info['addressbook']['name'] = 'addressbook';
$setup_info['addressbook']['title'] = 'Addressbook';
$setup_info['addressbook']['version'] = '1.3.002';
$setup_info['addressbook']['version'] = '1.4';
$setup_info['addressbook']['app_order'] = 4;
$setup_info['addressbook']['enable'] = 1;
@ -44,11 +44,11 @@ $setup_info['addressbook']['hooks'][] = 'config';
/* Dependencies for this app to work */
$setup_info['addressbook']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.3','1.4')
'versions' => Array('1.3','1.4','1.5')
);
$setup_info['addressbook']['depends'][] = array(
'appname' => 'etemplate',
'versions' => Array('1.2','1.3','1.4')
'versions' => Array('1.3','1.4','1.5')
);
// installation checks for addresbook

View File

@ -27,12 +27,13 @@ else
{
$action = '--help';
}
// this is kind of a hack, as the autocreate_session_callback can not change the type of the loaded account-class
// so we need to make sure the right one is loaded by setting the domain before the header gets included.
$arg0s = explode(',',@$arguments[0]);
@list(,$_GET['domain']) = explode('@',$arg0s[0]);
if (is_dir('/tmp')) ini_set('session.save_path','/tmp'); // regular users may have no rights to apache's session dir
$GLOBALS['egw_info'] = array(
'flags' => array(
'currentapp' => 'admin',
@ -47,6 +48,9 @@ switch($action)
{
case '--delete-user':
return do_delete_user($arg0s[2],$arg0s[3]);
case '--change-account-id':
return do_change_account_id($arg0s);
default:
usage($action);
@ -94,6 +98,8 @@ function usage($action=null,$ret=0)
echo "--delete-user admin-account[@domain],admin-password,account-to-delete[,account-to-move-data]\n";
echo " Deletes a user from eGroupWare. It's data can be moved to an other user or it get deleted too.\n";
echo "--change-account-id admin-account[@domain],admin-password,from1,to1[...,fromN,toN]\n";
echo " Changes one or more account_id's in the database (make a backup before!).\n";
exit;
}
@ -139,3 +145,254 @@ function do_delete_user($user,$new_user=0)
echo "Account '$user' deleted.\n";
return 0;
}
function do_change_account_id($args)
{
/**
* App-, Table- and column-names containing nummeric account-id's
* @var array
*/
$columns2change = array(
'phpgwapi' => array(
'egw_access_log' => 'account_id',
'egw_accounts' => array(array('account_id','.type'=>'abs'),'account_primary_group'),
'egw_acl' => array('acl_account','acl_location'),
'egw_addressbook' => array('contact_owner','contact_creator','contact_modifier','account_id'),
'egw_addressbook2list' => array('list_added_by'),
'egw_addressbook_extra' => 'contact_owner',
'egw_addressbook_lists' => array('list_owner','list_creator'),
'egw_api_content_history' => 'sync_changedby',
'egw_applications' => false,
'egw_app_sessions' => 'loginid',
'egw_async' => 'async_account_id',
'egw_categories' => array(array('cat_owner','cat_owner > 0')), // -1 are global cats, not cats from group 1!
'egw_config' => false,
'egw_history_log' => 'history_owner',
'egw_hooks' => false,
'egw_interserv' => false,
'egw_lang' => false,
'egw_languages' => false,
'egw_links' => 'link_owner',
'egw_log' => 'log_user',
'egw_log_msg' => false,
'egw_nextid' => false,
'egw_preferences' => array(array('preference_owner','preference_owner > 0')),
'egw_sessions' => false, // only account_lid stored
'egw_vfs' => array('vfs_owner_id','vfs_createdby_id','vfs_modifiedby_id'), // 'vfs_directory' contains account_lid for /home/account
),
'etemplate' => array(
'egw_etemplate' => 'et_group',
),
'bookmarks' => array(
'egw_bookmarks' => 'bm_owner',
),
'calendar' => array(
'egw_cal' => array('cal_owner','cal_modifier'),
'egw_cal_dates' => false,
'egw_cal_extra' => false,
'egw_cal_holidays' => false,
'egw_cal_repeats' => false,
'egw_cal_user' => array(array('cal_user_id','cal_user_type' => 'u')), // cal_user_id for cal_user_type='u'
),
'emailadmin' => array(
'egw_emailadmin' => false,
),
'felamimail' => array(
'egw_felamimail_accounts' => 'fm_owner',
'egw_felamimail_cache' => 'fmail_accountid', // afaik not used in 1.4+
'egw_felamimail_displayfilter' => 'fmail_filter_accountid',
'egw_felamimail_folderstatus' => 'fmail_accountid', // afaik not used in 1.4+
'egw_felamimail_signatures' => 'fm_accountid',
),
'infolog' => array(
'egw_infolog' => array('info_owner',array('info_responsible','.type' => 'comma-sep'),'info_modifier'),
'egw_infolog_extra' => false,
),
'news_admin' => array(
'egw_news' => 'news_submittedby',
'egw_news_export' => false,
),
'projectmanager' => array(
'egw_pm_constraints' => false,
'egw_pm_elements' => array('pe_modifier',array('pe_resources','.type' => 'comma-sep')),
'egw_pm_extra' => false,
'egw_pm_members' => 'member_uid',
'egw_pm_milestones' => false,
'egw_pm_pricelist' => false,
'egw_pm_prices' => 'pl_modifier',
'egw_pm_projects' => array('pm_creator','pm_modifier'),
'egw_pm_roles' => false,
),
'registration' => array(
'egw_reg_accounts' => false,
'egw_reg_fields' => false,
),
'resources' => array(
'egw_resources' => false,
'egw_resources_extra'=> 'extra_owner',
),
'sitemgr' => array(
'egw_sitemgr_active_modules' => false,
'egw_sitemgr_blocks' => false,
'egw_sitemgr_blocks_lang' => false,
'egw_sitemgr_categories_lang' => false,
'egw_sitemgr_categories_state' => false,
'egw_sitemgr_content' => false,
'egw_sitemgr_content_lang' => false,
'egw_sitemgr_modules' => false,
'egw_sitemgr_notifications' => false,
'egw_sitemgr_notify_messages' => false,
'egw_sitemgr_pages' => false,
'egw_sitemgr_pages_lang' => false,
'egw_sitemgr_properties' => false,
'egw_sitemgr_sites' => false,
),
'syncml' => array(
'egw_contentmap' => false,
'egw_syncmldeviceowner' => false, // Lars: is owner_devid a account_id???
'egw_syncmldevinfo' => false,
'egw_syncmlsummary' => false,
),
'tracker' => array(
'egw_tracker' => array('tr_assigned','tr_creator','tr_modifier'),
'egw_tracker_bounties' => array('bounty_creator','bounty_confirmer'),
'egw_tracker_replies' => array('reply_creator'),
'egw_tracker_votes' => array('vote_uid'),
),
'timesheet' => array(
'egw_timesheet' => array('ts_owner','ts_modifier'),
'egw_timesheet_extra'=> false,
),
'wiki' => array(
'egw_wiki_interwiki' => false,
'egw_wiki_links' => false,
'egw_wiki_pages' => array(array('wiki_readable','wiki_readable < 0'),array('wiki_writable','wiki_writable < 0')), // only groups
'egw_wiki_rate' => false,
'egw_wiki_remote_pages' => false,
'egw_wiki_sisterwiki'=> false,
),
'phpbrain' => array( // aka knowledgebase
'phpgw_kb_articles' => array('user_id','modified_user_id'),
'phpgw_kb_comment' => 'user_id',
'phpgw_kb_files' => false,
'phpgw_kb_questions' => 'user_id',
'phpgw_kb_ratings' => 'user_id',
'phpgw_kb_related_art' => false,
'phpgw_kb_search' => false,
'phpgw_kb_urls' => false,
),
'polls' => array(
'phpgw_polls_data' => false,
'phpgw_polls_desc' => false,
'phpgw_polls_settings' => false,
'phpgw_polls_user' => 'user_id',
),
// MyDMS ToDo!!!
// VFS2 ToDo!!!
);
if (count($args) < 4) usage(); // 4 means at least user,pw,from1,to1
$ids2change = array();
for($n = 2; $n < count($args); $n += 2)
{
$from = (int)$args[$n];
$to = (int)$args[$n+1];
if (!$from || !$to) die("\nAccount-id's have to be integers!\n\n");
$ids2change[$from] = $to;
}
$total = 0;
foreach($columns2change as $app => $data)
{
$db = clone($GLOBALS['egw']->db);
$db->set_app($app);
foreach($data as $table => $columns)
{
if (!$columns)
{
echo "$app: $table no columns with account-id's\n";
continue; // noting to do for this table
}
if (!is_array($columns)) $columns = array($columns);
foreach($columns as $column)
{
$type = $where = null;
if (is_array($column))
{
$type = $column['.type'];
unset($column['.type']);
$where = $column;
$column = array_shift($where);
}
$total += ($changed = _update_account_id($ids2change,$db,$table,$column,$where,$type));
echo "$app: $table.$column $changed id's changed\n";
}
}
}
echo "\nTotal of $total id's changed.\n\n";
}
function _update_account_id($ids2change,$db,$table,$column,$where=null,$type=null)
{
static $update_sql;
if (is_null($update_sql))
{
foreach($ids2change as $from => $to)
{
$update_sql .= "WHEN $from THEN $to ";
}
$update_sql .= "END";
}
switch($type)
{
case 'comma-sep':
if (!$where) $where = array();
$where[] = "$column IS NOT NULL";
$where[] = "$column != ''";
$db->select($table,'DISTINCT '.$column,$where,__LINE__,__FILE__);
$change = array();
while(($row = $db->row(true)))
{
$ids = explode(',',$old_ids=$row[$column]);
foreach($ids as $key => $id)
{
if (isset($account_id2change[$id])) $ids[$key] = $account_id2change[$id];
}
$ids = implode(',',$ids);
if ($ids != $old_ids)
{
$change[$old_ids] = $ids;
}
}
$changed = 0;
foreach($change as $from => $to)
{
$db->update($table,array($column=>$to),$where+array($column=>$from),__LINE__,__FILE__);
$changed += $db->affected_rows();
}
break;
case 'abs':
if (!$where) $where = array();
$where[$column] = array();
foreach(array_keys($ids2change) as $id)
{
$where[$column][] = abs($id);
}
$db->update($table,$column.'= CASE '.$column.' '.preg_replace('/-([0-9]+)/','\1',$update_sql),$where,__LINE__,__FILE__);
$changed = $db->affected_rows();
break;
default:
if (!$where) $where = array();
$where[$column] = array_keys($ids2change);
$db->update($table,$column.'= CASE '.$column.' '.$update_sql,$where,__LINE__,__FILE__);
$changed = $db->affected_rows();
break;
}
return $changed;
}

View File

@ -49,14 +49,14 @@
// delete all acl (and memberships) of group
$GLOBALS['egw']->acl->delete_account($account_id);
if(!@rmdir($GLOBALS['egw_info']['server']['files_dir'].SEP.'groups'.SEP.$GLOBALS['egw']->accounts->id2name($account_id)))
{
$cd = 38;
}
else
{
$cd = 32;
}
// make this information also available in the hook
$lid = $GLOBALS['egw']->accounts->id2name($account_id);
$GLOBALS['egw']->hooks->process($GLOBALS['hook_values'] = array(
'account_id' => $account_id,
'account_name' => $lid,
'location' => 'deletegroup'
),False,True); // called for every app now, not only enabled ones)
$GLOBALS['egw']->accounts->delete($account_id);
@ -86,18 +86,6 @@
{
$GLOBALS['egw']->hooks->single($GLOBALS['hook_values'],$app);
}
$basedir = $GLOBALS['egw_info']['server']['files_dir'] . SEP . 'users' . SEP;
if(!@rmdir($basedir . $lid))
{
$cd = 34;
}
else
{
$cd = 29;
}
return True;
}
@ -145,13 +133,11 @@
}
$apps->save_repository();
$basedir = $GLOBALS['egw_info']['server']['files_dir'] . SEP . 'groups' . SEP;
$cd = 31;
umask(000);
if(!@mkdir($basedir . $group_info['account_name'], 0707))
{
$cd = 37;
}
$GLOBALS['hook_values'] = $group_info;
$GLOBALS['egw']->hooks->process($GLOBALS['hook_values']+array(
'location' => 'addgroup'
),False,True); // called for every app now, not only enabled ones)
return True;
}
@ -250,35 +236,16 @@
}
$apps->save_repository();
// Set new account_lid, if needed
if($group_info['account_name'] && $old_group_info['account_lid'] <> $group_info['account_name'])
{
$group->data['account_lid'] = $group_info['account_name'];
$group->data['firstname'] = $group_info['account_name'];
$basedir = $GLOBALS['egw_info']['server']['files_dir'] . SEP . 'groups' . SEP;
if(!@rename($basedir . $old_group_info['account_lid'], $basedir . $group_info['account_name']))
{
$cd = 39;
}
else
{
$cd = 33;
}
}
else
{
$cd = 33;
}
$group->set_members($group_info['account_user'],$group_info['account_id']);
$GLOBALS['hook_values'] = $group_info;
$GLOBALS['hook_values']['old_name'] = $group->id2name($group_info['account_id']);
// This is down here so we are sure to catch the acl changes
// for LDAP to update the memberuid attribute
$group->data['account_email'] = $group_info['account_email'];
$group->save_repository();
$GLOBALS['hook_values'] = $group_info;
$GLOBALS['egw']->hooks->process($GLOBALS['hook_values']+array(
'location' => 'editgroup'
),False,True); // called for every app now, not only enabled ones)

View File

@ -890,7 +890,8 @@
$jscal =& CreateObject('phpgwapi.jscalendar',False);
$userData += $jscal->input2date($_POST['expires'],False,'account_expires_day','account_expires_month','account_expires_year');
}
$errors = $this->bo->add_user($userData);
$errors = $this->bo->edit_user($userData);
if(!@is_array($errors))
{
// check if would create a menu
@ -898,14 +899,9 @@
// there are also some other plugins
if(!ExecMethod('admin.uimenuclass.createHTMLCode','edit_user'))
{
if($userData['account_id'] == $GLOBALS['egw_info']['user']['account_id'])
{
$GLOBALS['egw']->redirect_link('/index.php',array( // without redirect changes happen only in the next page-view!
'menuaction' => 'admin.uiaccounts.list_users'
));
}
// ExecMethod('admin.uiaccounts.list_users');
//return False;
$GLOBALS['egw']->redirect_link('/index.php',array( // without redirect changes happen only in the next page-view!
'menuaction' => 'admin.uiaccounts.list_users'
));
}
else
{
@ -916,8 +912,8 @@
'account_id' => $_GET['account_id']
));
}
$this->create_edit_user($userData['account_id']);
}
// $GLOBALS['egw']->redirect($GLOBALS['egw']->link('/index.php','menuaction=admin.uiaccounts.list_users'));
}
else
{

View File

@ -41,11 +41,11 @@ admins admin de Administatoren
advanced options admin de erweiterte Optionen
after how many unsuccessful attempts to login, an account should be blocked (default 3) ? admin de Nach wievielen erfolglosen Versuchen sich anzumelden, soll ein Benutzerkonto gesperrt werden (Vorgabe 3)?
after how many unsuccessful attempts to login, an ip should be blocked (default 3) ? admin de Nach wievielen erfolglosen Versuchen sich anzumelden soll eine IP-Adresse gesperrt werden (Vorgabe 3)?
aliases admin de Email-Alias
aliases admin de E-Mail-Alias
all records and account information will be lost! admin de Alle Datens&auml;tze und Kontoinformationen sind dann verloren!
all users admin de Alle Benutzer
allow anonymous access to this app admin de Anonymen Zugriff auf diese Anwendung zulassen
alternate email address admin de Alternative Emailadresse
alternate email address admin de Alternative E-Mail-Adresse
anonymous user admin de Anonymer Benutzer
anonymous user (not shown in list sessions) admin de Anonymer Benutzer (wird bei Sitzungen anzeigen nicht angezeigt)
anonymous user does not exist! admin de Anonymer Benutzer existiert NICHT!
@ -70,7 +70,7 @@ asynchronous timed services admin de Asynchroner zeitgesteuerter Dienst
asyncservices not yet installed or other error (%1) !!! admin de Asynchroner Dienst is noch nicht installiert oder ein anderer Fehler ist aufgetreten (%1) !!!
attempt to use correct mimetype for ftp instead of default 'application/octet-stream' admin de Soll versucht werden den richtigen MINE-typ für FTP zu verwenden, statt dem Vorgabewert "application/octet-stream"
attribute accountstatus explained admin de Dies betrifft das Attribut <b>-accountStatus-</b> aus dem QMAIL Schema
attribute mail explained admin de Dies betrifft das Attribut <b><i>-mail-</i></b> aus dem CORE Schema. Dieses Attribut darf nicht leer sein und wird gleichzeitig als Emailadresse innerhalb eGW verwendet.
attribute mail explained admin de Dies betrifft das Attribut <b><i>-mail-</i></b> aus dem CORE Schema. Dieses Attribut darf nicht leer sein und wird gleichzeitig als E-Mail-Adresse innerhalb eGW verwendet.
attribute mailalternateaddress explained admin de Dies betrifft das Attribut <b>-mailAlternateAddress-</b> aus dem QMAIL Schema. Das experimentelle Schema verwendet dies auch als Alias für mailLocalAddress.
attribute mailforwardingaddress explained admin de Dies betrifft das Attribut <b>-mailForwardingAddress-</b> aus dem QMAIL Schema. Darf nicht leer sein. Der Begriff mailRoutingAddress wurde hierfür früher als Alias verwendet.
authentication / accounts admin de Benutzerauthentifizierung/Benutzerkonten
@ -148,7 +148,7 @@ each value is a line like <id>[=<label>] admin de jeder Wert ist ein Zeile <id>[
each value is a line like id[=label] admin de jeder Wert ist eine Zeile id[=label]
edit account admin de Benutzerkonto bearbeiten
edit application admin de Anwendung bearbeiten
edit email settings admin de Email Einstellungen bearbeiten
edit email settings admin de E-Mail-Einstellungen bearbeiten
edit global category admin de Globale Kategorie bearbeiten
edit global category for %1 admin de Globale Kategorie für %1 bearbeiten
edit group admin de Gruppe bearbeiten
@ -162,8 +162,8 @@ edit this group admin de Diese Gruppe bearbeiten
edit this user admin de Diesen Benutzer bearbeiten
edit user admin de Benutzer bearbeiten
edit user account admin de Benutzerkonto bearbeiten
email account active admin de Emailkonto aktiv
email address admin de Email-Adresse
email account active admin de E-Mail-Konto aktiv
email address admin de E-Mail-Adresse
enable debug-messages admin de Debug-Meldungen einschalten
enable the soap service admin de soap Service einschalten
enable the xmlrpc service admin de xmlrpc Service einschalten
@ -185,7 +185,7 @@ enter the title of your logo admin de Titel Ihres Logos
enter the url or filename (in phpgwapi/templates/default/images) of your logo admin de URL oder Dateiname (in phpgwapi/templates/default/images) Ihres Logos
enter the url where your logo should link to admin de URL mit der das Logo verlinkt werden soll
enter your default ftp server admin de Standard-FTP-Server
enter your default mail domain ( from: user@domain ) admin de Standard EMail-Domain (Von: benutzer@domain)
enter your default mail domain ( from: user@domain ) admin de Standard E-Mail-Domain (Von: benutzer@domain)
enter your http proxy server admin de HTTP-Proxy-Server
enter your http proxy server port admin de HTTP-Proxy-Server-Port
enter your smtp server hostname or ip address admin de SMTP-Server Hostname oder IP-Adresse
@ -205,7 +205,7 @@ for the times above admin de f
for the times below (empty values count as '*', all empty = every minute) admin de für die darunter angegebenen Zeiten (leere Felder zählen als "*", alles leer = jede Minute)
force selectbox admin de Auswahl erzwingen
forward also to admin de Zusätzlich weiterleiten an
forward emails to admin de Emails weiterleiten an
forward emails to admin de E-Mails weiterleiten an
forward only admin de Nur weiterleiten
global categories common de Globale Kategorien
group ? admin de Gruppe ?
@ -221,7 +221,7 @@ host information admin de Host-Information
hour<br>(0-23) admin de Stunde<br>(0-23)
how many days should entries stay in the access log, before they get deleted (default 90) ? admin de Wie viele Tage sollen Einträge im Zugangsprotokoll bleiben, bevor sie gelöscht werden (Vorgabe 90)?
how many minutes should an account or ip be blocked (default 30) ? admin de Wie viele Minuten soll ein Benutzerkonto oder eine IP gesperrt werden (Vorgabe 30)?
how should email addresses for new users be constructed? admin de In welchem Format sollen EMail Adressen von neuen Benutzern erzeugt werden?
how should email addresses for new users be constructed? admin de In welchem Format sollen E-Mail-Adressen von neuen Benutzern erzeugt werden?
icon admin de Icon
idle admin de im Leerlauf
if no acl records for user or any group the user is a member of admin de Wenn es keinen ACL-Eintrag für einen Benutzer oder oder eine Gruppe der er angehört gibt
@ -264,8 +264,8 @@ login screen admin de Login-Seite
login shell admin de Login-Komandointerpreter (Login-Shell)
login time admin de Login-Zeit
loginid admin de Login-ID
mail settings admin de EMail Einstellungen
main email-address admin de Stamm-Emailadresse
mail settings admin de E-Mail-Einstellungen
main email-address admin de Stamm-E-Mail-Adresse
main screen message admin de Nachricht der Startseite
manager admin de Manager
max length of the input [, length of the inputfield (optional)] admin de maximale länge für die Ausgabe [. länge des Feldes (optional)]

View File

@ -12,7 +12,7 @@
/* $Id$ */
$setup_info['admin']['name'] = 'admin';
$setup_info['admin']['version'] = '1.2';
$setup_info['admin']['version'] = '1.4';
$setup_info['admin']['app_order'] = 1;
$setup_info['admin']['tables'] = '';
$setup_info['admin']['enable'] = 1;
@ -49,6 +49,10 @@
/* Dependencies for this app to work */
$setup_info['admin']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.0.0','1.0.1','1.2','1.3')
'versions' => Array('1.3','1.4','1.5')
);
$setup_info['admin']['depends'][] = array(
'appname' => 'etemplate',
'versions' => Array('1.3','1.4','1.5')
);
?>

View File

@ -1,27 +1,66 @@
charset iso-8859-1
FR Jour de l'an 1 1 0 0 0
FR Lundi de Pâques 24 3 2008 0 0
FR Lundi de Pâques 28 3 2005 0 0
FR Lundi de Pâques 9 4 2007 0 0
FR Lundi de Pâques 12 4 2004 0 0
FR Lundi de Pâques 17 4 2006 0 0
FR Lundi de Pâques 21 4 2003 0 0
FR Fête du travail 1 5 0 0 0
FR Ascension 1 5 2008 0 0
FR Ascension 5 5 2005 0 0
FR Fête de la libération 8 5 0 0 0
FR Lundi de Pentecôte 12 5 2008 0 0
FR Lundi de Pentecôte 16 5 2005 0 0
FR Ascension 17 5 2007 0 0
FR Ascension 20 5 2004 0 0
FR Ascension 25 5 2006 0 0
FR Lundi de Pentecôte 28 5 2007 0 0
FR Ascension 29 5 2003 0 0
FR Lundi de Pentecôte 31 5 2004 0 0
FR Lundi de Pentecôte 5 6 2006 0 0
FR Lundi de Pentecôte 9 6 2003 0 0
FR Fête nationale 14 7 0 0 0
charset utf-8
regular (year=0):
FR Premier de l'an 1 1 0 0 0
FR Fête du travail 1 5 0 0 0
FR Armistice 1945 8 5 0 0 0
FR Fête Nationale 14 7 0 0 0
FR Assomption 15 8 0 0 0
FR Toussaint 1 11 0 0 0
FR Armistice 11 11 0 0 0
FR Noël 25 12 0 0 0
FR Armistice 1918 11 11 0 0 0
FR Noël 25 12 0 0 0
2007:
FR Pâques 8 4 2007 0 0
FR Lundi de Pâques 9 4 2007 0 0
FR Ascension 17 5 2007 0 0
FR Pentecôte 27 5 2007 0 0
FR Lundi de Pentecôte 28 5 2007 0 0
FR Fête des Mères 3 6 2007 0 0
FR Fête des Pères 17 6 2007 0 0
2008:
FR Pâques 23 3 2008 0 0
FR Lundi de Pâques 24 3 2008 0 0
FR Ascension 1 5 2008 0 0
FR Pentecôte 11 5 2008 0 0
FR Lundi de Pentecôte 12 5 2008 0 0
FR Fête des Mères 25 5 2008 0 0
FR Fête des Pères 15 6 2008 0 0
2009:
FR Pâques 12 4 2009 0 0
FR Lundi de Pâques 13 4 2009 0 0
FR Ascension 21 5 2009 0 0
FR Pentecôte 31 5 2009 0 0
FR Lundi de Pentecôte 1 6 2009 0 0
FR Fête des Mères 6 6 2009 0 0
FR Fête des Pères 21 6 2009 0 0
2010:
FR Assomption 4 4 2010 0 0
FR Pâques 4 4 2010 0 0
FR Ascension 13 5 2010 0 0
FR Pentecôte 23 5 2010 0 0
FR Lundi de Pentecôte 24 5 2010 0 0
FR Fête des Mères 30 5 2010 0 0
FR Fête des Pères 20 6 2010 0 0
2011:
FR Lundi de Pâques 24 4 2011 0 0
FR Pâques 24 4 2011 0 0
FR Fête des Mères 29 5 2011 0 0
FR Ascension 2 6 2011 0 0
FR Pentecôte 12 6 2011 0 0
FR Lundi de Pentecôte 13 6 2011 0 0
FR Fête des Pères 19 6 2011 0 0
2012:
FR Pâques 7 4 2012 0 0
FR Lundi de Pâques 9 4 2012 0 0
FR Ascension 17 5 2012 0 0
FR Pentecôte 27 5 2012 0 0
FR Lundi de Pentecôte 28 5 2012 0 0
FR Lundi de Pentecôte 28 5 2012 0 0
FR Fête des Mères 3 6 2012 0 0
FR Fête des Pères 17 6 2012 0 0

1 charset iso-8859-1 charset utf-8
2 FR Jour de l'an 1 1 0 0 0 regular (year=0):
3 FR Lundi de Pâques 24 3 2008 0 0 FR Premier de l'an 1 1 0 0 0
4 FR Lundi de Pâques 28 3 2005 0 0 FR Fête du travail 1 5 0 0 0
5 FR Lundi de Pâques 9 4 2007 0 0 FR Armistice 1945 8 5 0 0 0
6 FR Lundi de Pâques 12 4 2004 0 0 FR Fête Nationale 14 7 0 0 0
7 FR Lundi de Pâques 17 4 2006 0 0 FR Assomption 15 8 0 0 0
FR Lundi de Pâques 21 4 2003 0 0
FR Fête du travail 1 5 0 0 0
FR Ascension 1 5 2008 0 0
FR Ascension 5 5 2005 0 0
FR Fête de la libération 8 5 0 0 0
FR Lundi de Pentecôte 12 5 2008 0 0
FR Lundi de Pentecôte 16 5 2005 0 0
FR Ascension 17 5 2007 0 0
FR Ascension 20 5 2004 0 0
FR Ascension 25 5 2006 0 0
FR Lundi de Pentecôte 28 5 2007 0 0
FR Ascension 29 5 2003 0 0
FR Lundi de Pentecôte 31 5 2004 0 0
FR Lundi de Pentecôte 5 6 2006 0 0
FR Lundi de Pentecôte 9 6 2003 0 0
FR Fête nationale 14 7 0 0 0
8 FR Assomption 15 8 0 0 0 FR Toussaint 1 11 0 0 0
9 FR Toussaint 1 11 0 0 0 FR Armistice 1918 11 11 0 0 0
10 FR Armistice 11 11 0 0 0 FR Noël 25 12 0 0 0
11 FR Noël 25 12 0 0 0 2007:
12 FR Pâques 8 4 2007 0 0
13 FR Lundi de Pâques 9 4 2007 0 0
14 FR Ascension 17 5 2007 0 0
15 FR Pentecôte 27 5 2007 0 0
16 FR Lundi de Pentecôte 28 5 2007 0 0
17 FR Fête des Mères 3 6 2007 0 0
18 FR Fête des Pères 17 6 2007 0 0
19 2008:
20 FR Pâques 23 3 2008 0 0
21 FR Lundi de Pâques 24 3 2008 0 0
22 FR Ascension 1 5 2008 0 0
23 FR Pentecôte 11 5 2008 0 0
24 FR Lundi de Pentecôte 12 5 2008 0 0
25 FR Fête des Mères 25 5 2008 0 0
26 FR Fête des Pères 15 6 2008 0 0
27 2009:
28 FR Pâques 12 4 2009 0 0
29 FR Lundi de Pâques 13 4 2009 0 0
30 FR Ascension 21 5 2009 0 0
31 FR Pentecôte 31 5 2009 0 0
32 FR Lundi de Pentecôte 1 6 2009 0 0
33 FR Fête des Mères 6 6 2009 0 0
34 FR Fête des Pères 21 6 2009 0 0
35 2010:
36 FR Assomption 4 4 2010 0 0
37 FR Pâques 4 4 2010 0 0
38 FR Ascension 13 5 2010 0 0
39 FR Pentecôte 23 5 2010 0 0
40 FR Lundi de Pentecôte 24 5 2010 0 0
41 FR Fête des Mères 30 5 2010 0 0
42 FR Fête des Pères 20 6 2010 0 0
43 2011:
44 FR Lundi de Pâques 24 4 2011 0 0
45 FR Pâques 24 4 2011 0 0
46 FR Fête des Mères 29 5 2011 0 0
47 FR Ascension 2 6 2011 0 0
48 FR Pentecôte 12 6 2011 0 0
49 FR Lundi de Pentecôte 13 6 2011 0 0
50 FR Fête des Pères 19 6 2011 0 0
51 2012:
52 FR Pâques 7 4 2012 0 0
53 FR Lundi de Pâques 9 4 2012 0 0
54 FR Ascension 17 5 2012 0 0
55 FR Pentecôte 27 5 2012 0 0
56 FR Lundi de Pentecôte 28 5 2012 0 0
57 FR Lundi de Pentecôte 28 5 2012 0 0
58 FR Fête des Mères 3 6 2012 0 0
59 FR Fête des Pères 17 6 2012 0 0
60
61
62
63
64
65
66

View File

@ -24,11 +24,14 @@ require_once(EGW_INCLUDE_ROOT.'/calendar/inc/class.bocalupdate.inc.php');
class ajaxcalendar {
/**
* @var object $calendar object to handle events
* calendar object to handle events
*
* @var bocalupdate
*/
var $calendar;
function ajaxcalendar() {
function ajaxcalendar()
{
$this->calendar = new bocalupdate;
}

View File

@ -166,7 +166,6 @@ class bocal
}
$this->common_prefs =& $GLOBALS['egw_info']['user']['preferences']['common'];
$this->cal_prefs =& $GLOBALS['egw_info']['user']['preferences']['calendar'];
$this->check_set_default_prefs();
$this->tz_offset_s = $this->datetime->tz_offset;
@ -764,7 +763,8 @@ class bocal
}
break;
case MCAL_RECUR_WEEKLY:
if (floor(($search_beg_day - $event_start_daybegin_ts)/WEEK_s) % $freq)
// we use round(,1) to deal with changing daylight saving
if (floor(round(($search_beg_day - $event_start_daybegin_ts)/WEEK_s,1)) % $freq)
{
continue;
}

View File

@ -541,7 +541,7 @@ class bocalupdate extends bocal
$details['to-fullname'] = $GLOBALS['egw']->common->display_fullname('',$details['to-firstname'],$details['to-lastname']);
$to = $GLOBALS['egw']->accounts->id2name($userid,'account_email');
if (!$to || !strstr($to,'@'))
if (!$to || strpos($to,'@') === false)
{
// ToDo: give an error-message
echo '<p>'.lang('Invalid email-address "%1" for user %2',$to,$GLOBALS['egw']->common->grab_owner_name($userid))."</p>\n";

View File

@ -298,7 +298,7 @@
return false;
}
$charset = split("[\t\n ]+",$lines[0]); // give a bit flexibility in the syntax AND remove the lineend (\n)
if (strstr($charset[0],'charset') && $charset[1])
if (strpos($charset[0],'charset') !== false && $charset[1])
{
$lines = $GLOBALS['egw']->translation->convert($lines,$charset[1]);
}

View File

@ -549,7 +549,7 @@
}
break;
case 'MONTHLY':
$vcardData['recur_type'] = strstr($recurence,'BYDAY') ?
$vcardData['recur_type'] = strpos($recurence,'BYDAY') !== false ?
MCAL_RECUR_MONTHLY_WDAY : MCAL_RECUR_MONTHLY_MDAY;
break;
@ -1000,7 +1000,7 @@
}
break;
case 'MONTHLY':
$vcardData['recur_type'] = strstr($recurence,'BYDAY') ?
$vcardData['recur_type'] = strpos($recurence,'BYDAY') !== false ?
MCAL_RECUR_MONTHLY_WDAY : MCAL_RECUR_MONTHLY_MDAY;
break;

View File

@ -520,7 +520,7 @@ ORDER BY cal_user_type, cal_usre_id
return false;
}
// new event (without uid) or new created referencing event => create new uid
if (!$event['cal_uid'] || $event['cal_reference'] && strstr($event['cal_uid'],'cal-'.$event['calreference'].'-'))
if (!$event['cal_uid'] || $event['cal_reference'] && strpos($event['cal_uid'],'cal-'.$event['calreference'].'-') !== false)
{
$event['cal_uid'] = $GLOBALS['egw']->common->generate_uid('calendar',$cal_id);
$this->db->update($this->cal_table,array('cal_uid' => $event['cal_uid']),array('cal_id' => $cal_id),__LINE__,__FILE__);

View File

@ -156,6 +156,8 @@ class uical
}
$this->common_prefs = &$GLOBALS['egw_info']['user']['preferences']['common'];
$this->cal_prefs = &$GLOBALS['egw_info']['user']['preferences']['calendar'];
$this->bo->check_set_default_prefs();
$this->wd_start = 60*$this->cal_prefs['workdaystarts'];
$this->wd_end = 60*$this->cal_prefs['workdayends'];
$this->interval_m = $this->cal_prefs['interval'];
@ -437,7 +439,7 @@ class uical
{
if ($baseurl) // we append the value to the baseurl
{
$baseurl .= strstr($baseurl,'?') === False ? '?' : '&';
$baseurl .= strpos($baseurl,'?') === False ? '?' : '&';
$onchange="location='$baseurl'+this.value;";
}
else // we add $name=value to the actual location

View File

@ -123,7 +123,7 @@ class uiforms extends uical
$participants[$uid] = $participant_types[$uid{0}][$id] = ($res_data['new_status'] ? ExecMethod($res_data['new_status'],$id) : 'U').
((int) $quantity > 1 ? (int)$quantity : '');
// if new_status == 'x', resource is not bookable
if(strstr($participant_types[$uid{0}][$id],'x'))
if(strpos($participant_types[$uid{0}][$id],'x') !== false)
{
unset($participant_types[$uid{0}][$id]);
unset($participants[$uid]);

View File

@ -1676,7 +1676,7 @@ class uiviews extends uical
'menuaction' => 'calendar.uiviews.planner',
'planner_days' => 1,
'date' => date('Ymd',$t),
),false,strstr($class,'calHoliday') || strstr($class,'calBirthday') ? '' : ' title="'.$this->html->htmlspecialchars(lang('Dayview')).'"');
),false,strpos($class,'calHoliday') !== false || strpos($class,'calBirthday') !== false ? '' : ' title="'.$this->html->htmlspecialchars(lang('Dayview')).'"');
}
if ($days < 5)
{

View File

@ -69,7 +69,10 @@ for ($l = 0; $l < $length; $l += $dist)
}
}
session_cache_limiter('public'); // allow caching
// allow caching for 7 days
header('Cache-Control: public');
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+7*24*60*60) . ' GMT');
if (function_exists('imagegif'))
{
header("Content-type: image/gif");

View File

@ -157,7 +157,7 @@ ignore conflict calendar de Konflikt ignorieren
import calendar de Importieren
import csv-file common de CSV-Datei importieren
interval calendar de Intervall
invalid email-address "%1" for user %2 calendar de Ungültige Email-Adresse "%1" für Benutzer %2
invalid email-address "%1" for user %2 calendar de Ungültige E-Mail-Adresse "%1" für Benutzer %2
last calendar de letzte
lastname of person to notify calendar de Nachname der zu benachrichtigenden Person
length of the time interval calendar de Länge des Zeitintervals
@ -221,7 +221,7 @@ private and group public calendar de Privat und Gruppen
private only calendar de nur private
quantity calendar de Menge
re-edit event calendar de Event erneut bearbeiten
receive email updates calendar de Empfange E-Mail updates
receive email updates calendar de Empfange E-Mail-Updates
receive summary of appointments calendar de Zusammenfassung der Termine erhalten
recurrence calendar de Wiederholung
recurring event calendar de Wiederholender Termin

View File

@ -1,314 +1,258 @@
%1 %2 in %3 calendar el %1 %2 óå %3
%1 matches found calendar el %1 üìïéá âñÝèçêáí
%1 records imported calendar el %1 åããñáöÝò åéóÞ÷èçêáí
%1 records read (not yet imported, you may go back and uncheck test import) calendar el %1 åããñáöÝò äéáâÜóôçêáí (äåí åéóÞ÷èçêáí áêüìá, ìðïñåßôå íá ðÜôå ðßóù êáé íá îåôóåêÜñåôå Äïêéìáóôéêç ÅéóáãùãÞ)
(for weekly) calendar el (Ãéá åâäïìáäéáßï)
(i/v)cal calendar el (i/v)Cal
1 match found calendar el 1 üìïéï âñÝèçêå
a calendar el åíá
accept calendar el ÁðïäÝ÷ïìáé
<b>please note</b>: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.<br />holidays are %3 automatic installed from %4. you can changed it in %5. calendar el <b>Ðáñáêáëþ ðñïóÝîôå</b>:Ôï çìåñïëüãéï ÷ñçóéìïðïéåß ôéò ãéïñôÝò ôçò ÷þñáò óáò, ïé ïðïßåò åßíáé êáèïñéóìÝíåò ôçí %1. Ìðïñåßôå íá ôéò áëëÜîåôå óôéò äéêÝò óáò %2.<br/>Ïé ãéïñôÝò %3 åãêáèßóôáíôáé áõôüìáôá áðü %4. Ìðïñåßôå íá ôï áëëÜîåôå óå %5.
accept or reject an invitation calendar el Áðïäå÷ôåßôå Þ áðïññßøôå ìßá ðñüóêëçóç
accepted calendar el ÁðïäÝ÷ôçêå
access denied to the calendar of %1 !!! calendar el Áðïññßöèçêå ç åßóïäïò óôï çìåñïëüãéï ôïõ %1 !!!
action that caused the notify: added, canceled, accepted, rejected, ... calendar el ÅíÝñãåéåò ðïõ ðñïêÜëåóáí ôçí åéäïðïßçóç: ÐñïóôÝèçêå, Áêõñþèçêå, ÁðïäÝ÷ôçêå, Áðïññßöèçêå, ...
add a single entry by passing the fields. calendar el ÐñïóèÝóôå ìéá ìïíÞ êáôá÷þñçóç ðåñíþíôáò ôá ðåäßá
actions calendar el ÅíÝñãåéåò
actions... calendar el ÅíÝñãåéåò...
add alarm calendar el ÐñïóèÝóôå Åéäïðïßçóç
add contact calendar el ÐñïóèÝóôå ÅðáöÞ
added calendar el ÐñïóôÝèçêå
address book calendar el Âéâëßï Äéåõèýíóåùí
after current date calendar el ÌåôÜ ôçí ôùñéíÞ çìåñïìçíßá
alarm calendar el Åéäïðïßçóç
alarm added calendar el ÐñïóôÝèçêå åéäïðïßçóç
alarm deleted calendar el ÄéáãñÜöçêå åéäïðïßçóç
alarm for %1 at %2 in %3 calendar el Åéäïðïßçóç ãéá %1 óôéò %2 ôçí %3
alarm management calendar el Äéá÷åßñçóç ÅéäïðïéÞóåùí
alarm-management calendar el Äéá÷åßñçóç-ÅéäïðïéÞóåùí
alarm management calendar el Äéá÷åßñçóç åéäïðïéÞóåùí
alarms calendar el ÅéäïðïéÞóåéò
all day calendar el Ïëç ÇìÝñá
all categories calendar el ¼ëåò ïé êáôçãïñßåò
all day calendar el ¼ëç ìÝñá
all events calendar el ¼ëá ôá ãåãïíüôá
all participants calendar el ¼ëïé ïé óõììåôÝ÷ïíôåò
allows to edit the event again calendar el ÅðéôñÝðåé îáíÜ ôçí åðåîåñãáóßá ôïõ ãåãïíüôïò
apply the changes calendar el åöáñìüóôå ôéò áëëáãÝò
are you sure you want to delete this country ? calendar el Åéóáé óßãïõñïò ðùò èÝëåéò íá äéáãñÜøåéò áõôÞ ôç ÷þñá;
are you sure you want to delete this holiday ? calendar el Åéóáé óßãïõñïò ðùò èÝëåéò íá äéáãñÜøåéò áõôÞ ôçí áñãßá;
are you sure\nyou want to\ndelete these alarms? calendar el Åéóáé óßãïõñïò\nðùò èÝëåéòn\íá äéáãñÜøåéò áõôÝò ôéò ðñïéäïðïéÞóåéò;
are you sure\nyou want to\ndelete this entry ? calendar el Åéóáé óßãïõñïò\nðùò èÝëåéò\níá äáãñÜøåéò áõôÞ ôçí åéóáãùãÞ;
are you sure\nyou want to\ndelete this entry ?\n\nthis will delete\nthis entry for all users. calendar el Åéóáé óßãïõñïò\nðùò èÝëåéò íá\näéáãñÜøåéò áõôÞ ôçí åéóáãùãÞ;\n\nÁõôü èá äéáãñÜøåé\náõôÞ ôç êáôá÷þñçóç ãéá üëïõò ôïõò ÷ñÞóôåò.
are you sure\nyou want to\ndelete this single occurence ?n\n\this will delete\nthis entry for all users. calendar el Åéóáé óßãïõñïò\nðùò èÝëåéò íá\näéáãñÜøåéò áõôü ôï óõìâÜí;\n\nÁõôü èá äéáãñÜøåé\náõôÞ ôç êáôá÷þñçóç ãéá üëïõò ôïõò ÷ñÞóôåò.
before the event calendar el ðñßí ôï ãåãïíüò
brief description calendar el ÐåñéãñáöÞ ÁíáöïñÜò
business calendar el ÄïõëåéÜ
calendar common el Çìåñïëüãéï
calendar - [iv]cal importer calendar el Çìåñïëüãéï - [iv]Cal ÅéóÞ÷èç
calendar - add calendar el Çìåñïëüãéï - Ðñüóèåóç
calendar - edit calendar el Çìåñïëüãéï - Åðåîåñãáóßá
back half a month calendar el Ìéóü ìÞíá ðßóù
back one month calendar el ¸íá ìÞíá ðßóù
before current date calendar el Ðñéí ôçí ôùñéíÞ çìåñïìçíßá
before the event calendar el ðñéí ôï ãåãïíüò
birthday calendar el ÃåíÝèëéá
busy calendar el áðáó÷ïëçìÝíïò
by calendar el ìÝóù
calendar event calendar el Ãåãïíüò Çìåñïëïãßïõ
calendar holiday management admin el Äéá÷åßñçóç Áäåéþí Çìåñïëïãßïõ
calendar menu calendar el Ìåíïý Çìåñïëïãßïõ
calendar preferences calendar el Éäéüôçôåò Çìåñïëïãßïõ
calendar settings admin el Ñõèìßóåéò Çìåñïëïãßïõ
calendar-fieldname calendar el Çìåñïëüãéï - Ïíïìá ðåäßïõ
can't add alarms in the past !!! calendar el Äåí åðéôñÝðåôáé ç ðñïóèÞêç åéäïðïéÞóåùí óôï ðáñåëèüí
canceled calendar el Áêõñþèçêå
change all events for $params['old_owner'] to $params['new_owner']. calendar el Áëëáîå üëá ôá ãåãïíüôá ãéá $params['old_owner'] óå $params['new_owner'].
change status calendar el ÁëëáãÞ ÊáôÜóôáóçò
charset of file calendar el Êùäéêïóåëßäá áñ÷åßïõ
click %1here%2 to return to the calendar. calendar el ÊÜíå êëßê %1åäþ%2 ãéá åðéóôñïöÞ óôï çìåñïëüãéï
configuration calendar el Äéáìüñöùóç
close the window calendar el Êëåßóôå ôï ðáñÜèõñï
compose a mail to all participants after the event is saved calendar el ÓõíôÜîôå Ýíá ìÞíõìá óå üëïõò ôïõò óõììåôÝ÷ïíôåò áöïý óùèåß ôï ãåãïíüò
copy of: calendar el Áíôßãñáöï ôïõ
copy this event calendar el ÁíôéãñÜøôå áõôü ôï ãåãïíüò
countries calendar el ×þñåò
country calendar el ×þñá
created by calendar el ÄçìéïõñãÞèçêå áðü
csv-fieldname calendar el CSV-Ïíïìá ðåäßïõ
create an exception for the given date calendar el ÄçìéïõñãÞóôå ìéá åîáßñåóç ãéá ôç äïóìÝíç çìåñïìçíßá
create new links calendar el ÄçìéïõñãÞóôå íÝá links
csv calendar el CSV
csv-fieldname calendar el CSV-íïìá ðåäßïõ
csv-filename calendar el CSV-Ïíïìá áñ÷åßïõ
custom fields calendar el ÐñïóáñìïóìÝíá Ðåäßá
custom fields and sorting common el ÐñïóáñìïóìÝíá ðáéäßá êáé ôáîéíüìçóç
custom fields common el ÐñïóáñìïóìÝíá ðåäßá
daily calendar el ÇìåñÞóéï
daily matrix view calendar el ÇìåñÞóéá Åìöáíçóç Êáëïõðéïý
days calendar el çìÝñåò
days of the week for a weekly repeated event calendar el ÇìÝñåò ôçò åâäïìÜäáò ãéá Ýíá åâäïìáäéáßá åðáíáëáìâáíüìåíï ãåãïíüò
days repeated calendar el åðáíáëáìâáíüìåíåò çìÝñåò
dayview calendar el ÇìåñÞóéá ÅìöÜíçóç
default appointment length (in minutes) calendar el ðñïêáèïñéóìÝíï ìÞêïò ñáíôåâïý
dayview calendar el ÇìåñÞóéá åìöÜíéóç
default appointment length (in minutes) calendar el ðñïêáèïñéóìÝíï ìÞêïò óõíÜíôçóçò
default calendar filter calendar el ÐñïêáèïñéóìÝíï ößëôñï çìåñïëïãßïõ
default calendar view calendar el ÐñïêáèïñéóìÝíç åìöÜíçóç çìåñïëïãßïõ
default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar el ÐñïêáèïñéóìÝíï ìÞêïò ôùí ðéü ðñüóöáôá äçìéïõñãçìÝíùí ãåãïíüôùí. Ôï ìÞêïò åßíáé óå ëåðôÜ, ð.÷. 60 ãéá 1 þñá
defines the size in minutes of the lines in the day view. calendar el Ïñßæåé ôï ìÝãåèïò óå ëåðôÜ ôùí ãñáììþí óôçí çìåñÞóéá åìöÜíçóç
delete a single entry by passing the id. calendar el ÄéáãñÜøôå ìéá ìïíÞ êáôá÷þñçóç ðåñíþíôáò ôï id
delete an entire users calendar. calendar el ÄéáãñáöÞ ïëüêëçñïõ ôïõ çìåñïëïãßïõ ôïõ ÷ñÞóôç
delete selected contacts calendar el ÄéáãñáöÞ åðåëåãìÝíùí åðáöþí
delete series calendar el ÄéáãñáöÞ ÓåéñÜò
delete single calendar el ÄéáãñáöÞ ÌïíÞ
deleted calendar el ÄéáãñÜöçêå
description calendar el ÐåñéãñáöÞ
disable calendar el Áðåíåñãïðïßçóç
disabled calendar el áðåíåñãïðïéÞèçêå
display interval in day view calendar el ÅìöÜíçóç êåíþí óôçí ÇìåñÞóéá ÅìöÜíçóç
display mini calendars when printing calendar el ÅìöÜíçóç ìßíé çìåñïëïãßùí üôáí åêôõðþíùíôáé
display status of events calendar el ÅìöÜíçóç ÊáôÜóôáóçò ôùí Ãåãïíüôùí
displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar el Åìöáíßæåé ôçí ðñïêáèïñéóìÝíç åìöÜíçóç ôïõ çìåñïëïãßïõ óôçí áñ÷éêÞ óåëßäá(ç óåëßäá ðïõ ðáßñíåôå üôáí ìðáßíåôå óôï eGroupWare Þ êÜíåôå click óôçí áñ÷éêÞ óåëßäá
do you want to be notified about new or changed appointments? you be notified about changes you make yourself.<br>you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar el
do you want to receive a regulary summary of your appointsments via email?<br>the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.<br>it is only sent when you have any appointments on that day or week. calendar el
default calendar view calendar el ÐñïêáèïñéóìÝíç åìöÜíéóç çìåñïëïãßïõ
default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar el ÐñïêáèïñéóìÝíç äéÜñêåéá ôùí ðéï ðñüóöáôá äçìéïõñãçìÝíùí ãåãïíüôùí. Ç äéÜñêåéá åßíáé óå ëåðôÜ, ð.÷. 60 ãéá 1 þñá
default week view calendar el ÐñïêáèïñéóìÝíç åìöÜíéóç åâäïìÜäáò
delete series calendar el ÄéáãñáöÞ óåéñÜò
delete this alarm calendar el ÄéáãñÜøôå áõôÞ ôçí åéäïðïßçóç
delete this event calendar el ÄéáãñÜøôå áõôü ôï ãåãïíüò
delete this exception calendar el ÄéáãñÜøôå áõôÞ ôçí åîáßñåóç
delete this series of recuring events calendar el ÄéáãñÜøôå áõôÞ ôç óåéñÜ ôùí åðáíåìöáíéæüìåíùí ãåãïíüôùí
disinvited calendar el Ìç ðñïóêåêëçìÝíïé
display status of events calendar el ÅìöÜíéóç êáôÜóôáóçò ãåãïíüôùí
displayed view calendar el åìöáíéæüìåíç åéêüíá
displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar el Åìöáíßæåé ôçí ðñïêáèïñéóìÝíç åìöÜíéóç ôïõ çìåñïëïãßïõ óôçí áñ÷éêÞ óåëßäá(ç óåëßäá ðïõ ðáßñíåôå üôáí ìðáßíåôå óôï eGroupWare Þ êÜíåôå click óôçí áñ÷éêÞ óåëßäá
do you want a weekview with or without weekend? calendar el ÈÝëåôå íá åðéèåùñÞóåôå ôçí åâäïìÜäá ìå Þ ÷ùñßò ôá Óáââáôïêýñéáêá;
do you want to be notified about new or changed appointments? you be notified about changes you make yourself.<br>you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar el ÈÝëåôå íá åéäïðïéçèåßôå ãéá íÝåò óõíáíôÞóåéò Þ áëëáãÝò óõíáíôÞóåùí;Èá åéäïðïéÞóôå ãéá áëëáãÝò ðïõ êÜíåôå ï ßäéïò.<br>Ìðïñåßôå íá åëëáôôþóåôå ôéò åéäïðïéÞóåéò óå ïñéóìÝíåò áëëáãÝò ìüíï. ÊÜèå áíôéêÝéìåíï ðåñéëáìâÜíåé üëåò ôéò åéäïðïéÞóåéò óå ìßá ëßóôá áðü ðÜíù ôïõ.¼ëåò ïé ôñïðïðïéÞóåéò óõìðåñéëáìâÜíïõí áëëáãÝò ôïõ ôßôëïõ, ôçò ðåñéãñáöÞò, ôùí óõììåôå÷üíôùí, áëëÜ êáìßá áðÜíôçóç óõììåôÝ÷ïíôïò. Áí ï éäéïêôÞôçò åíüò ãåãïíüôïò æÞôçóå êÜðïéá åéäïðïßçóç, èá ëáìâÜíåé ðÜíôá ôéò áðáíôÞóåéò ôùí óõììåôå÷üíôùí ùò áðïäï÷Ýò êáé áðïññßøåéò åðßóçò.
do you want to receive a regulary summary of your appointsments via email?<br>the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.<br>it is only sent when you have any appointments on that day or week. calendar el ÈÝëåôå íá ëáìâÜíåôå ìßá ôáêôéêÞ ðåñßëçøç ôùí óõíáíôÞóåþí óáò ìÝóù email;<br>Ç ðåñßëçøç óôÝëíåôáé óôçí óõíçèéóìÝíç óáò äéåýèõíóç email ôï ðñùß åêåßíçò ôçò çìÝñáò Þ ôç ÄåõôÝñá ãéá åâäïìáäéáßåò ðåñéëÞøåéò.<br>ÓôÝëíåôáé ìüíïí üôáí Ý÷åôå êÜðïéá óõíÜíôçóç åêåßíç ôçí çìÝñá Þ åâäïìÜäá.
do you wish to autoload calendar holidays files dynamically? admin el ÈÝëåôå íá öïñôùèïýí ôá áñ÷åßá áäåéþí ôïõ çìåñïëïãßïõ äõíáìéêÜ?
download calendar el Öüñôùìá
duration calendar el ÄéÜñêåéá
edit series calendar el Åðåîåñãáóßá ÓåéñÜò
edit single calendar el Åðåîåñãáóßá ÌïíÞ
email notification calendar el Åéäïðïßçóç Email
email notification for %1 calendar el Åéäïðïßçóç Email ãéá %1
download this event as ical calendar el Öüñôùóç ôïõ ãåãïíüôïò ùò iCal
duration of the meeting calendar el ÄéÜñêåéá ôçò óõíÜíôçóçò
edit exception calendar el Åðåîåñãáóßá åîáßñåóçò
edit series calendar el Åðåîåñãáóßá óåéñÜò
edit this event calendar el Åðåîåñãáóßá ôïõ ãåãïíüôïò
edit this series of recuring events calendar el Åðåîåñãáóßá óåéñÜò åðáíáëáìâáíüìåíùí ãåãïíüôùí
empty for all calendar el Üäåéï ãéá üëïõò
enable calendar el Åíåñãïðïßçóç
enabled calendar el åíåñãïðïéÞèçêå
end date/time calendar el ÔÝëïò Çìåñïìçíßáò/×ñüíïõ
end calendar el ÔÝëïò
end date/time calendar el ÔÝëïò Çìåñïìçíßáò/¿ñáò
enddate calendar el Ôåëïò çìåñïìçíßáò
ends calendar el ôåëéþíåé
enter output filename: ( .vcs appended ) calendar el ÂÜëôå Ïíïìá Áñ÷åßïõ ãéá Åîïäï: (.vcs ðñïóáñôÞèçêå)
enddate / -time of the meeting, eg. for more then one day calendar el Çìåñïìçíßá ôÝëïõò / -þñá óõíÜíôçóçò, ð.÷. ãéá ðåñéóóüôåñï áðü ìßá ìÝñá.
enddate of the export calendar el Çìåñïìçíßá ôÝëïõò åîáãùãÞò
ends calendar el ôåëåéþíåé
error adding the alarm calendar el ÓöÜëìá óôçí ðñïóèÞêç åéäïðïßçóçò
error: importing the ical calendar el ÓöÜëìá: óôçí åéóáãùãÞ ôïõ iCal
error: no participants selected !!! calendar el ÓöÜëìá: äåí Ý÷åé åðéëå÷èåß êÜðïéïò óõììåôÝ÷ùí !!!
error: saving the event !!! calendar el ÓöÜëìá: óôçí áðïèÞêåõóç ôïõ ãåãïíüôïò !!!
error: starttime has to be before the endtime !!! calendar el ÓöÜëìá: Ç þñá Ýíáñîçò ðñÝðåé íá Ýéíáé ðñéí ôçí ôÝëïõò
event copied - the copy can now be edited calendar el Ôï ãåãïíüò áíôéãñÜöçêå - ôï áíôßãñáöï ìðïñåß ôþñá íá åðåîåñãáóôåß
event deleted calendar el Ãåãïíüò äéáãñÜöçêå
event details follow calendar el Áêïëïõèïýí ËåðôïìÝñéåò Ãåãïíüôùí
event saved calendar el Ãåãïíüò áðïèçêÝõôçêå
event will occupy the whole day calendar el Ôï ãåãïíüò èá áðáó÷ïëÞóåé ïëüêëçñç ôçí çìÝñá
exception calendar el Åîáßñåóç
exceptions calendar el ÅîáéñÝóåéò
execute a further action for this entry calendar el ÅêôåëÝóôå ðåñáéôÝñù åíÝñãåéá ãéá áõôÞí ôçí êáôá÷þñçóç
export calendar el ÅîáãùãÞ
export a list of entries in ical format. calendar el ÅîáãùãÞ ëßóôáò áðï êáôá÷ùñßóåéò óå iCal ìïñöÞ.
extended calendar el ÅêôåôáìÝíïò
extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar el ÅêôåôáìÝíåò åíçìåñþóåéò ðÜíôá ðåñéëáìâÜíïõí ôéò ïëïêëçñïìÝíåò ëåðôïìÝñéåò-ãåãïíüôùí. iCal's ìðïñïýí íá åéóá÷èïýí áðï óõãêåêñéìÝíåò Üëëåò åöáñìïãÝò-çìåñïëïãßùí
external participants calendar el ÅîùôåñéêÝò óõìåôï÷Ýò
failed sending message to '%1' #%2 subject='%3', sender='%4' !!! calendar el ÁðÝôõ÷å ç áðïóôïëÞ ìçíýìáôïò óôï '%1' #%2 èÝìá='%3', áðïóôïëÝáò='%4' !!!
fieldseparator calendar el Äéá÷ùñéóôÞò ðåäßùí
filename calendar el ¼íïìá áñ÷åßïõ
firstname of person to notify calendar el Ïíïìá ôïõ áôüìïõ íá åéäïðïéçèåß
for calendar el ãéá
for which views should calendar show distinct lines with a fixed time interval. calendar el Ãéá ðïéåò åìöáíßóåéò ðñÝðåé ôï çìåñïëüãéï íá äåß÷íåé åõäéÜêñéôåò ãñáììÝò ìå êáèïñéóìÝíá ÷ñïíéêÜ äéáóôÞìáôá.
format of event updates calendar el ÌïñöÞ áðï åíçìåñùìÝíá ãåãïíüôá
fr calendar el Ðá
free/busy calendar el ÅëÝõèåñï/Áðáó÷ïëçìÝíï
frequency calendar el Óõ÷íüôçôá
forward half a month calendar el Ðñïþèçóç ìéóïý ìÞíá
forward one month calendar el Ðñïþèçóç åíüò ìçíüò
four days view calendar el ÅìöÜíéóç ôåóóÜñùí çìåñþí
freetime search calendar el ÁíáæÞôçóç åëÝõèåñïõ ÷ñüíïõ
fri calendar el Ðáñ
full description calendar el ÐëÞñçò ÐåñéãñáöÞ
fullname of person to notify calendar el ÐëÞñåò üíïìá ôïõ áôüìïõ íá åéäïðïéçèåß
generate printer-friendly version calendar el ÐáñÜãåôå öéëéêïý-åêôõðùôÞ Ýêäïóç
general calendar el ÃåíéêÜ
global public and group public calendar el Ãåíéêïý Êïéíïý êáé ïìáäéêïý êïéíïý
global public only calendar el Ãåíéêïý Êïéíïý Ìüíï
go! calendar el Îåêßíá!
grant calendar access common el Ìåôáâßâáóç ÄéêáéùìÜôùí Çìåñïëïãßïõ
group invitation calendar el Ðñüóêëçóç ïìÜäáò
group planner calendar el ÏìÜäá Ðñïãñáììáôéóìïý
group public only calendar el ÏìÜäá Êïéíïý Ìüíï
groupmember(s) %1 not included, because you have no access. calendar el Ôá ìÝëç ôçò ïìÜäáò %1 äåí óõìðåñéëáìâÜíïíôáé, ãéáôß äåí Ý÷ïõí äéêáßùìá åéóüäïõ.
here is your requested alarm. calendar el Ùñßóôå ç æçôïýìåíç åéäïðïßçóç
hide private infos calendar el Áðüêñõøç ðñïóùðéêþí ðëçñïöïñéþí
high priority calendar el øçëÞ ðñïôåñáéüôçôá
holiday calendar el Áäåéá
holiday management calendar el Äéá÷åéñçóôÞò Áäåéáò
holiday-management calendar el Áäåéá-Äéá÷åéñçóôÞò
holidays calendar el Áäåéåò
hours calendar el Ùñåò
i participate calendar el ÓõìåôÝ÷ù
how far to search (from startdate) calendar el ðüóï ìáêñõÜ íá øÜîåé (áðü ôçí áñ÷éêÞ çìåñïìçíßá)
how many minutes should each interval last? calendar el Ðüóá ëåðôÜ ðñÝðåé êÜèå äéÜëåéììá íá äéáñêåß;
ical calendar el iCal
ical / rfc2445 calendar el iCal / rfc2445
ical export calendar el iCal ÅîáãùãÞ
ical file calendar el iCal áñ÷åßï
ical import calendar el iCal ÅéóáãùãÞ
ical successful imported calendar el iCal åðéôõ÷Þò åéóáãùãÞ
if checked holidays falling on a weekend, are taken on the monday after. calendar el Áí ôóåêáñéóìÝíåò áñãåßåò ðÝöôïõí Óáââáôïêýñéáêï, ëïãáñéÜæïíôáé óôç ÄåõôÝñá ðïõ áêïëïõèåß
if you dont set a password here, the information is available to everyone, who knows the url!!! calendar el Áí äåí êáèïñßóåôå Ýíáí êùäéêü åäþ, ç ðëçñïöïñßá åßíáé äéáèÝóéìç óå üëïõò, ðïõ ãíùñßæïõí ôï URL!!!
ignore conflict calendar el Áãíüçóç Óõìðôþóåùí
import calendar el ÅéóáãùãÞ
import csv-file common el ÅéóáãùãÞ CSV-Áñ÷åßïõ
interval calendar el ÄéÜóôçìá
intervals in day view calendar el ÄéáóÞìáôá óå åìöÜíçóç çìÝñáò
intervals per day in planner view calendar el ÄéáóôÞìáôá áíá çìÝñá óå åìöÜíçóç ðñïãñÜììáôïò
invalid entry id. calendar el ËÜèïò id êáôá÷þñçóçò
invalid email-address "%1" for user %2 calendar el ¶êõñç äéåýèõíóç email "%1" ãéá ôï ÷ñÞóôç %2
last calendar el ôåëåõôÜéï
lastname of person to notify calendar el Åðßèåôï ôïõ áôüìïõ ãéá åéäïðïßçóç
length shown<br>(emtpy for full length) calendar el Åìöáíéæüìåíï ìÞêïò<br>(Üäåéï ãéá ðëÞñåò ìÞêïò)
length<br>(<= 255) calendar el ÌÞêïò<br>(<= 255)
load [iv]cal calendar el Öüñôùóç [iv]Cal
length of the time interval calendar el ÄéÜñêåéá ôïõ äéáëåßììáôïò
link to view the event calendar el Óýíäåóìïò ãéá ðáñáêïëïýèçóç ôïõ ãåãïíüôïò
links calendar el Óýíäåóìïé
links, attachments calendar el Óýíäåóìïé, ÐñïóêïëëÞóåéò
listview calendar el Ëßóôá åìöÜíéóçò
location calendar el Ôïðïèåóßá
location to autoload from admin el Ôïðïèåóßá ãéá áõôüìáôï öüñôùìá áðü
matrixview calendar el ÅìöÜíçóç Êáëïõðéïý
location, start- and endtimes, ... calendar el Ôïðïèåóßá, ¸íáñîç- êáé ÔÝëïò, ...
mail all participants calendar el ÁðïóôïëÞ ìçíýìáôïò óå üëïõò ôïõò óõììåôÝ÷ïíôåò
minutes calendar el ËåðôÜ
mo calendar el Äå
modified calendar el ÔñïðïðïéÞèçêå
modify list of external participants calendar el Ëßóôá ÔñïðïðïéÞóåùí áðï ÅîùôåñéêÝò Óõìåôï÷Ýò
mon calendar el Äåõ
month calendar el ÌÞíáò
monthly calendar el Ìçíéáßïò
monthly (by date) calendar el Ìçíéáßïò (áíá çìåñïìçíßá)
monthly (by day) calendar el Ìçíéáßïò (áíá çìÝñá)
monthview calendar el Ìçíéáßá ÅìöÜíçóç
new entry calendar el Íåá Êáôá÷þñçóç
new name must not exist and not be empty!!! calendar el Ôï íÝï üíïìá äåí ðñÝðåé íá õðÜñ÷åé êáé äåí ðñÝðåé íá åßíáé Üäåéï!!!
new search with the above parameters calendar el íÝá áíáæÞôçóç ìå ôéò ðáñáðÜíù ðáñáìÝôñïõò
no events found calendar el Äåí âñÝèçêå êáíÝíá ãåãïíüò
no filter calendar el ÊáíÝíá ößëôñï
no matches found calendar el Äåí âñÝèçêáí üìïéá
no response calendar el Äåí Áíôáðïêñßíåôáé
non blocking calendar el ìç áðïêëåéüìåíï
notification messages for added events calendar el ÌÞíõìá Åéäïðïßçóçò ãéá ãåãïíüôá ðïõ ðñïóôÝèçêáí
notification messages for canceled events calendar el ÌÞíõìá Åéäïðïßçóçò ãéá ãåãïíüôá çìåñïëïãßïõ
notification messages for disinvited participants calendar el ÌÞíõìá Åéäïðïßçóçò ãéá óõììåôÝ÷ïíôåò ðïõ äåí Ý÷ïõí ðñïóêëçèåß
notification messages for modified events calendar el ÌÞíõìá Åéäïðïßçóçò ãéá ãåãïíüôá ðïõ ôñïðïðïéÞèçêáí
notification messages for your alarms calendar el ÌÞíõìá Åéäïðïßçóçò ãéá ôéò åéäïðïéÞóåéò óáò
notification messages for your responses calendar el ÌÞíõìá Åéäïðïßçóçò ãéá ôéò áðáíôÞóåéò óáò
number of intervals per day in planner view calendar el Áñéèìüò áðï ÄéáêïðÝò áíá ÇìÝñá ôçí ÅìöÜíçóç Ðñïãñáììáôéóìïý
number of months calendar el Áñéèìüò ìçíþí
number of records to read (%1) calendar el Áñéèìüò åããñáöþí ãéá íá äéáâáóôïýí (%1)
observance rule calendar el Êáíüíáò ÅðéôÞñçóçò
occurence calendar el ÓõìâÜí
old startdate calendar el ÐáëéÜ Áñ÷éêÞÇìåñïìçíßá
olddate calendar el ÐáëéáÇìåñïìçíßá
on %1 %2 %3 your meeting request for %4 calendar el Óôéò %1 %2 %3 ç áßôçóç ãéá óõíÜíôçóç ãéá %4
on all changes calendar el óå üëåò ôéò áëëáãÝò
on all modification, but responses calendar el óå üëåò ôéò áëëáãÝò, áëëá áðïêñßíåôáé
on any time change too calendar el óå êÜèå áëëáãÞ þñáò åðßóçò
on invitation / cancelation only calendar el óå ðñüóêëçóç / áêõñþóåéò ìüíï
on participant responses too calendar el
on participant responses too calendar el óå óõììåôÝ÷ïíôïò áðáíôÞóåéò åðßóçò
on time change of more than 4 hours too calendar el óå áëëáãÞ þñáò ãéá ðÜíù áðï 4 þñåò åðßóçò
open todo's: calendar el Áíïéãìá Íá Ãéíïõí ôá ÈÝìáôá:
order calendar el ÓåéñÜ
overlap holiday calendar el
participant calendar el ÓõìåôÝ÷ùí
participants calendar el Óõìåôï÷Ýò
participates calendar el ÓõìåôÝ÷ù
one month calendar el Ýíáò ìÞíáò
one week calendar el ìßá åâäïìÜäá
one year calendar el Ýíá Ýôïò
only the initial date of that recuring event is checked! calendar el Ìüíïí ç áñ÷éêÞ çìåñïìçíßá áõôïý ôïõ åðáíáëáìâáíüìåíïõ ãåãïíüôïò åéíáé ôóåêáñéóìÝíç!
open todo's: calendar el ÅêêñåìÞ èÝìáôá
overlap holiday calendar el óõìðßðôïõóá ãéïñôÞ
participants calendar el ÓõììåôÝ÷ïíôåò
participants disinvited from an event calendar el ÓõììåôÝ÷ïíôåò ðïõ äåí Ý÷ïõí ðñïóêëçèåß ãéá Ýíá ãåãïíüò
participants, resources, ... calendar el ÓõììåôÝ÷ïíôåò, Ðüñïé, ...
people holiday calendar el Üäåéåò áôüìùí
permission denied calendar el Ç Áäåéá áðïññßðôåôáé
planner calendar el Ðñüãñáììá
planner by category calendar el Ðñüãñáììá áíá êáôçãïñßá
planner by user calendar el Ðñüãñáììá áíá ÷ñÞóôç
please confirm,accept,reject or examine changes in the corresponding entry in your calendar calendar el Ðáñáêáëþ åðéâåâáéþóôå, áðïäå÷ôÞôå, áðïññéøôå Þ åîåôÜóôå áëëáãÝò óôçí ó÷åôéêÞ êáôá÷þñçóç óôï çìåñïëüãéï óáò
please note: you can configure the field assignments after you uploaded the file. calendar el Ðáñáêáëþ ðñïóÝîôå: Ìðïñåßôå íá äéáìïñöþóåôå ôá ðåäßá áíÜèåóçò åñãáóéþí ÁÖÏÕ öïñôþóåôå ôï áñ÷åßï
preselected group for entering the planner calendar el ÐñïåðéëåãìÝíç ïìÜäá ãéá åéóáãïãÞ óôï ðñüãñáììá
print calendars in black & white calendar el Åêôýðùóç çìåñïëïãßùí óå Üóðñï êáé ìáýñï
print the mini calendars calendar el Åêôýðùóç ôùí ìßíé çìåñïëïãßùí
printer friendly calendar el Öéëéêü ÅêôõðùôÞ
privat calendar el Éäéáßôåñï
previous calendar el ðñïçãïýìåíï
private and global public calendar el Éäéáßôåñá êáé Ãåíéêþí Public
private and group public calendar el Éäéáßôåñá êáé ÏìÜäá Public
private only calendar el Éäéáßôåñï Ìüíï
quantity calendar el Ðïóüôçôá
re-edit event calendar el Îáíá-ÅðåîåñãáóìÝíï Ãåãïíüò
read a list of entries. calendar el ÄéÜâáóìá ìéáò ëßóôáò áðï êáôá÷ùñÞóåéò
read a single entry by passing the id and fieldlist. calendar el ÄéÜâáóå ìéá ìïíÞ êáôá÷þñçóç ðåñíþíôáò ôï id êáé ôçí ëéóôá ðåäßùí
read this list of methods. calendar el ÄéÜâáóå ôçí ëßóôá ôùí ìåèüäùí
receive email updates calendar el ËÞøç åíçìåñùìÝíùí email
receive extra information in event mails calendar el
receive summary of appointments calendar el
recurring event calendar el
refresh calendar el
reinstate calendar el
rejected calendar el
repeat day calendar el
repeat end date calendar el
repeat type calendar el
repeating event information calendar el
repetition calendar el
repetitiondetails (or empty) calendar el
reset calendar el
rule calendar el
sa calendar el Óá
receive summary of appointments calendar el ÐáñáëáâÞ ðåñßëçøçò ôùí óõíáíôÞóåùí
recurrence calendar el ÅðáíÜëçøç
recurring event calendar el Åðáíáëáìâáíüìåíï ãåãïíüò
rejected calendar el Áðïññßöèçêå
repeat days calendar el ÅðáíÜëçøç çìåñþí
repeat the event until which date (empty means unlimited) calendar el ÅðáíÜëáâå ôï ãåãïíüò ìÝ÷ñé ðïéá çìåñïìçíßá (êåíü óçìáßíåé ÷ùñßò ðåñéïñéóìü)
repeat type calendar el Ôýðïò åðáíÜëçøçò
repeating event information calendar el Ðëçñïöïñßåò Åðáíáëáìâáíüìåíïõ Ãåãïíüôïò
repeating interval, eg. 2 to repeat every second week calendar el ÅðáíÜëçøç äéáëåßììáôïò, ð.÷. 2 ãéá íá åðáíáëáìâÜíåé êÜèå äåýôåñç åâäïìÜäá
repetition calendar el ÅðáíÜëçøç
repetitiondetails (or empty) calendar el ËåðôïìÝñåéåò åðáíÜëçøçò (Þ êåíü)
reset calendar el Åðáíáêáèïñéóìüò
resources calendar el Ðüñïé
rule calendar el Êáíüíáò
sat calendar el Óáâ
scheduling conflict calendar el
search results calendar el
selected contacts (%1) calendar el
send updates via email common el
send/receive updates via email calendar el
set a year only for one-time / non-regular holidays. calendar el
set new events to private calendar el
should invitations you rejected still be shown in your calendar ?<br>you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar el
should new events created as private by default ? calendar el
should the mini calendars by printed / displayed in the printer friendly views ? calendar el
should the printer friendly view be in black & white or in color (as in normal view)? calendar el
should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar el
show day view on main screen calendar el
show default view on main screen calendar el
show high priority events on main screen calendar el
show invitations you rejected calendar el
show list of upcoming events calendar el
single event calendar el
sorry, the owner has just deleted this event calendar el
sorry, this event does not exist calendar el
sorry, this event does not have exceptions defined calendar el
sort by calendar el
specifies the the number of intervals shown in the planner view. calendar el
start date/time calendar el
start- and enddates calendar el
startdate calendar el
startrecord calendar el
su calendar el Êõ
submit to repository calendar el
saves the changes made calendar el áðïèçêåýåé ôéò áëëáãÝò ðïõ Ýãéíáí
select a %1 calendar el ÅðéëÝîôå Ýíá %1
select a time calendar el ÅðéëÝîôå ìßá þñá
select resources calendar el ÅðéëÝîôå ðüñïõò
select who should get the alarm calendar el ÅðéëÝîôå ðïéïò èá Ýðñåðå íá ðÜñåé ôçí åéäïðïßçóç
set a year only for one-time / non-regular holidays. calendar el Êáèïñßóôå Ýíá Ýôïò ìüíïí ãéá ìéáò öïñÜò/ ìç ôáêôéêÝò ãéïñôÝò.
should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar el Èá Ýðñåðå ç êáôÜóôáóç ôïõ ãåãïíüôïò-óõììåôå÷üíôùí (áðïäÝ÷ïìáé, áðïññßðôù,...)íá åìöáíßæåôáé óå ðáñÝíèåóç äßðëá áðü ôï üíïìá ôïõ êÜèå óõììåôÝ÷ïíôïò;
show default view on main screen calendar el ÐáñïõóéÜóôå ðñïêáèïñéóìÝíç åìöÜíéóç óôçí êýñéá ïäüíç
show invitations you rejected calendar el ÐáñïõóéÜóôå ôéò ðñïóêëÞóåéò ðïõ áðïññßøáôå
show list of upcoming events calendar el ÐáñïõóéÜóôå ôç ëßóôá ôùí åðåñ÷üìåíùí ãåãïíüôùí
show this month calendar el ÐáñïõóéÜóôå áõôü ôï ìÞíá
show this week calendar el ÐáñïõóéÜóôå áõôÞí ôçí åâäïìÜäá
single event calendar el ìïíáäéêü ãåãïíüò
start calendar el ¸íáñîç
start date/time calendar el Çìåñïìçíßá/¿ñá Ýíáñîçò
startdate / -time calendar el çìåñïìçíßá/ -þñá Ýíáñîçò
startdate and -time of the search calendar el çìåñïìçíßá Ýíáñîçò êáé þñá ôçò áíáæÞôçóçò
startdate of the export calendar el Áñ÷éêÞ çìåñïìçíßá ôçò åîáãùãÞò
status changed calendar el Ç êáôÜóôáóç Üëëáîå
submit to repository calendar el ÕðïâïëÞ óôçí áðïèÞêç
sun calendar el Êõñ
tentative calendar el
test import (show importable records <u>only</u> in browser) calendar el
text calendar el
th calendar el Ðå
the following conflicts with the suggested time:<ul>%1</ul> calendar el
the user %1 is not participating in this event! calendar el
there was an error trying to connect to your news server.<br>please contact your admin to check the news servername, username or password. calendar el
this day is shown as first day in the week or month view. calendar el
this defines the end of your dayview. events after this time, are shown below the dayview. calendar el
this defines the start of your dayview. events before this time, are shown above the dayview.<br>this time is also used as a default starttime for new events. calendar el
this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar el
this is mostly caused by a not or wrongly configured smtp server. notify your administrator. calendar el
this message is sent for canceled or deleted events. calendar el
this message is sent for modified or moved events. calendar el
this message is sent to every participant of events you own, who has requested notifcations about new events.<br>you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar el
this message is sent when you accept, tentative accept or reject an event. calendar el
this message is sent when you set an alarm for a certain event. include all information you might need. calendar el
this month calendar el Áõôü ôï ìÞíá
this week calendar el ÁõôÞ ôçí ÅâäïìÜäá
this year calendar el Áõôü ôï ÷ñüíï
tentative calendar el Äïêéìáóôéêüò
this day is shown as first day in the week or month view. calendar el ÁõôÞ ç ìÝñá ðáñïõóéÜæåôáé ùò ç ðñþôç ìÝñá ôçò åâäïìáäéáßáò Þ ôçò ìçíéáßáò åìöÜíéóçò
this defines the end of your dayview. events after this time, are shown below the dayview. calendar el Áõôü êáèïñßæåé ôï ôÝëïò ôçò çìåñÞóéáò ðñïâïëÞò. Ãåãïíüôá ìåôÜ áðü áõôÞ ôçí þñá, ðáñïõóéÜæïíôáé êÜôù áðü ôçí çìåñÞóéá ðñïâïëÞ.
this defines the start of your dayview. events before this time, are shown above the dayview.<br>this time is also used as a default starttime for new events. calendar el Áõôü êáèïñßæåé ôçí áñ÷Þ ôçò çìåñÞóéáò ðñïâïëÞò. Ãåãïíüôá ðñéí áðü áõôÞ ôçí þñá, ðáñïõóéÜæïíôáé ðÜíù áðü ôçí çìåñÞóéá ðñïâïëÞ.<br>ÁõôÞ ç þñá ÷ñçóéìïðïéåßôáé åðßóçò êáé ùò ðñïêáèïñéóìÝíç þñá Ýíáñîçò ãéá íÝá ãåãïíüôá.
thu calendar el ÐÝì
title calendar el Ôßôëïò
title of the event calendar el
title-row calendar el
to many might exceed your execution-time-limit calendar el
to-firstname calendar el
to-fullname calendar el
to-lastname calendar el
today calendar el ÓÞìåñá
translation calendar el
tu calendar el Ôñ
tue calendar el Ôñß
update a single entry by passing the fields. calendar el
updated calendar el
use end date calendar el
view this entry calendar el
we calendar el Ôå
wed calendar el Ôåô
week calendar el ÅâäïìÜäá
weekday starts on calendar el Îåêßíçìá ôçò åâäïìÜäáò
weekly calendar el
weekview calendar el
when creating new events default set to private calendar el
which events do you want to see when you enter the calendar. calendar el
which of calendar view do you want to see, when you start calendar ? calendar el
work day ends on calendar el
work day starts on calendar el
workdayends calendar el
yearly calendar el
yearview calendar el
you can either set a year or a occurence, not both !!! calendar el
you can only set a year or a occurence !!! calendar el
you do not have permission to add alarms to this event !!! calendar el
you do not have permission to delete this alarm !!! calendar el
you do not have permission to enable/disable this alarm !!! calendar el
you do not have permission to read this record! calendar el
you have %1 high priority events on your calendar today. common el
you have 1 high priority event on your calendar today. common el
you have a meeting scheduled for %1 calendar el
you have not entered a title calendar el
you have not entered a valid date calendar el
you have not entered a valid time of day calendar el
you have not entered participants calendar el
you must enter one or more search keywords calendar el
you must select a [iv]cal. (*.[iv]cs) calendar el
you need to set either a day or a occurence !!! calendar el
your meeting scheduled for %1 has been canceled calendar el
your meeting that had been scheduled for %1 has been rescheduled to %2 calendar el
your suggested time of <b> %1 - %2 </b> conflicts with the following existing calendar entries: calendar el
yearly calendar el Åôçóßùò

View File

@ -12,7 +12,7 @@
/* $Id$ */
$setup_info['calendar']['name'] = 'calendar';
$setup_info['calendar']['version'] = '1.3.001';
$setup_info['calendar']['version'] = '1.4';
$setup_info['calendar']['app_order'] = 3;
$setup_info['calendar']['enable'] = 1;
@ -46,11 +46,11 @@
/* Dependencies for this app to work */
$setup_info['calendar']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.0.0','1.0.1','1.2','1.3')
'versions' => Array('1.3','1.4','1.5')
);
$setup_info['calendar']['depends'][] = array(
'appname' => 'etemplate',
'versions' => Array('1.0.0','1.0.1','1.2','1.3')
'versions' => Array('1.3','1.4','1.5')
);
// installation checks for calendar

View File

@ -1520,4 +1520,10 @@
return $GLOBALS['setup_info']['calendar']['currentver'] = '1.3.001';
}
$test[] = '1.3.001';
function calendar_upgrade1_3_001()
{
return $GLOBALS['setup_info']['calendar']['currentver'] = '1.4';
}
?>

View File

@ -380,7 +380,7 @@ class imap_client {
case 'NO':
/* Ignore this error from M$ exchange, it is not fatal (aka bug). */
if (strstr($message[$tag], 'command resulted in') === false) {
if (strpos($message[$tag], 'command resulted in') === false) {
return PEAR::raiseError(sprintf(lang("Could not complete request. Reason Given: %s"), $message[$tag]), 'horde.error', null, null, $response[$tag]);
}
break;

View File

@ -361,7 +361,7 @@ class pleskimap extends defaultimap
// we dont set passwords shorten then 5 chars, as it only give an error in plesk
if (!is_null($password) && $password)
{
if (strlen($password) < 5 || strstr($password,$account_lid))
if (strlen($password) < 5 || strpos($password,$account_lid) !== false)
{
$this->error = lang('Plesk requires passwords to have at least 5 characters and not contain the account-name --> password NOT set!!!');
}
@ -429,7 +429,7 @@ class pleskimap extends defaultimap
{
$line = trim(fgets($fp));
list($name,$value) = split(': *',$line,2);
if (!is_null($value) && !strstr($name,'An error occured') && $name)
if (!is_null($value) && strpos($name,'An error occured') === false && $name)
{
$values[$name] = $value;
}

View File

@ -5,7 +5,7 @@ admin dn emailadmin de Admin DN
admin password emailadmin de Admin Passwort
admin username emailadmin de Administrator Benutzername
advanced options emailadmin de erweiterte Einstellungen
alternate email address emailadmin de zusätzliche EMailadressen
alternate email address emailadmin de zusätzliche E-Mail-Adressen
any application emailadmin de jede Anwendung
any group emailadmin de jede Gruppe
bad login name or password. emailadmin de Falscher Benutzername oder Passwort.
@ -13,7 +13,7 @@ bad or malformed request. server responded: %s emailadmin de Falsche oder ung
bad request: %s emailadmin de Falsche Anfrage: %s
can be used by application emailadmin de Kann von folgender Anwendung verwendet werden
can be used by group emailadmin de Kann von folgender Gruppe verwendet werden
connection dropped by imap server. emailadmin de Verbindung von IMAP Server beendet.
connection dropped by imap server. emailadmin de Verbindung von IMAP-Server beendet.
could not complete request. reason given: %s emailadmin de Konnte Anfrage nicht beenden. Grund: %s
could not open secure connection to the imap server. %s : %s. emailadmin de Konnte keine sichere Verbindung zum IMAP Server aufbauen. %s: %s.
cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin de CRAM-MD5 oder DIGEST-MD5 erforder das das Auth_SASL Packet instaliert ist.
@ -23,19 +23,19 @@ default emailadmin de Vorgabe
deliver extern emailadmin de extern ausliefern
do you really want to delete this profile emailadmin de Wollen Sie dieses Profil wirklich löschen
domainname emailadmin de Domänenname
edit email settings emailadmin de EMail Einstellungen
email account active emailadmin de EMailkonto aktiv
email address emailadmin de EMailadresse
email settings common de EMailkonto
edit email settings emailadmin de E-Mail-Einstellungen
email account active emailadmin de E-Mail-Konto aktiv
email address emailadmin de E-Mail-Adresse
email settings common de E-Mail-Konto
emailadmin emailadmin de EMailAdmin
enable cyrus imap server administration emailadmin de Cyrus IMAP-Server Administration aktivieren
enable sieve emailadmin de Sieve aktivieren
encryption settings emailadmin de Verschlüsselungseinstellungen
enter your default mail domain (from: user@domain) emailadmin de Standard EMail-Domain (Von: benutzer@domain)
enter your default mail domain (from: user@domain) emailadmin de Standard E-Mail-Domain (Von: benutzer@domain)
error connecting to imap server. %s : %s. emailadmin de Fehler beim Verbinden mit dem IMAP Server. %s : %s.
error connecting to imap server: [%s] %s. emailadmin de Fehler beim Verbinden mit dem IMAP Server. [%s] %s.
forward also to emailadmin de zusätzlich weiterleiten
forward email's to emailadmin de EMail's weiterleiten an
forward email's to emailadmin de E-Mails weiterleiten an
forward only emailadmin de nur weiterleiten
global options emailadmin de Globale Optionen
if using ssl or tls, you must have the php openssl extension loaded. emailadmin de Wenn Sie SSL oder TLS benutzern, müssen Sie die openssl PHP Erweiterung geladen haben.
@ -53,17 +53,17 @@ ldap basedn emailadmin de LDAP BaseDN
ldap server emailadmin de LDAP Server
ldap server accounts dn emailadmin de LDAP-Server Benutzerkonten DN
ldap server admin dn emailadmin de LDAP-Server Administrator DN
ldap server admin password emailadmin de LDAP-Server Administrator Passwort
ldap server admin password emailadmin de LDAP-Server Administrator-Passwort
ldap server hostname or ip address emailadmin de LDAP-Server Hostname oder IP-Adresse
ldap settings emailadmin de LDAP Einstellungen
ldap settings emailadmin de LDAP-Einstellungen
leave empty for no quota emailadmin de leer lassen um Quota zu deaktivieren
mail settings admin de Mail Einstellungen
mail settings admin de E-Mail-Einstellungen
name of organisation emailadmin de Name der Organisation
no alternate email address emailadmin de keine zusätzlichen EMailadressen
no alternate email address emailadmin de keine zusätzlichen E-Mail-Adressen
no encryption emailadmin de keine Verschlüsselung
no forwarding email address emailadmin de keine Weiterleitungsadresse definiert
no message returned. emailadmin de Keine Nachricht zurückgeliefert.
no supported imap authentication method could be found. emailadmin de Keine unterstützte IMAP Authentifizierungsmethode gefunden.
no supported imap authentication method could be found. emailadmin de Keine unterstützte IMAP-Authentifizierungsmethode gefunden.
order emailadmin de Reihenfolge
organisation emailadmin de Organisation
plesk can't rename users --> request ignored emailadmin de Plesk kann keine Benutzer umbenennen --> Anforderung ignoriert
@ -83,7 +83,7 @@ quota settings emailadmin de Quota Einstellungen
remove emailadmin de Entfernen
select type of imap/pop3 server emailadmin de IMAP/POP3-Server Typ auswählen
select type of smtp server emailadmin de SMTP-Server Typ auswählen
server settings emailadmin de Server Einstellungen
server settings emailadmin de Server-Einstellungen
sieve server hostname or ip address emailadmin de Sieve-Server Hostname oder IP-Adresse
sieve server port emailadmin de Sieve-Server Port
sieve settings emailadmin de Sieve Einstellungen

View File

@ -14,7 +14,7 @@
$setup_info['emailadmin']['name'] = 'emailadmin';
$setup_info['emailadmin']['title'] = 'EMailAdmin';
$setup_info['emailadmin']['version'] = '1.2.002';
$setup_info['emailadmin']['version'] = '1.4';
$setup_info['emailadmin']['app_order'] = 10;
$setup_info['emailadmin']['enable'] = 2;
@ -38,11 +38,11 @@
/* Dependencies for this app to work */
$setup_info['emailadmin']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.0.0','1.0.1','1.2','1.3','1.4')
'versions' => Array('1.3','1.4','1.5')
);
$setup_info['felamimail']['depends'][] = array(
'appname' => 'egw-pear',
'versions' => Array('1.4.000')
'versions' => Array('1.4.000','1.5')
);
// installation checks for felamimail
$setup_info['emailadmin']['check_install'] = array(

View File

@ -195,4 +195,11 @@
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.2.002';
}
$test[] = '1.2.002';
function emailadmin_upgrade1_2_002()
{
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.4';
}
?>

View File

@ -14,7 +14,7 @@
$setup_info['et_media']['name'] = 'et_media';
$setup_info['et_media']['title'] = 'eT-Media';
$setup_info['et_media']['version'] = '1.2';
$setup_info['et_media']['version'] = '1.4';
$setup_info['et_media']['app_order'] = 100; // at the end
$setup_info['et_media']['tables'] = array('egw_et_media');
$setup_info['et_media']['enable'] = 1;
@ -34,9 +34,9 @@
/* Dependencies for this app to work */
$setup_info['et_media']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.2','1.3','1.4')
'versions' => Array('1.2','1.3','1.4','1.5')
);
$setup_info['et_media']['depends'][] = array(
'appname' => 'etemplate',
'versions' => Array('1.2','1.3','1.4')
'versions' => Array('1.2','1.3','1.4','1.5')
);

View File

@ -61,7 +61,7 @@
foreach($this->customfields as $name => $field)
{
// check if the customfield get's displayed for type $value, we can have multiple comma-separated types now
if (!empty($field['type2']) && !strstr(','.$field['type2'].',',','.$value.','))
if (!empty($field['type2']) && strpos(','.$field['type2'].',',','.$value.',') === false)
{
continue; // not for our content type
}

View File

@ -769,7 +769,7 @@
}
else // add the tables array
{
if (strstr($fnew,'?>')) // remove a closeing tag
if (strpos($fnew,'?>') !== false) // remove a closeing tag
{
$fnew = str_replace('?>','',$fnew);
}

View File

@ -0,0 +1,246 @@
<?php
/**
* eGroupWare - eTemplate request object
*
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package etemplate
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker@outdoor-training.de>
* @copyright (c) 2007 by Ralf Becker <RalfBecker@outdoor-training.de>
* @version $Id$
*/
/**
* Class to represent the persitent information stored on the server for each eTemplate request
*
* The information is stored in the users session
*
* There are two ways to instanciate a request object:
*
* a) a new request:
*
* $request = new etemplate_request(); $id = $request->id();
*
* b) open or modify an existing request:
*
* if (!($request = etemplate_request::read($id)))
* {
* // request not found
* }
*
* Ajax request can use this object to open the original request by using the id, they have to transmitt back,
* and register further variables, modify the registered ones or delete them.
*/
class etemplate_request
{
/**
* here is the request data stored
*
* @var array
*/
private $data=array();
/**
* Flag if data has been modified and therefor need to be stored again in the session
*
* @var boolean
*/
private $data_modified=false;
/**
* request id
*
* @var string
*/
private $id;
/**
* Enter description here...
*
* @param array $id_data
* @return etemplate_request
*/
function __construct($id=null)
{
if (!$id) $id = $this->request_id();
$this->id = $id;
}
/**
* return the id of this request
*
* @return string
*/
function id()
{
return $this->id;
}
/**
* Read the request via it's id, returns a request_object or false
*
* @param string $id
* @return etempalte_request/boolean the object or false if $id is not found
*/
static function read($id)
{
if (!($data = $GLOBALS['egw']->session->request($id,'etemplate')))
{
return false; // request not found
}
$request = new etemplate_request($id);
$request->data = $data;
return $request;
}
/**
* Register a form-variable to be processed
*
* @param string $form_name form-name
* @param string $type etemplate type
* @param array $data=array() optional extra data
*/
public function set_to_process($form_name,$type,$data=array())
{
if (!$form_name || !$type) return;
$data['type'] = $type;
$this->data['to_process'][$form_name] = $data;
$this->data_modified = true;
}
/**
* Unregister a form-variable to be no longer processed
*
* @param string $form_name form-name
*/
public function unset_to_process($form_name)
{
unset($this->data['to_process'][$form_name]);
$this->data_modified = true;
}
/**
* return the data of a form-var to process or the whole array
*
* @param string $form_name=null
* @return array
*/
public function get_to_process($form_name=null)
{
return $form_name ? $this->data['to_process'][$form_name] : $this->data['to_process'];
}
/**
* check if something set for a given $form_name
*
* @param string $form_name
* @return boolean
*/
public function isset_to_process($form_name)
{
return isset($this->data['to_process'][$form_name]);
}
/**
* magic function to set all request-vars, used eg. as $request->method = 'app.class.method';
*
* @param string $var
* @param mixed $val
*/
function __set($var,$val)
{
if ($this->data[$var] !== $val)
{
$this->data[$var] = $val;
$this->data_modified = true;
}
}
/**
* magic function to access the request-vars, used eg. as $method = $request->method;
*
* @param string $var
* @return mixed
*/
function __get($var)
{
return $this->data[$var];
}
/**
* creates a new request-id via microtime()
*
* @return string
*/
function _request_id()
{
list($msec,$sec) = explode(' ',microtime());
$time = 100 * $sec + (int)(100 * $msec); // gives precision of 1/100 sec
$id = $GLOBALS['egw_info']['flags']['currentapp'] .':'. $time;
return $id;
}
/**
* saves content,readonlys,template-keys, ... via eGW's app_session function
*
* As a user may open several windows with the same content/template wie generate a location-id from microtime
* which is used as location for request to descriminate between the different windows. This location-id
* is then saved as a hidden-var in the form. The above mentions session-id has nothing to do / is different
* from the session-id which is constant for all windows opened in one session.
*/
function __destruct()
{
if ($this->data_modified) $GLOBALS['egw']->session->app_session($this->id,'etemplate',$this->data);
if (substr($GLOBALS['egw_info']['server']['sessions_type'],0,4) == 'php4' && !$this->garbage_collection_done)
{
$this->php4_request_garbage_collection();
}
}
/**
* a little bit of garbage collection for php4 sessions (their size is limited by memory_limit)
*
* With constant eTemplate use it can grow quite big and lead to unusable sessions (php terminates
* before any output with "Allowed memory size of ... exhausted").
* We delete now sessions once used after 10min and sessions never or multiple used after 60min.
*/
private function _php4_request_garbage_collection()
{
// now we are on php4 sessions and do a bit of garbage collection
$app_sessions =& $_SESSION[EGW_SESSION_VAR]['app_sessions']['etemplate'];
$session_used =& $app_sessions['session_used'];
if ($this->id)
{
//echo "session_used[$id_used]='".$session_used[$id_used]."'<br/>\n";
++$session_used[$this->id]; // count the number of times a session got used
}
$this->garbage_collection_done = true;
if (count($app_sessions) < 20) return; // we dont need to care
list($msec,$sec) = explode(' ',microtime());
$now = 100 * $sec + (int)(100 * $msec); // gives precision of 1/100 sec
foreach(array_keys($app_sessions) as $id)
{
list(,$time) = explode(':',$id);
if (!$time) continue; // other data, no session
//echo ++$n.') '.$id.': '.(($now-$time)/100.0)."secs old, used=".$session_used[$id].", size=".strlen($app_sessions[$id])."<br>\n";
if ($session_used[$id] == 1 && $time < $now - 10*6000 || // session used and older then 10min
$time < $now - 60*6000) // session not used and older then 1h
{
//echo "<p>boetemplate::php4_session_garbage_collection('$id_used'): unsetting session '$id' (now=$now)</p>\n";
unset($app_sessions[$id]);
unset($session_used[$id]);
}
}
}
}

View File

@ -496,7 +496,7 @@
{
$cols[$widget['name']] = $label;
}
elseif (strstr($cols[$col],$label) === false)
elseif (strpos($cols[$col],$label) === false)
{
$cols[$col] .= ($cols[$col] ? ', ' : '').$label;
$cols['name2col'][$col] = $col;

View File

@ -328,7 +328,7 @@ class so_sql
{
foreach($query as $col => $val)
{
if (is_int($col) || strstr($join,$col) === false) continue;
if (is_int($col) || strpos($join,$col) === false) continue;
$query[] = $this->db->expression($this->table_name,$this->table_name.'.',array($col=>$val));
unset($query[$col]);
}

View File

@ -972,7 +972,7 @@
{
if (($keys['name'] != $last['name'] || // write only newest version
$keys['template'] != $last['template']) &&
!strstr($keys['name'],'test'))
strpos($keys['name'],'test') === false)
{
$tpl->read($keys);
$to_trans += $tpl->getToTranslate();
@ -1340,7 +1340,7 @@
foreach($strings as $str)
{
if (strlen($str) > 1 && $str{0} != '@' && $str{0} != '$' &&
strstr($str,'$row') === false && strstr($str,'$cont') === false)
strpos($str,'$row') === false && strpos($str,'$cont') === false)
{
$to_trans[trim(strtolower($str))] = $str;
}

View File

@ -89,13 +89,13 @@
$tab_widget =& new etemplate('etemplate.tab_widget');
$tab_widget->no_onclick = true;
if ($value && !strstr($value,'.'))
if ($value && strpos($value,'.') === false)
{
$value = $tmpl->name . '.' . $value;
}
foreach($names as $k => $name)
{
if (!strstr($name,'.'))
if (strpos($name,'.') === false)
{
$name = $names[$k] = $tmpl->name . '.' . $name;
}
@ -112,7 +112,7 @@
foreach($names as $k => $name)
{
if (!strstr($name,'.'))
if (strpos($name,'.') === false)
{
$name = $names[$k] = $tmpl->name . '.' . $name;
}

View File

@ -928,7 +928,7 @@
{
$help = lang($help);
}
if (($use_tooltip_for_help = strstr($help,'<') && strip_tags($help) != $help)) // helptext is html => use a tooltip
if (($use_tooltip_for_help = strpos($help,'<') !== false && strip_tags($help) != $help)) // helptext is html => use a tooltip
{
$options .= $this->html->tooltip($help);
}
@ -1169,11 +1169,11 @@
$onclick = ($onclick ? preg_replace('/^return(.*);$/','if (\\1) ',$onclick) : '').$cell['onchange'];
}
$html .= !$readonly ? $this->html->submit_button($form_name,$label,$onclick,
strlen($label) <= 1 || $cell['no_lang'],$options,$img,$app,(($type=='buttononly') ? 'button' : 'submit')) :
strlen($label) <= 1 || $cell['no_lang'],$options,$img,$app,$type == 'buttononly' ? 'button' : 'submit') :
$this->html->image($app,$ro_img);
}
$extra_label = False;
if (!$readonly)
if (!$readonly && $type != 'buttononly') // input button, are never submitted back!
{
$GLOBALS['egw_info']['etemplate']['to_process'][$form_name] = $cell['type'];
if (strtolower($name) == 'cancel')

View File

@ -304,8 +304,8 @@
if($this->data_type != 'node')
{
$found_at = strstr($this->data,'PHP_SERIALIZED_OBJECT&:');
if($found_at != False)
$found_at = strpos($this->data,'PHP_SERIALIZED_OBJECT&:');
if($found_at !== False)
{
return unserialize(str_replace ('PHP_SERIALIZED_OBJECT&:', '', $this->data));
}
@ -359,8 +359,8 @@
$retval['attributes'] = $this->attributes;
if($this->data_type != 'node')
{
$found_at = strstr($this->data,'PHP_SERIALIZED_OBJECT&:');
if($found_at != False)
$found_at = strpos($this->data,'PHP_SERIALIZED_OBJECT&:');
if($found_at !== False)
{
$retval['value'] = unserialize(str_replace ('PHP_SERIALIZED_OBJECT&:', '', $this->data));
}

File diff suppressed because one or more lines are too long

View File

@ -84,6 +84,7 @@ creates an english ('en') langfile from label and helptexts (for application in
css class for the table-tag etemplate fr Classe CSS pour le tag de la table
css properties etemplate fr propriétés CSS
css-class name for this row, preset: 'nmh' = nextmatch header, 'nmr' = alternating nm row, 'nmr0'+'nmr1' nm rows etemplate fr Nom de la classe CSS pour cette ligne, préréglé: 'nmh' = entête prochaine correspondance, 'nmr' = alterne la ligne prochaine correspondance, 'nmr0'+'nmr1' lignes prochaines correspondances
css-class name for this row, preset: 'th' = header, 'row' = alternating row, 'row_off'+'row_on' rows etemplate fr nom de la classe CSS pour cette ligne, préréglé: 'th' = en-tête, 'row' = ligne alternante, 'row_off'+'row_on' lignes
css-styles etemplate fr Styles CSS
custom etemplate fr personnalisé
custom fields etemplate fr champs personnalisé

View File

@ -13,7 +13,7 @@
/* $Id$ */
$setup_info['etemplate']['name'] = 'etemplate';
$setup_info['etemplate']['version'] = '1.2';
$setup_info['etemplate']['version'] = '1.4';
$setup_info['etemplate']['app_order'] = 60; // just behind the developers-tools
$setup_info['etemplate']['tables'] = array('egw_etemplate');
$setup_info['etemplate']['enable'] = 1;
@ -39,6 +39,6 @@
/* Dependencies for this app to work */
$setup_info['etemplate']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.0.0','1.0.1','1.2','1.3')
'versions' => Array('1.3','1.4','1.5')
);
?>

View File

@ -92,4 +92,18 @@
$GLOBALS['setup_info']['etemplate']['currentver'] = '1.2';
return $GLOBALS['setup_info']['etemplate']['currentver'];
}
$test[] = '1.2';
function etemplate_upgrade1_2()
{
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_etemplate','et_modified',array(
'type' => 'int',
'precision' => '8',
'nullable' => False,
'default' => '0'
));
return $GLOBALS['setup_info']['etemplate']['currentver'] = '1.4';
}
?>

View File

@ -860,7 +860,7 @@
$uiinfolog->import_mail(
$this->sessionData['to'],
$this->sessionData['subject'],
$this->sessionData['body'],
$this->convertHTMLToText($this->sessionData['body']),
$this->sessionData['attachments']
);
}

View File

@ -1269,6 +1269,11 @@
foreach((array)$headersNew as $headerObject) {
#if($count == 0) _debug_array($headerObject);
$uid = $headerObject['UID'];
// make dates like "Mon, 23 Apr 2007 10:11:06 UT" working with strtotime
if(substr($headerObject['DATE'],-2) === 'UT') {
$headerObject['DATE'] .= 'C';
}
$retValue['header'][$sortOrder[$uid]]['subject'] = $this->decode_header($headerObject['SUBJECT']);
$retValue['header'][$sortOrder[$uid]]['size'] = $headerObject['SIZE'];

View File

@ -19,8 +19,8 @@ all address books felamimail de Alle Adressb
all folders felamimail de Alle Ordner
all of felamimail de mit allen
allow images from external sources in html emails felamimail de Erlaube Bilder von externen Quellen in HTML emails
allways a new window felamimail de jede Mail in einem neuen Fenster
always show html emails felamimail de HTML Emails mmer anzeigen
allways a new window felamimail de jede E-Mail in einem neuen Fenster
always show html emails felamimail de HTML-E-Mails immer anzeigen
and felamimail de und
any of felamimail de mit einem
any status felamimail de Alle Stati
@ -50,7 +50,7 @@ close all felamimail de Schlie
close this page felamimail de Diese Seite schließen
close window felamimail de Fenster schließen
color felamimail de Farbe
compose felamimail de EMail schreiben
compose felamimail de E-Mail schreiben
compress folder felamimail de Ordner komprimieren
condition felamimail de Bedingung
configuration felamimail de Konfiguration
@ -90,10 +90,10 @@ discard felamimail de verwerfen
discard message felamimail de Nachricht verwerfen
display message in new window felamimail de Nachricht in neuem Fenster anzeigen
display messages in multiple windows felamimail de Nachrichten in mehreren Fenstern anzeigen
display of html emails felamimail de HTML EMails anzeigen
display of html emails felamimail de HTML-E-Mails anzeigen
display only when no plain text is available felamimail de nur anzeigen wenn kein Plain Text vorhanden ist
display preferences felamimail de Anzeige Einstellungen
displaying html messages is disabled felamimail de Die Anzeige von HTML EMails ist deaktiviert.
displaying html messages is disabled felamimail de Die Anzeige von HTML-E-Mails ist deaktiviert.
do it! felamimail de Mach es!
do not use sent felamimail de Gesendete Objekte (Sent) nicht verwenden
do not use trash felamimail de Gelöschte Objekte (Trash) nicht verwenden
@ -104,7 +104,7 @@ does not contain felamimail de enth
does not match felamimail de trifft nicht zu
does not match regexp felamimail de trift nicht zu regulärer Ausdruck
don't use draft folder felamimail de keine Vorlagen Ordner verwenden
don't use sent felamimail de Keinen gesendenten EMail speichern
don't use sent felamimail de Keinen gesendeten E-Mails speichern
don't use trash felamimail de Keinen Mülleimer verwenden
down felamimail de runter
download felamimail de Speichern
@ -113,15 +113,15 @@ draft folder felamimail de Vorlagen Ordner
e-mail felamimail de E-Mail
e-mail address felamimail de E-Mailadresse
e-mail folders felamimail de E-Mail Ordner
edit email forwarding address felamimail de Bearbeiten der EMailweiterleitung
edit email forwarding address felamimail de Bearbeiten der E-Mail-Weiterleitung
edit filter felamimail de Filter bearbeiten
edit rule felamimail de Regel bearbeiten
edit selected felamimail de Ausgewählte bearbeiten
edit vacation settings felamimail de Abwesenheitsnotiz bearbeiten
email address felamimail de EMailadresse
email address felamimail de E-Mail-Adresse
email forwarding address felamimail de Zieladresse
email signature felamimail de EMail Signatur
emailaddress felamimail de EMailadresse
email signature felamimail de E-Mail-Signatur
emailaddress felamimail de E-Mail-Adresse
empty trash felamimail de Trash-Ordner leeren
enable felamimail de Aktivieren
encrypted connection felamimail de verschlüsselte Verbindung
@ -184,7 +184,7 @@ identifying name felamimail de Identifizierender Name
identity felamimail de Identität
if felamimail de Wenn
if from contains felamimail de wenn Von enthält
if mail header felamimail de wenn EMail Header enthält
if mail header felamimail de wenn E-Mail-Header enthält
if message size felamimail de wenn Nachrichtengröße
if subject contains felamimail de wenn Betreff enthält
if to contains felamimail de wenn An enthält
@ -210,7 +210,7 @@ javascript felamimail de JavaScript
jumping to end felamimail de springe zum Ende
jumping to start felamimail de springe zum Anfang
keep a copy of the message in your inbox felamimail de eine Kopie der Nachricht in der INBOX behalten
keep local copy of email felamimail de Kopie der EMail behalten
keep local copy of email felamimail de Kopie der E-Mail behalten
kilobytes felamimail de Kilobytes
language felamimail de Sprache
last name felamimail de Nachname
@ -220,12 +220,12 @@ less than felamimail de kleiner als
light gray felamimail de Hellgrau
list all felamimail de Alle anzeigen
loading felamimail de lade
location of buttons when composing felamimail de Ort der Knöpfe beim EMail schreiben
location of buttons when composing felamimail de Ort der Knöpfe beim E-Mail schreiben
mail server login type admin de Typ der Mailserver Anmeldung
mail settings felamimail de EMail Einstellungen
mail settings felamimail de E-Mail-Einstellungen
mainmessage felamimail de Hauptnachricht
manage emailaccounts preferences de EMailkonten verwalten
manage emailfilter / vacation preferences de Verwalten der EMailfilter und Abwesenheitsnotiz
manage emailaccounts felamimail de E-Mail-Konten verwalten
manage emailfilter / vacation preferences de Verwalten der E-Mail-Filter und Abwesenheitsnotiz
manage folders common de Ordner verwalten
manage sieve common de Sieve Scripte verwalten
manage signatures felamimail de Signaturen verwalten
@ -267,7 +267,7 @@ no messages were selected. felamimail de Es wurde keine NAchricht ausgew
no plain text part found felamimail de Kein Text Teil gefunden.
no previous message felamimail de Keine vorherige Nachricht vorhanden
no supported imap authentication method could be found. felamimail de Keine unterstützte IMAP Authentifizierungsmethode gefunden.
no valid emailprofile selected!! felamimail de Sie haben kein gültiges Email Profil ausgewählt!
no valid emailprofile selected!! felamimail de Sie haben kein gültiges E-Mail-Profil ausgewählt!
none felamimail de kein
on behalf of felamimail de im Auftrag von
one address is not valid felamimail de Eine Adresse ist ungültig
@ -290,7 +290,7 @@ port felamimail de Port
posting felamimail de sende
previous felamimail de vorherige
previous message felamimail de vorherige Nachricht
print it felamimail de EMail drucken
print it felamimail de E-Mail drucken
print this page felamimail de Diese Seite drucken
quicksearch felamimail de Schnellsuche
read felamimail de gelesen
@ -311,7 +311,7 @@ reply all felamimail de allen Antworten
reply to felamimail de Antwort an
replyto felamimail de Antwort an
respond felamimail de Antworte
respond to mail sent to felamimail de Anworte auf EMails die gesendet werden an
respond to mail sent to felamimail de Antworte auf E-Mails die gesendet werden an
return felamimail de Zurück
return to options page felamimail de zurück zu Einstellungen
right felamimail de Rechts
@ -329,11 +329,11 @@ search felamimail de Suchen
search for felamimail de Suchen nach
select felamimail de Auswählen
select all felamimail de alle auswählen
select emailprofile felamimail de EMailprofil auswählen
select emailprofile felamimail de E-Mail-Profil auswählen
select folder felamimail de Ordner auswählen
select your mail server type admin de Wählen Sie den Typ des Mailservers
send felamimail de Senden
send a reject message felamimail de Ablehnungsemail senden
send a reject message felamimail de Ablehnungs-E-Mail senden
sent folder felamimail de Ordner für gesendete Nachrichten
server supports mailfilter(sieve) felamimail de Server unterstützt Mailfilter(Sieve)
show header felamimail de Kopfzeilen anzeigen
@ -395,7 +395,7 @@ unsubscribed successfully! felamimail de Erfolgreich abbestellt
up felamimail de hoch
updating message status felamimail de aktualisiere Nachrichtenstatus
updating view felamimail de aktualisiere Ansicht
use <a href="%1">emailadmin</a> to create profiles felamimail de benutzen Sie <a href="%1">EmailAdmin</a> um Profile zu erstellen
use <a href="%1">emailadmin</a> to create profiles felamimail de benutzen Sie <a href="%1">EMailAdmin</a> um Profile zu erstellen
use a signature felamimail de Signatur benutzen
use a signature? felamimail de Eine Signatur benutzen?
use addresses felamimail de Adresse benutzen

View File

@ -12,7 +12,7 @@
$setup_info['felamimail']['name'] = 'felamimail';
$setup_info['felamimail']['title'] = 'FeLaMiMail';
$setup_info['felamimail']['version'] = '1.3.006';
$setup_info['felamimail']['version'] = '1.4';
$setup_info['felamimail']['app_order'] = 2;
$setup_info['felamimail']['enable'] = 1;
@ -40,15 +40,15 @@
/* Dependencies for this app to work */
$setup_info['felamimail']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.2','1.3','1.4')
'versions' => Array('1.3','1.4','1.5')
);
$setup_info['felamimail']['depends'][] = array(
'appname' => 'emailadmin',
'versions' => Array('1.2')
'versions' => Array('1.3','1.4','1.5')
);
$setup_info['felamimail']['depends'][] = array(
'appname' => 'egw-pear',
'versions' => Array('1.4.000')
'versions' => Array('1.4.000','1.5')
);
// installation checks for felamimail
$setup_info['felamimail']['check_install'] = array(

View File

@ -418,4 +418,11 @@
return $GLOBALS['setup_info']['felamimail']['currentver'] = '1.3.006';
}
$test[] = '1.3.006';
function felamimail_upgrade1_3_006()
{
return $GLOBALS['setup_info']['felamimail']['currentver'] = '1.4';
}
?>

View File

@ -34,9 +34,6 @@
function bofilemanager()
{
$this->so =& CreateObject('filemanager.sofilemanager');
$this->so->db_init();
$this->vfs =& CreateObject('phpgwapi.vfs');
error_reporting(4);

View File

@ -1,54 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare - Filemanager *
* http://www.egroupware.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$ */
class sofilemanager
{
var $db;
function sofilemanager()
{
$this->db = clone($GLOBALS['egw']->db);
}
/* Any initializations that need to be done */
function db_init()
{
$this->db->Auto_Free = 0;
}
/* General SQL query */
function db_query($query)
{
return $this->db->query($query);
}
/* Fetch next array for $query_id */
function db_fetch_array($query_id)
{
// $egw->db->Query_ID = $query_id;
$this->db->next_record();
return $this->db->Record;
}
/*
General wrapper for all other db calls
Calls in here are simply returned, so not all will work
*/
function db_call($function, $query_id)
{
// $egw->db->Query_ID = $query_id;
return $this->db->$function();
}
}
?>

View File

@ -1430,7 +1430,7 @@
}
/* TODO is this right or should it be a single $ ? */
if($$this->newfile_or_dir[strlen($this->newfile_or_dir)-1] == ' ' || $this->newfile_or_dir[0] == ' ')
if($this->newfile_or_dir[strlen($this->newfile_or_dir)-1] == ' ' || $this->newfile_or_dir[0] == ' ')
{
$this->messages[]= $GLOBALS['egw']->common->error_list(array(lang('Cannot create directory because it begins or ends in a space')));
}

View File

@ -13,7 +13,7 @@
$setup_info['filemanager']['name'] = 'filemanager';
$setup_info['filemanager']['title'] = 'Filemanager';
$setup_info['filemanager']['version'] = '1.2';
$setup_info['filemanager']['version'] = '1.4';
$setup_info['filemanager']['app_order'] = 6;
$setup_info['filemanager']['enable'] = 1;
@ -28,7 +28,7 @@
/* Dependencies for this app to work */
$setup_info['filemanager']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => array('1.3')
'versions' => array('1.3','1.4','1.5')
);
// installation checks for filemanager

View File

@ -183,13 +183,6 @@ class boinfolog
$this->enums['type'] += $this->config->config_data['types'];
//echo "types:<pre>"; print_r($this->enums['type']); echo "</pre>\n";
}
// sort types by there translation
foreach($this->enums['type'] as $key => $val)
{
if (($val = lang($key)) != $key.'*') $this->enums['type'][$key] = lang($key);
}
natcasesort($this->enums['type']);
if ($this->config->config_data['group_owners']) $this->group_owners = $this->config->config_data['group_owners'];
if (isset($this->config->config_data['customfields']) && is_array($this->config->config_data['customfields']))
@ -221,6 +214,13 @@ class boinfolog
$this->implicit_rights = 'edit';
}
}
// sort types by there translation
foreach($this->enums['type'] as $key => $val)
{
if (($val = lang($key)) != $key.'*') $this->enums['type'][$key] = lang($key);
}
natcasesort($this->enums['type']);
$this->user = $GLOBALS['egw_info']['user']['account_id'];
$this->tz_offset = $GLOBALS['egw_info']['user']['preferences']['common']['tz_offset'];
@ -507,7 +507,10 @@ class boinfolog
{
$responsible =& $values['info_responsible'];
}
$status_only = in_array($this->user, $responsible); // responsible has implicit right to change status
if (!($status_only = in_array($this->user, $responsible))) // responsible has implicit right to change status
{
$status_only = !!array_intersect($responsible,array_keys($GLOBALS['egw']->accounts->memberships($this->user)));
}
}
if ($values['info_id'] && !$this->check_access($values['info_id'],EGW_ACL_EDIT) && !$status_only ||
!$values['info_id'] && $values['info_id_parent'] && !$this->check_access($values['info_id_parent'],EGW_ACL_ADD))
@ -559,7 +562,7 @@ class boinfolog
{
$values['info_status'] = 'done';
}
if (count($values['info_responsible']) && $values['info_status'] == 'offer')
if ($values['info_responsible'] && $values['info_status'] == 'offer')
{
$values['info_status'] = 'not-started'; // have to match if not finished
}

View File

@ -469,9 +469,23 @@ class uiinfolog
return $this->edit($do_id,$action,$action_id,'',$called_as);
case 'delete':
if (!($values['msg'] = $this->delete($do_id,$called_as,$called_as ? '' : 'index'))) return;
// did we deleted the entries, whos subentries we are showing?
if ($action == 'sp' && $action_id == $do_id)
{
// redirect to our referer or reset the subentry view
if (!$called_as && $own_referer)
{
$this->tmpl->location($own_referer); // eg. redirect back to calendar
}
else
{
unset($action_id); unset($action);
}
}
break;
case 'close':
return $this->close($do_id,$called_as,$do == 'close_subs');
$this->close($do_id,$called_as);
break;
case 'sp':
return $this->edit(0,'sp',$do_id,'',$called_as);
case 'view':
@ -578,7 +592,7 @@ class uiinfolog
}
}
}
return $referer ? $this->tmpl->location($referer) : $this->index();
if ($referer) $this->tmpl->location($referer);
}
function delete($values=0,$referer='',$called_by='')
@ -658,11 +672,11 @@ class uiinfolog
{
//echo "uiinfolog::edit: content="; _debug_array($content);
$info_id = $content['info_id'];
$action = $content['action'];
$action_id = $content['action_id'];
$referer = $content['referer'];
$no_popup = $content['no_popup'];
$caller = $content['caller'];
$action = $content['action']; unset($content['action']);
$action_id = $content['action_id']; unset($content['action_id']);
$referer = $content['referer']; unset($content['referer']);
$no_popup = $content['no_popup']; unset($content['no_popup']);
$caller = $content['caller']; unset($content['caller']);
// convert custom from to 0 or 1, it's unset if not checked, which starts the detection
$content['info_custom_from'] = (int)$content['info_custom_from'];
@ -977,6 +991,7 @@ class uiinfolog
$content['info_owner'] = $this->user;
}
}
$preserv = $content;
// for implizit edit of responsible user make all fields readonly, but status and percent
if ($info_id && !$this->bo->check_access($info_id,EGW_ACL_EDIT) && $this->bo->is_responsible($content))
{
@ -985,6 +1000,7 @@ class uiinfolog
{
$readonlys[$name] = true;
}
unset($readonlys[$tabs]);
// need to set all customfields extra, as they are not set if empty
foreach($this->bo->customfields as $name => $value)
{
@ -1034,27 +1050,13 @@ class uiinfolog
'info_priority' => $this->bo->enums['priority'],
'info_confirm' => $this->bo->enums['confirm'],
'info_status' => $this->bo->status[$content['info_type']]
),$readonlys,array( // preserved values
),$readonlys,$preserv+array( // preserved values
'info_id' => $info_id,
'info_id_parent'=> $content['info_id_parent'],
'info_link_id' => $content['info_link_id'],
'info_owner' => $content['info_owner'],
'info_datemodified' => $content['info_datemodified'],
'info_modifier' => $content['info_modifier'],
'action' => $action,
'action_id' => $action_id,
'referer' => $referer,
'no_popup' => $no_popup,
'link_to' => array('to_id' => $content['link_to']['to_id']), // in case tab gets not viewed
'blur_title' => $content['blur_title'],
'old_pm_id' => $old_pm_id,
// preserv project fields, in case project tab is disabled, but user has rights to edit the entry
'pl_id' => $content['pl_id'],
'info_price' => $content['info_price'],
'info_used_time' => $content['info_used_time'],
'info_planned_time' => $content['info_planned_time'],
// preserve the type in case it's readonly (no delete rights from group owner)
'info_type' => $content['info_type'],
),$no_popup ? 0 : 2);
}
@ -1195,7 +1197,7 @@ class uiinfolog
* 2. with $_GET['uid] = someuid (we come from display mail)
*
* @author Cornelius Weiss <nelius@cwtech.de>
* @param unknown_type $_to_emailAddress
* @param string $_to_emailAddress
* @param string $_subject
* @param string $_body
* @param array $_attachments
@ -1239,7 +1241,7 @@ class uiinfolog
$bofelamimail->reopen($mailbox);
$headers = $bofelamimail->getMessageHeader($uid);
$bodyParts = $bofelamimail->getMessageBody($uid,'');
$bodyParts = $bofelamimail->getMessageBody($uid,'text/plain');
$attachments = $bofelamimail->getMessageAttachments($uid);
if (isset($headers['FROM'])) $mailaddress = $bofelamimail->decode_header($headers['FROM']);

View File

@ -110,7 +110,7 @@ empty for all infolog de leer f
enddate infolog de Fällig am
enddate can not be before startdate infolog de Das Fälligkeitsdatum kann nicht vor dem Startdatum liegen
enter a custom contact, leave empty if linked entry should be used infolog de benutzerdefinierter Kontakt, leer lassen um die Daten der Verknüpfung zu verwenden
enter a custom phone/email, leave empty if linked entry should be used infolog de benutzerdefinierte Telefonnumer/Emailadresse, leer lassen um die Daten der Verknüpfung zu verwenden
enter a custom phone/email, leave empty if linked entry should be used infolog de benutzerdefinierte Telefonnumer/E-Mail-Adresse, leer lassen um die Daten der Verknüpfung zu verwenden
enter a textual description of the log-entry infolog de geben Sie eine textliche Beschreibung des Eintrags ein
enter the query pattern infolog de geben Sie ein Suchmuster ein
entry and all files infolog de Eintrag und alle Dateien
@ -200,7 +200,7 @@ pattern for search in projects infolog de Muster f
percent completed infolog de Prozent erledigt
permission denied infolog de Zugriff verweigert
phone infolog de Anruf
phone/email infolog de Telefon/Email
phone/email infolog de Telefon/E-Mail
phonecall infolog de Telefonanruf
planned infolog de geplant
planned time infolog de geplante Zeit

View File

@ -123,8 +123,10 @@ finish infolog sl Konec
for which types should this field be used infolog sl Za ketere tipe naj bo to polje uporabljeno
from infolog sl Od
general infolog sl Splošno
group owner for infolog sl Skupinski lastnik za
high infolog sl Visoko
id infolog sl Šifra
if a type has a group owner, all entries of that type will be owned by the given group and not the user who created it! infolog sl Če ima vrsta skupinskega lastnika, bo lastnik vseh vnosov te vrste dana skupina in NE uporabnik, ki jo je ustvaril!
if not set, the line with search and filters is hidden for less entries then "max matches per page" (as defined in your common preferences). infolog sl Če ni nastavljen, je vrstica za iskanje in filtriranje skrita za manj vnosov kakor "maksimalno število zadetkov na stran" (kakor je definirano v vaših nastavitvah.
import infolog sl Uvoz
import next set infolog sl Uvozi naslednji niz

View File

@ -12,7 +12,7 @@
/* $Id$ */
$setup_info['infolog']['name'] = 'infolog';
$setup_info['infolog']['version'] = '1.3.001';
$setup_info['infolog']['version'] = '1.4';
$setup_info['infolog']['app_order'] = 5;
$setup_info['infolog']['tables'] = array('egw_infolog','egw_infolog_extra');
$setup_info['infolog']['enable'] = 1;
@ -65,11 +65,11 @@
/* Dependencies for this app to work */
$setup_info['infolog']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.0.1','1.2','1.3')
'versions' => Array('1.3','1.4','1.5')
);
$setup_info['infolog']['depends'][] = array(
'appname' => 'etemplate',
'versions' => Array('1.0.0','1.0.1','1.2','1.3')
'versions' => Array('1.3','1.4','1.5')
);

View File

@ -568,3 +568,9 @@
return $GLOBALS['setup_info']['infolog']['currentver'] = '1.3.001';
}
$test[] = '1.3.001';
function infolog_upgrade1_3_001()
{
return $GLOBALS['setup_info']['infolog']['currentver'] = '1.4';
}

View File

@ -18,7 +18,7 @@
</rows>
</grid>
</template>
<template id="infolog.edit.links" template="" lang="" group="0" version="1.0.1.001">
<template id="infolog.edit.links" template="" lang="" group="0" version="1.3.001">
<grid width="100%" height="245" overflow="auto">
<columns>
<column width="100"/>
@ -31,6 +31,9 @@
<row class="row" disabled="@status_only">
<link-to span="all" id="link_to"/>
</row>
<row>
<link-add span="all" id="link_to"/>
</row>
<row class="th">
<description span="all" value="Existing links"/>
</row>

View File

@ -183,7 +183,7 @@
foreach($time as $t)
{
if (strstr($t,'-') !== False && strstr($t,'/') === False)
if (strpos($t,'-') !== False && strpos($t,'/') === False)
{
list($min,$max) = $arr = explode('-',$t);
@ -638,7 +638,7 @@
$times['error'] .= $line;
}
}
elseif (strstr($line,$this->cronline) !== False)
elseif (strpos($line,$this->cronline) !== False)
{
$cron_units = array('min','hour','day','month','dow');
foreach($cron_units as $n => $u)

View File

@ -300,7 +300,7 @@ class bolink extends solink
{
if (is_array($id))
{
if (!strstr($app_link_id,':')) $app_link_id = $this->temp_link_id($app2,$id2); // create link_id of temporary link, if not given
if (strpos($app_link_id,':') === false) $app_link_id = $this->temp_link_id($app2,$id2); // create link_id of temporary link, if not given
if (isset($id[$app_link_id]) && is_array($id[$app_link_id])) // check for unlinked-marker
{
@ -697,7 +697,7 @@ class bolink extends solink
@reset($this->link_pathes);
while ((list($valid,$trans) = @each($this->link_pathes)) && !$tfname)
{ // check case-insensitive for WIN etc.
$check = $valid[0] == '\\' || strstr(':',$valid) ? 'eregi' : 'ereg';
$check = $valid[0] == '\\' || strpos(':',$valid) !== false ? 'eregi' : 'ereg';
$valid2 = str_replace('\\','/',$valid);
//echo "<p>attach_file: ereg('".$this->send_file_ips[$valid]."', '$file[ip]')=".ereg($this->send_file_ips[$valid],$file['ip'])."</p>\n";
if ($check('^('.$valid2.')(.*)$',$file['path'],$parts) &&
@ -870,7 +870,7 @@ class bolink extends solink
*/
function is_win_path($path)
{
return $path[0] == '\\' || strstr($path,':');
return $path{0} == '\\' || $path{1} == ':';
}
/**

View File

@ -76,23 +76,23 @@
/*
Determine platform
*/
if(strstr($HTTP_USER_AGENT,'Win'))
if(strpos($HTTP_USER_AGENT,'Win') !== false)
{
$this->BROWSER_PLATFORM='Win';
}
elseif(strstr($HTTP_USER_AGENT,'Mac'))
elseif(strpos($HTTP_USER_AGENT,'Mac') !== false)
{
$this->BROWSER_PLATFORM='Mac';
}
elseif(strstr($HTTP_USER_AGENT,'Linux'))
elseif(strpos($HTTP_USER_AGENT,'Linux') !== false)
{
$this->BROWSER_PLATFORM='Linux';
}
elseif(strstr($HTTP_USER_AGENT,'Unix'))
elseif(strpos($HTTP_USER_AGENT,'Unix') !== false)
{
$this->BROWSER_PLATFORM='Unix';
}
elseif(strstr($HTTP_USER_AGENT,'Beos'))
elseif(strpos($HTTP_USER_AGENT,'Beos') !== false)
{
$this->BROWSER_PLATFORM='Beos';
}

View File

@ -777,7 +777,7 @@
while ($f = readdir($d))
{
$ext = strtolower(strrchr($f,'.'));
if (($ext == '.gif' || $ext == '.png') && strstr($f,'navbar') === False)
if (($ext == '.gif' || $ext == '.png') && strpos($f,'navbar') === False)
{
return True;
}
@ -844,7 +844,7 @@
$imagedir = EGW_SERVER_ROOT . '/'.$appname.'/templates/'.$GLOBALS['egw_info']['server']['template_set'].'/images';
$imagedir_default = EGW_SERVER_ROOT . '/'.$appname.'/templates/idots/images';
$imagedir_olddefault = EGW_SERVER_ROOT . '/'.$appname.'/images';
$imagedir_olddefault = EGW_SERVER_ROOT . '/'.$appname.'/templates/default/images';
if ($this->is_image_dir ($imagedir))
{
@ -856,7 +856,7 @@
}
elseif ($this->is_image_dir ($imagedir_olddefault))
{
return $GLOBALS['egw_info']['server']['webserver_url'].'/'.$appname.'/images';
return $GLOBALS['egw_info']['server']['webserver_url'].'/'.$appname.'/templates/default/images';
}
else
{

View File

@ -130,7 +130,7 @@ class contacts extends bocontacts
$fields = explode(',',$fields);
}
if (!$order) $order = $fields ? $fields[0] : 'org_name,n_family,n_given';
if ($order && !strstr($order,'_')) $order = 'contact_'.$order;
if ($order && strpos($order,'_') === false) $order = 'contact_'.$order;
//echo '<p>contacts::search('.($cquery ? $cquery.'*' : $query).','.print_r($fields,true).",'$order $sort','','".($cquery ? '' : '%')."',false,'OR',".(!$limit ? 'false' : "array($start,$limit)").",".print_r($sfilter,true).");</p>\n";
$rows =& $this->search($cquery ? $cquery.'*' : $query,$fields,$order.($sort ? ' '.$sort : ''),'',

View File

@ -448,8 +448,7 @@ class egw_framework
if ($data['status'] == 4)
{
$apps[$app]['target'] = ' target="'.$app.'" onClick="'."if (this != '') { window.open(this+'".
(strstr($apps[$app]['url'],'?') ||
ini_get('session.use_trans_sid') && substr($GLOBALS['egw_info']['server']['sessions_type'],0,4) == 'php4' ?'&':'?').
(strpos($apps[$app]['url'],'?') !== false ? '&' : '?').
"referer='+encodeURI(location),this.target,'width=800,height=600,scrollbars=yes,resizable=yes'); return false; } else { return true; }".'"';
}
elseif(isset($GLOBALS['egw_info']['flags']['navbar_target']) && $GLOBALS['egw_info']['flags']['navbar_target'])

View File

@ -150,16 +150,16 @@ class html
$content);
// First match things beginning with http:// (or other protocols)
$Protocol = '(http|ftp|https):\/\/';
$Domain = '([\w]+.[\w]+)';
$Protocol = '(http:\/\/|(ftp:\/\/|https:\/\/))'; // only http:// gets removed, other protocolls are shown
$Domain = '([\w-]+\.[\w-.]+)';
$Subdir = '([\w\-\.,@?^=%&;:\/~\+#]*[\w\-\@?^=%&\/~\+#])?';
$Expr = '/' . $NotAnchor . $Protocol . $Domain . $Subdir . '/i';
$result = preg_replace( $Expr, "<a href=\"$0\" target=\"_blank\">$2$3</a>", $result );
$result = preg_replace( $Expr, "<a href=\"$0\" target=\"_blank\">$2$3$4</a>", $result );
// Now match things beginning with www.
$NotHTTP = '(?<!:\/\/)';
$Domain = 'www(.[\w]+)';
$Domain = 'www(\.[\w-.]+)';
$Subdir = '([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?';
$Expr = '/' . $NotAnchor . $NotHTTP . $Domain . $Subdir . '/i';
@ -585,7 +585,7 @@ class html
* @param string $base_href='' if passed activates the browser for image at absolute path passed
* @return string the necessary html for the textarea
*/
function fckEditor($_name, $_content, $_mode, $_options=array('toolbar_expanded' =>'true'), $_height='400px', $_width='100%',$_base_href)
function fckEditor($_name, $_content, $_mode, $_options=array('toolbar_expanded' =>'true'), $_height='400px', $_width='100%',$_base_href='')
{
if (!$this->htmlarea_availible() || $_mode == 'ascii')
{

View File

@ -215,7 +215,7 @@ Calendar.setup(
$fields[$n] = $i;
break;
}
if (strstr($long_name,$fields[$n]) == $long_name) // partcial match => multibyte saver
if (@strstr($long_name,$fields[$n]) == $long_name) // partcial match => multibyte saver
{
$partcial_match = $i;
}

View File

@ -185,7 +185,7 @@
function gethttpsocketfile($file,$user='',$passwd='',$string=False)
{
$server = str_replace('http://','',$file);
$file = strstr($server,'/');
$file = @strstr($server,'/');
$server = str_replace($file,'',$server);
//allows for access to http-auth pages - added by Dave Hall <dave.hall@mbox.com.au>

View File

@ -566,7 +566,7 @@ class PHPMailer
// Retry while there is no connection
while($index < count($hosts) && $connection == false)
{
if(strstr($hosts[$index], ":"))
if(strpos($hosts[$index], ":") !== false)
list($host, $port) = explode(":", $hosts[$index]);
else
{

View File

@ -214,8 +214,18 @@
{
return $values;
}
if (!($max_session_size = ini_get('memory_limit'))) $max_session_size = '16M';
switch(strtoupper(substr($max_session_size,-1)))
{
case 'M': $max_session_size *= 1024*1024; break;
case 'K': $max_session_size *= 1024; break;
}
$max_session_size /= 4; // use at max 1/4 of the memory_limit to read sessions, the others get ignored
while (($file = readdir($dir)))
{
if (filesize($path.'/'.$file) >= $max_session_size) continue;
if (substr($file,0,5) != 'sess_' || $session_cache[$file] === false)
{
continue;

View File

@ -317,7 +317,7 @@ class SMTP
# headers.
$field = substr($lines[0],0,strpos($lines[0],":"));
$in_headers = false;
if(!empty($field) && !strstr($field," ")) {
if(!empty($field) && strpos($field," ") === false) {
$in_headers = true;
}

View File

@ -349,7 +349,7 @@
{
$data = &$this->charsets[$charset = strtolower($this->db->f('charset'))];
$lang = $this->langs[$this->db->f('lang')].' ('.$this->db->f('lang').')';
if ($distinct || strstr($data,$lang) === false)
if ($distinct || strpos($data,$lang) === false)
{
$data .= ($data ? ', ' : $charset.': ').$lang;
}

View File

@ -151,7 +151,7 @@ class uiaccountsel extends accounts
case 'groupmembers':
if ($account_sel == 'primary_group')
{
$memberships = array($GLOBALS['egw']->accounts->data['account_primary_group']);
$memberships = array($GLOBALS['egw_info']['user']['account_primary_group']);
}
else
{
@ -258,7 +258,7 @@ class uiaccountsel extends accounts
if ($extra_label)
{
//in php5 this put's the extra-label at the end: $select = array($extra_label) + $select;
$select2 = array($extra_label);
$select2 = array('' => $extra_label);
$select2 += $select;
$select =& $select2; unset($select2);
}

View File

@ -0,0 +1,204 @@
<?php
/**
* eGroupWare API: VFS - Homedirectories
*
* @link http://www.egroupware.org
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package api
* @subpackage vfs
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @copyright (c) 2007 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @version $Id$
*/
require_once(EGW_API_INC.'/class.vfs.inc.php');
/**
* eGroupWare API: VFS - Homedirectories
*
* This class implements some necessary stuff for user- and group-directories ontop the vfs class.
*
* Some of it is already implemented in the filemanager app, but it's also needed for the WebDAV access:
* - show only directories in /home, to which the user has at least read-access
*
* Stuff dealing with creation, renaming or deletion of users via some hooks from admin:
* - create the homedir if a new user gets created
* - rename the homedir if the user-name changes
* - delete the homedir or copy its content to an other users homedir, if a user gets deleted
* --> these hooks are registered via phpgwapi/setup/setup.inc.php and called by the admin app
*/
class vfs_home extends vfs
{
/**
* List a directory, reimplemented to hide dirs the user has no rights to read
*
* @param array $data
* @param string $data['string'] path
* @param array $data['relatives'] Relativity array (default: RELATIVE_CURRENT)
* @param boolean $data['checksubdirs'] If true return information for all subdirectories recursively
* @param string $data['mime'] Only return information for locations with MIME type specified (eg. 'Directory')
* @param boolean $data['nofiles'] If set and $data['string'] is a directory, return information about the directory, not the files in it.
* @return array of arrays of file information.
*/
function ls($data)
{
//error_log("vfs_home(".print_r($data,true).")");
$fileinfos = parent::ls($data);
if (!$this->override_acl && !$data['nofiles'] && ($data['string'] == $this->fakebase || $data['string'].$this->fakebase.'/'))
{
//error_log("vfs_home() grants=".print_r($this->grants,true));
// remove directories the user has no rights to see, no grant from the owner
foreach($fileinfos as $key => $info)
{
//error_log("vfs_home() ".(!$this->grants[$info['owner_id']] ? 'hidding' : 'showing')." $info[directory]/$info[name] (owner=$info[owner_id])");
if (!$this->grants[$info['owner_id']])
{
unset($fileinfos[$key]);
}
}
}
return $fileinfos;
}
/**
* Hook called after new accounts have been added
*
* @param array $data
* @param int $data['account_id'] numerical id
* @param string $data['account_lid'] account-name
*/
function addAccount($data)
{
// create a user-dir
$save_id = $this->working_id;
$this->working_id = $data['account_id'];
$save_currentapp = $GLOBALS['egw_info']['flags']['currentapp'];
$GLOBALS['egw_info']['flags']['currentapp'] = 'filemanager';
$this->override_acl = true;
$this->mkdir(array(
'string' => $this->fakebase.'/'.$data['account_lid'],
'relatives' => array(RELATIVE_ROOT),
));
$this->override_acl = false;
$this->working_id = $save_id;
$GLOBALS['egw_info']['flags']['currentapp'] = $currentapp;
}
/**
* Hook called after accounts has been modified
*
* @param array $data
* @param int $data['account_id'] numerical id
* @param string $data['account_lid'] new account-name
* @param string $data['old_loginid'] old account-name
*/
function editAccount($data)
{
if ($data['account_lid'] == $data['old_loginid']) return; // nothing to do here
// rename the user-dir
$this->override_acl = true;
$this->mv(array(
'from' => $this->fakebase.'/'.$data['old_loginid'],
'to' => $this->fakebase.'/'.$data['account_lid'],
'relatives' => array(RELATIVE_ROOT,RELATIVE_ROOT),
));
$this->override_acl = false;
}
/**
* Hook called before an account get deleted
*
* @param array $data
* @param int $data['account_id'] numerical id
* @param string $data['account_lid'] account-name
* @param int $data['new_owner'] account-id of new owner, or false if data should get deleted
*/
function deleteAccount($data)
{
if ($data['new_owner'])
{
// ToDo: copy content of user-dir to new owner's user-dir
}
// delete the user-directory
$this->override_acl = true;
$this->delete(array(
'string' => $this->fakebase.'/'.$data['account_lid'],
'relatives' => array(RELATIVE_ROOT),
));
$this->override_acl = false;
}
/**
* Hook called after new groups have been added
*
* @param array $data
* @param int $data['account_id'] numerical id
* @param string $data['account_name'] group-name
*/
function addGroup($data)
{
// create a group-dir
$save_id = $this->working_id;
$this->working_id = $data['account_id'];
$save_currentapp = $GLOBALS['egw_info']['flags']['currentapp'];
$GLOBALS['egw_info']['flags']['currentapp'] = 'filemanager';
$this->override_acl = true;
$this->mkdir(array(
'string' => $this->fakebase.'/'.$data['account_name'],
'relatives' => array(RELATIVE_ROOT),
));
$this->override_acl = false;
$this->working_id = $save_id;
$GLOBALS['egw_info']['flags']['currentapp'] = $currentapp;
}
/**
* Hook called after group has been modified
*
* @param array $data
* @param int $data['account_id'] numerical id
* @param string $data['account_name'] new group-name
* @param string $data['old_name'] old account-name
*/
function editGroup($data)
{
if ($data['account_name'] == $data['old_name']) return; // nothing to do here
// rename the group-dir
$this->override_acl = true;
$this->mv(array(
'from' => $this->fakebase.'/'.$data['old_name'],
'to' => $this->fakebase.'/'.$data['account_name'],
'relatives' => array(RELATIVE_ROOT,RELATIVE_ROOT),
));
$this->override_acl = false;
}
/**
* Hook called before a group get deleted
*
* @param array $data
* @param int $data['account_id'] numerical id
* @param string $data['account_name'] account-name
*/
function deleteGroup($data)
{
// delete the group-directory
$this->override_acl = true;
$this->delete(array(
'string' => $this->fakebase.'/'.$data['account_name'],
'relatives' => array(RELATIVE_ROOT),
));
$this->override_acl = false;
}
}

View File

@ -1,32 +1,33 @@
<?php
/**
* FileManger - WebDAV access
* eGroupWare API: VFS - WebDAV access
*
* Using the PEAR HTTP/WebDAV/Server class (which need to be installed!)
*
* @link http://www.egroupware.org
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package filemanger
* @package api
* @subpackage vfs
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @copyright (c) 2006 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @version $Id: class.boetemplate.inc.php 21437 2006-04-24 20:42:42Z ralfbecker $
* @version $Id$
*/
require_once('HTTP/WebDAV/Server.php');
require_once(EGW_API_INC.'/class.vfs_home.inc.php');
/**
* FileManger - WebDAV access
*
* Using the PEAR HTTP/WebDAV/Server class (which need to be installed!)
*
* @package filemanger
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @copyright (c) 2006 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
*/
class vfs_webdav_server extends HTTP_WebDAV_Server
{
/**
* instance of the vfs class
*
* @var vfs_home
*/
var $vfs;
var $dav_powered_by = 'eGroupWare WebDAV server';
@ -46,7 +47,7 @@ class vfs_webdav_server extends HTTP_WebDAV_Server
parent::HTTP_WebDAV_Server();
$this->vfs =& CreateObject('phpgwapi.vfs');
$this->vfs =& new vfs_home;
}
/**

View File

@ -3310,8 +3310,7 @@ class XML
function prestr ( $string, $delimiter )
{
// Return the substring.
return substr($string, 0, strlen($string) - strlen(strstr($string,
"$delimiter")));
return substr($string, 0, strlen($string) - strlen(@strstr($string,$delimiter)));
}
/**

View File

@ -131,7 +131,7 @@
if (isset($_POST['login'])) // on login
{
$GLOBALS['login'] = $_POST['login'];
if (strstr($GLOBALS['login'],'@') === False || count($GLOBALS['egw_domain']) == 1)
if (strpos($GLOBALS['login'],'@') === False || count($GLOBALS['egw_domain']) == 1)
{
$GLOBALS['login'] .= '@' . get_var('logindomain',array('POST'),$GLOBALS['egw_info']['server']['default_domain']);
}

View File

@ -779,8 +779,9 @@ class Horde_iCalendar {
break;
// Recurrence fields.
case 'EXRULE':
case 'RRULE':
break;
case 'EXRULE':
//Text Fields
case 'SUMMARY':

View File

@ -1,4 +1,4 @@
<?php
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
@ -40,7 +40,7 @@ function ServerMapFolder( $resourceType, $folderPath )
{
// Get the resource type directory.
//INTEGRATION $sResourceTypePath = $GLOBALS["UserFilesDirectory"] . $resourceType . '/' ;
$sResourceTypePath = $GLOBALS["UserFilesDirectory"] . '/' ;
$sResourceTypePath = $GLOBALS["UserFilesDirectory"];
// Ensure that the directory exists.
CreateServerFolder( $sResourceTypePath ) ;
@ -93,6 +93,9 @@ function CreateServerFolder( $folderPath )
function GetRootPath()
{
//INTEGRATION: alogrithm below does not work if eGW is installed outside the docroot
return $_SERVER['DOCUMENT_ROOT'];
$sRealPath = realpath( './' ) ;
$sSelfPath = $_SERVER['PHP_SELF'] ;

View File

@ -1,4 +1,4 @@
<?php
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
@ -29,6 +29,9 @@ function RemoveExtension( $fileName )
function GetRootPath()
{
//INTEGRATION: alogrithm below does not work if eGW is installed outside the docroot
return $_SERVER['DOCUMENT_ROOT'];
$sRealPath = realpath( './' ) ;
$sSelfPath = $_SERVER['PHP_SELF'] ;

View File

@ -149,8 +149,8 @@ FCKConfig.ToolbarSets["egw_advanced"] = [
['TextColor','BGColor']
] ;
FCKConfig.EnterMode = 'p' ; // p | div | br
FCKConfig.ShiftEnterMode = 'br' ; // p | div | br
FCKConfig.EnterMode = 'br' ; // p | div | br
FCKConfig.ShiftEnterMode = 'p' ; // p | div | br
FCKConfig.Keystrokes = [
[ CTRL + 65 /*A*/, true ],

View File

@ -1,4 +1,4 @@
<?php
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
@ -30,4 +30,4 @@ if ( version_compare( phpversion(), '5', '<' ) )
else
include_once( 'fckeditor_php5.php' ) ;
?>
?>

View File

@ -1,4 +1,4 @@
<?php
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
@ -157,4 +157,4 @@ class FCKeditor
}
}
?>
?>

View File

@ -1,4 +1,4 @@
<?php
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
@ -157,4 +157,4 @@ class FCKeditor
}
}
?>
?>

View File

@ -1,4 +1,4 @@
%1 email addresses inserted common de %1 Email Adressen eingefügt
%1 email addresses inserted common de %1 E-Mail-Adressen eingefügt
%1 is not executable by the webserver !!! common de %1 ist nicht ausführbar durch den Webserver !!!
%1egroupware%2 is a multi-user, web-based groupware suite written in %3php%4. common de %1eGroupWare%2 ist eine, in %3PHP%4 programmierte, webbasierende, mehrbenutzer Groupware Suite.
(shift-)click or drag to change value jscalendar de (Shift-) Klicken oder drücken um den Wert zu ändern
@ -218,7 +218,7 @@ egroupware: login blocked for user '%1', ip %2 common de eGroupWare: Anmelden ge
egypt common de ÄGYPTEN
el salvador common de EL SALVADOR
email common de E-Mail
email-address of the user, eg. "%1" common de E-Mail Adresse des Benutzers, zB. "%1"
email-address of the user, eg. "%1" common de E-Mail-Adresse des Benutzers, z.B. "%1"
emotions tinymce de Emotion
enabled common de Verfügbar
end date common de Enddatum
@ -322,7 +322,7 @@ high common de Hoch
highest common de Höchste
holy see (vatican city state) common de VATICAN
home common de Home
home email common de private Email
home email common de private E-Mail
honduras common de HONDURAS
hong kong common de HONG KONG
how many icons should be shown in the navbar (top of the page). additional icons go into a kind of pulldown menu, callable by the icon on the far right side of the navbar. common de Wie viele Icons sollen in der Navigation angezeigt werden (die obere Nabigation). Weitere Applikationen werden über ein Auswahlmenü angeboten. Das Auswahlmenü kann über das rechte Icon geöffnet werden
@ -628,11 +628,11 @@ select all %1 %2 for %3 common de Alles ausw
select category common de Kategorie auswählen
select date common de Datum auswählen
select group common de Gruppe auswählen
select home email address common de private Email-Adresse auswählen
select home email address common de private E-Mail-Adresse auswählen
select multiple accounts common de mehrere Benutzer auswählen
select one common de Eine(n) auswählen
select user common de Benutzer auswählen
select work email address common de geschäftl. Email-Addresse auswählen
select work email address common de geschäftl. E-Mail-Addresse auswählen
selection common de Auswahl
send common de Abschicken
senegal common de SENEGAL
@ -698,7 +698,7 @@ thailand common de THAILAND
the api is current common de Die API ist aktuell
the api requires an upgrade common de Die API benötigt eine Aktualisierung
the following applications require upgrades common de Die folgenden Anwendungen benötigen eine Aktualisierung
the mail server returned common de Der EMailserver liefert zurück
the mail server returned common de Der E-Mail-Server liefert zurück
the search has been compleated. the search string could not be found. tinymce de Die Suche wurde abgeschlossen. Das Suchwort wurde nicht gefunden.
this application is current common de Diese Anwendung ist aktuell
this application requires an upgrade common de Diese Anwendung benötigt eine Aktualisierung
@ -782,7 +782,7 @@ which groups common de Welche Gruppen
width common de Breite
window name tinymce de Fenster Name
wk jscalendar de KW
work email common de geschäftliche Email
work email common de geschäftliche E-Mail
written by: common de Geschrieben von:
year common de Jahr
yemen common de YEMEN

View File

@ -12,6 +12,10 @@
- use the %1, %2 buttons to select month jscalendar fr - Utiliser les boutons %1, %2 pour sélectionner le mois
- use the %1, %2 buttons to select year jscalendar fr - Utiliser les boutons %1, %2 pour sélectionner l'année
00 (disable) admin fr 00 (non actif)
1 day common fr 1 Jour
1 hour common fr 1 Heure
1 month common fr 1 Mois
1 week common fr 1 Semaine
13 (ntp) admin fr 13 (ntp)
3 number of chars for day-shortcut jscalendar fr 3 nombre de caractères pour le raccourci jour
3 number of chars for month-shortcut jscalendar fr 3 nombre de caractères pour le raccourci mois
@ -21,6 +25,7 @@ about common fr A propos de
about %1 common fr A propos de %1
about egroupware common fr A propos d'eGroupware
about the calendar jscalendar fr A propos du Calendrier
about this editor common fr A propos de cet éditeur
access common fr Accès
access not permitted common fr Accès non permis
account has been created common fr Le compte a été créé
@ -61,7 +66,7 @@ antigua and barbuda common fr ANTIGUE ET BARBADE
application common fr Application
apply common fr Appliquer
april common fr Avril
are you sure you want to delete these entries ? common fr Etes-vous sûr de vouloir effacer ces entrées ?
are you sure you want to delete these entries ? common fr Etes-vous sûr de vouloir supprimer ces entrées ?
are you sure you want to delete this entry ? common fr Etes-vous sûr de vouloir supprimer cette entrée ?
argentina common fr ARGENTINE
armenia common fr ARMENIE
@ -74,12 +79,13 @@ autohide sidebox menu's common fr Cacher automatiquement la barre de menu lat
autohide sidebox menus common fr Cacher automatiquement la barre de menu latérale
automatically hide the sidebox menu's? common fr Cacher automatiquement la barre de menu latérale ?
automatically hide the sidebox menus? common fr Cacher automatiquement la barre de menu latérale ?
autosave default category common fr Sauvegarde automatique dans catégorie par défaut
autosave default category common fr Enregistrement automatique dans catégorie par défaut
azerbaijan common fr AZERBAIDJAN
back common fr Retour
back to user login common fr Retour au Login utilisateur
background color: common fr Couleur de fond
backupdir '%1' is not writeable by the webserver common fr Le répertoire de sauvegarde '%1' n'est pas "écrivable" par le serveur web
background color common fr Couleur de fond
background color: common fr Couleur de fond:
backupdir '%1' is not writeable by the webserver common fr Le serveur web ne peut pas écrire dans le répertoire de sauvegarde '%1'
bad login or password common fr Mauvais login ou mot de passe
bahamas common fr BAHAMAS
bahrain common fr BAHRAIN
@ -107,6 +113,7 @@ brazil common fr BRESIL
british indian ocean territory common fr TERRITOIRES ANGLAIS DE L'OCEAN INDIEN
brunei darussalam common fr SULTANAT DE BRUNEI
bulgaria common fr BULGARIE
bulleted list common fr Liste à points
burkina faso common fr BURKINA FASO
burundi common fr BURUNDI
calendar common fr Calendrier
@ -114,7 +121,7 @@ cambodia common fr CAMBODGE
cameroon common fr CAMEROUN
canada common fr CANADA
cancel common fr Annuler
cannot replace %1 because it is a directory common fr Impossible de remplacer %1 car c'est un répertoire
cannot replace %1 because it is a directory common fr Impossible de remplacer %1 car est un répertoire
cant open '%1' for %2 common fr Impossible d'ouvrir '%1' pour %2
cape verde common fr CAP VERT
caption common fr Légende
@ -153,6 +160,7 @@ clear form common fr Effacer le formulaire
click common fr Cliquer
click or mouse over to show menus common fr Cliquer ou passer la souris dessus pour voir les menus
click or mouse over to show menus? common fr Cliquer ou passer la souris dessus pour voir les menus?
click this image on the navbar: %1 common fr Cliquez cette image sur la barre de navigation: %1
close common fr Fermer
close sidebox common fr Fermer la barre de menu latérale
cocos (keeling) islands common fr ILES COCOS (KEELING)
@ -168,6 +176,7 @@ congo, the democratic republic of the common fr CONGO, REPUBLIQUE DEMOCRATIQUE D
contacting server... common fr Connexion au serveur...
cook islands common fr ILES COOK
copy common fr Copier
copy selection common fr Copier la sélection
copy table row tinymce fr Copier ligne
copy/cut/paste is not available in mozilla and firefox.\ndo you want more information about this issue? tinymce fr Copier/Couper/Coller non disponible dans Mozilla et Firefox.\nVoulez-vous plus d'informations sur ce problème?
copy/cut/paste is not available in mozilla and firefox.ndo you want more information about this issue? tinymce fr Copier/Couper/Coller non disponible dans Mozilla et Firefox.\nVoulez-vous plus d'informations sur ce problème?
@ -180,7 +189,9 @@ croatia common fr CROATIE
cuba common fr CUBA
currency common fr Devise
current common fr Courant
current style common fr Style actuel
current users common fr Utilisateurs connectés
cut selection common fr Couper la sélection
cut table row tinymce fr Couper ligne
cyprus common fr CHYPRE
czech republic common fr REPUBLIQUE TCHEQUE
@ -190,6 +201,7 @@ date modified tinymce fr Date modifi
date selection: jscalendar fr Sélection de la date :
datetime port.<br>if using port 13, please set firewall rules appropriately before submitting this page.<br>(port: 13 / host: 129.6.15.28) admin fr Port Datetime.<br>Si vous utilisez le port 13, adaptez svp les règles de votre pare-feu avant de soumettre cette page.<br>(Port: 13 / Hôte: 129.6.15.28)
december common fr Décembre
decrease indent common fr Réduire l'indentation
default tinymce fr Défaut
default category common fr Catégorie par défaut
default height for the windows common fr Hauteur par défaut de la fenêtre
@ -223,7 +235,7 @@ domestic common fr Int
dominica common fr DOMINIQUE
dominican republic common fr REPUBLIQUE DOMINICAINE
done common fr Fait
down tinymce fr Base
down tinymce fr Bas
drag to move jscalendar fr Glisser pour le déplacer
e-mail common fr email
east timor common fr TIMOR EST
@ -238,11 +250,12 @@ egypt common fr EGYPTE
el salvador common fr SALVADOR
email common fr E-mail
email-address of the user, eg. "%1" common fr Adresse e-mail de l'utilisateur, p.ex. "%1"
emotions tinymce fr Emoticons
emotions tinymce fr Emoticônes
en common fr en
enabled common fr Activé
end date common fr Date de fin
end time common fr Heure de fin
enlarge editor common fr Agrandir l'Editeur
enter the location of egroupware's url.<br>example: http://www.domain.com/egroupware &nbsp; or &nbsp; /egroupware<br><b>no trailing slash</b> admin fr Entrer l´URL d´eGroupWare.<br>Exemple: http://www.domain.com/egroupware ou /egroupware<br><b>Pas de slash final</b>
entry has been deleted sucessfully common fr Entrée supprimée avec succès
entry updated sucessfully common fr Entrée mise à jour avec succès
@ -250,7 +263,7 @@ equatorial guinea common fr GUINEE EQUATORIALE
eritrea common fr ERYTHREE
error common fr Erreur
error creating %1 %2 directory common fr Erreur à la création du répertoire %1 %2
error deleting %1 %2 directory common fr Erreur à l'effacement du répertoire %1 %2
error deleting %1 %2 directory common fr Erreur à la suppression du répertoire %1 %2
error renaming %1 %2 directory common fr Erreur au renommage du répertoire %1 %2
estonia common fr ESTONIE
ethiopia common fr ETHIOPIE
@ -293,9 +306,11 @@ folder name missing. tinymce fr Nom de dossier manquant.
folder not found. tinymce fr Dossier introuvable.
folder with specified new name already exists. folder was not renamed/moved. tinymce fr Il existe déjà un dossier à ce nom. Le dossier n'a pas été renommé/déplacé.
folder(s) tinymce fr Dossier(s)
font color common fr Couleur de la Police
for mouse out tinymce fr Pour la souris en dehors
for mouse over tinymce fr Pour la souris au dessus
force selectbox common fr Forcer la boîte de sélection
forever common fr Toujours
france common fr FRANCE
french guiana common fr GUYANNE FRANCAISE
french polynesia common fr POLYNESIE FRANCAISE
@ -315,7 +330,7 @@ gibraltar common fr GIBRALTAR
global common fr Global
global public common fr Public global
go today jscalendar fr Aller à aujourd'hui
grant access common fr Autoriser l'accés
grant access common fr Autoriser l'accès
greece common fr GRECE
greenland common fr GROENLANDE
grenada common fr GRENADE
@ -339,14 +354,17 @@ haiti common fr HAITI
heard island and mcdonald islands common fr ILE HEARD ET ILES MCDONALD
height common fr Hauteur
help common fr Aide
help using editor common fr Aide à l'utilisation de l'éditeur
high common fr Haut
highest common fr Plus haut
holy see (vatican city state) common fr VATICAN
home common fr Accueil
home email common fr email Accueil
home email common fr email privé
honduras common fr HONDURAS
hong kong common fr HONG KONG
how many icons should be shown in the navbar (top of the page). additional icons go into a kind of pulldown menu, callable by the icon on the far right side of the navbar. common fr Combien d'icônes devraient être affichées sur la barre de navigation (haut de page). Les icônes suplémentaires seront placées dans une liste que l'ont appelera via une icône à droite de la barre de navigation.
horizontal rule common fr Règle Horizontale
how many icons should be shown in the navbar (top of the page). additional icons go into a kind of pulldown menu, callable by the icon on the far right side of the navbar. common fr Combien d'icônes devraient être affichées sur la barre de navigation (haut de page). Les icônes suplémentaires seront placées dans une liste que l'on appellera via une icône à droite de la barre de navigation.
how to show the general egroupware menu ? common fr Comment afficher le menu général d'eGroupWare ?
hungary common fr HONGRIE
iceland common fr ISLANDE
iespell not detected. click ok to go to download page. common fr ieSpell non détecté. Cliquez sur Ok pour aller à la page de téléchargement.
@ -355,6 +373,7 @@ if there are some images in the background folder you can choose the one you wou
image description tinymce fr Description de l'image
image title tinymce fr Titre de l'image
image url common fr URL de l'Image
increase indent common fr Augmenter le retrait
indent tinymce fr Retrait
india common fr INDE
indonesia common fr INDONESIE
@ -368,10 +387,13 @@ insert column before common fr Ins
insert date tinymce fr Insérer la date
insert emotion tinymce fr Insérer une émoticône
insert file tinymce fr Insérer un fichier
insert image common fr Insérer une image
insert link to file tinymce fr Insérer un lien vers un fichier
insert row after common fr Insérer une ligne après
insert row before common fr Insérer une ligne avant
insert table common fr Insérer une table
insert time tinymce fr Insérer l'heure
insert web link common fr Insérer un lien web
insert/edit image tinymce fr Insérer/modifier une image
insert/edit link tinymce fr Insérer/modifier un lien
insert/modify table tinymce fr Insérer/modifier le tableau
@ -385,7 +407,7 @@ iraq common fr IRAK
ireland common fr IRLANDE
israel common fr ISRAEL
it has been more then %1 days since you changed your password common fr Cela fait plus de %1 jours que vous n'avez pas changé votre mot de passe
it is recommended that you run setup to upgrade your tables to the current version common fr Il vous est recommandé d'exécuter "setup" pour mettre à jour vos tables vers la version courante.
it is recommended that you run setup to upgrade your tables to the current version common fr Il vous est recommandé d'exécuter "setup" pour mettre à jour vos tables vers la version actuelle.
italic common fr Italique
italic.gif common fr italic.gif
italy common fr ITALIE
@ -436,6 +458,8 @@ local common fr Local
login common fr Login
loginid common fr LoginID
logout common fr Déconnexion
lost login id common fr Identifiant oublié
lost password common fr Mot de passe oublié
low common fr Bas
lowest common fr Plus bas
luxembourg common fr LUXEMBOURG
@ -446,7 +470,7 @@ mail domain, eg. "%1" common fr Domaine email, p.ex. "%1"
main category common fr Catégorie principale
main screen common fr Ecran principal
maintainer common fr Mainteneur
make window resizable tinymce fr Fabriquer une fenêtre redimensionnable
make window resizable tinymce fr Rendre la fenêtre redimensionnable
malawi common fr MALAWI
malaysia common fr MALAYSIE
maldives common fr MALDIVES
@ -522,6 +546,8 @@ norfolk island common fr ILE NORFOLK
normal common fr Normal
northern mariana islands common fr ILES MARIANA DU NORD
norway common fr NORVEGE
not common fr pas
not a user yet? register now common fr Pas encore identifié? Enregisrez-vous maintenant
not assigned common fr non assigné
note common fr Note
notes common fr Notes
@ -537,6 +563,7 @@ on mouse over common fr Sur le rel
only files with extensions are permited, e.g. "imagefile.jpg". tinymce fr Seuls les fichiers avec des extensions sont permis, ex: "fichier_image.jpg".
only private common fr seulement privés
only yours common fr seulement les vôtres
oops! you caught us in the middle of system maintainance. common fr Oups! Vous êtes arrivé en pleine maintenance système.
open file in new window tinymce fr Ouvrir le fichier dans une nouvelle fenêtre
open in new window tinymce fr Ouvrir dans la fenêtre
open in parent window / frame tinymce fr Ouvrir dans fenêtre / cadre parent
@ -573,9 +600,11 @@ password must contain at least %1 special characters common fr Le mot de passe d
password must contain at least %1 uppercase letters common fr Le mot de passe doit contenir au moins %1 caractères majuscules
password must have at least %1 characters common fr Le mot de passe doit contenir au moins %1 caractères
paste as plain text tinymce fr Coller en tant que texte simple
paste from clipboard common fr Coller depuis le presse-papiers
paste from word tinymce fr Coller depuis Word
paste table row after tinymce fr Coller ligne après
paste table row before tinymce fr Coller ligne avant
path common fr Chemin
path not found. tinymce fr Chemin non trouvé.
path to user and group files has to be outside of the webservers document-root!!! common fr Le chemin vers les fichiers des utilisateurs et groupes DOIT ETRE EN DEHORS de la racine des documents du serveur web!!!
pattern for search in addressbook common fr Chaîne à rechercher dans le carnet d'adresses
@ -597,11 +626,13 @@ please select common fr Veuillez s
please set your global preferences common fr Veuillez définir vos préférences globales !
please set your preferences for this application common fr Veuillez définir vos préférences pour cette application
please wait... common fr Veuillez patienter...
please, check back with us shortly. common fr Veuillez revenir bientôt afin de vérifier avec nous.
poland common fr POLOGNE
popup url tinymce fr URL de la Popup
portugal common fr PORTUGAL
position (x/y) tinymce fr Position (X/Y)
postal common fr Code postal
powered by common fr Motorisé par
powered by egroupware version %1 common fr Motorisé par <a href="http://www.egroupware.org">eGroupWare</a> version %1
powered by phpgroupware version %1 common fr Motorisé par eGroupWare version %1
preferences common fr Préférences
@ -623,8 +654,11 @@ read common fr Lire
read this list of methods. common fr Lisez cette liste de méthodes.
reading common fr Lecture
redo tinymce fr Refaire
redoes your last action common fr Refait votre dernière action
refresh tinymce fr Rafraîchir
register common fr S'enregistrer
reject common fr Rejeter
remember me common fr Se souvenir de moi
remove col tinymce fr Supprimer la colonne
remove selected accounts common fr supprimer les comptes sélectionnés
remove shortcut common fr Supprimer le raccourci
@ -668,13 +702,13 @@ select all %1 %2 for %3 common fr S
select category common fr Sélectionner la catégorie
select date common fr Sélectionner la date
select group common fr Sélectionner le groupe
select home email address common fr Sélectionner l'email maison
select home email address common fr Sélectionner l'email privé
select multiple accounts common fr Sélectionner des comptes multiples
select one common fr Sélectionner un(e)
select the default height for the application windows common fr Choisissez la hauteur par défaut de la fenêtre d'application
select the default width for the application windows common fr Choisissez la largeur par défaut de la fenêtre d'application
select user common fr Sélectionner l'utilisateur
select work email address common fr Sélectionner l'email Bureau
select work email address common fr Sélectionner l'email professionnel
selection common fr Sélection
send common fr Envoyer
senegal common fr SENEGAL
@ -689,8 +723,10 @@ setup main menu common fr Menu principal du Setup
seychelles common fr SEYCHELLES
show all common fr Afficher tous les éléments
show all categorys common fr Afficher toutes les catégories
show as topmenu common fr Afficher en tant que menu supérieur
show clock? common fr Afficher l'horloge?
show home and logout button in main application bar? common fr Afficher les boutons Accueil et Déconnexion dans la barre d'application principale?
show in sidebox common fr Afficher dans la barre de menu latérale
show locationbar tinymce fr Afficher la barre d'adresse
show logo's on the desktop. common fr Afficher le logo sur le bureau?
show menu common fr Afficher le menu
@ -724,12 +760,15 @@ start with common fr commence par
starting up... common fr Démarrage...
status common fr Etat
stretched common fr étiré
strikethrough common fr Barré
striketrough tinymce fr Barré
subject common fr Objet
submit common fr Envoyer
subscript common fr Indice
substitutions and their meanings: common fr Substitutions et leurs sens:
sudan common fr SOUDAN
sunday common fr Dimanche
superscript common fr Exposant
suriname common fr SURINAM
svalbard and jan mayen common fr SVALBARD ETJAN MAYEN
swaziland common fr SWAZILAND
@ -768,7 +807,8 @@ to go back to the msg list, click <a href= %1 >here</a> common fr Pour revenir
today common fr Aujourd'hui
todays date, eg. "%1" common fr date d'aujourd'hui, p.ex. "%1"
toggle first day of week jscalendar fr Voir le premier jour de la semaine
toggle fullscreen mode tinymce fr Passer en plein écran
toggle fullscreen mode tinymce fr Basculer en plein écran
toggle html source common fr Basculer en code HTML source
togo common fr TOGO
tokelau common fr TOKELAU
tonga common fr TONGA
@ -789,6 +829,7 @@ ukraine common fr UKRAINE
underline common fr Souligné
underline.gif common fr underline.gif
undo tinymce fr Défaire
undoes your last action common fr Annule votre dernière action
united arab emirates common fr EMIRATS ARABES UNIS
united kingdom common fr ROYAUME UNI
united states common fr ETATS-UNIS
@ -836,17 +877,19 @@ western sahara common fr SAHARA OUEST
what color should all the blank space on the desktop have common fr Quelle couleur l'espace vide du bureau doit-il avoir?
what style would you like the image to have? common fr Quel style souhaitez-vous pour l'image?
when you say yes the home and logout buttons are presented as applications in the main top applcation bar. common fr Si vous dites oui, les bouttons Accueil et Déconnexion sont affichés comme des applications dans la barre d'application principale.
where and how will the egroupware links like preferences, about and logout be displayed. common fr Ou et comment seront affichés les liens comme Préférences, A propos de et Déconnexion.
which groups common fr Quels groupes
width common fr Largeur
window name tinymce fr Nom de la fenêtre
wk jscalendar fr Sem.
work email common fr email Bureau
work email common fr email professionnel
would you like to display the page generation time at the bottom of every window? common fr Voulez-vous voir apparaître le temps de génération en bas de chaque fenêtre?
writing common fr écriture
written by: common fr Ecrit par:
year common fr Année
yemen common fr YEMEN
yes common fr Oui
you are in text mode. use the [<>] button to switch back to wysiwig. common fr Vous êtes en MODE TEXTE. Utilisez le bouton [<>] pour revenir à WYSIWIG.
you are required to change your password during your first login common fr Il vous est demandé de changer votre mot de passe lors de votre première connexion
you have been successfully logged out login fr Déconnexion réussie
you have not entered a title common fr Vous n'avez pas entré de titre
@ -858,6 +901,7 @@ you have selected an invalid main category common fr Vous avez s
you have successfully logged out common fr Vous vous êtes correctement déconnecté
you must enter the url tinymce fr Vous devez entrer une URL
you need to add the webserver user '%1' to the group '%2'. common fr Vous devez ajouter l'utilisateur du serveur web '%1' au groupe '%2'.
you've tried to open the egroupware application: %1, but you have no permission to access this application. common fr Vous avez tenté d'ouvrir l'application eGroupWare: %1, mais vous n'avez aucune permission d'y accéder.
your message could <b>not</b> be sent!<br> common fr Votre message n'a <b>pas</b> pu être envoyé!<br>
your message has been sent common fr Votre message a été envoyé
your search returned %1 matchs common fr Votre recherche a retourné %1 résultats

View File

@ -12,6 +12,10 @@
- use the %1, %2 buttons to select month jscalendar pt-br - Use os botões %1, %2 para selecionar o mês
- use the %1, %2 buttons to select year jscalendar pt-br - Use os botões %1, %2 para selecionar o ano
00 (disable) admin pt-br 00 (desabilitado)
1 day common pt-br 1 Dia
1 hour common pt-br 1 Hora
1 month common pt-br 1 Mês
1 week common pt-br 1 Semana
13 (ntp) admin pt-br 13 (ntp)
3 number of chars for day-shortcut jscalendar pt-br 3 números para atalho-dia
3 number of chars for month-shortcut jscalendar pt-br 3 números para atalho-mês
@ -21,6 +25,7 @@ about common pt-br Sobre
about %1 common pt-br Sobre %1
about egroupware common pt-br Sobre eGroupWare
about the calendar jscalendar pt-br Sobre a Agenda
about this editor common pt-br Sobre este editor
access common pt-br Acesso
access not permitted common pt-br Acesso não permitido
account has been created common pt-br A conta foi criada
@ -78,6 +83,7 @@ autosave default category common pt-br Salvar automaticamente categoria padr
azerbaijan common pt-br AZERBAIJÃO
back common pt-br Voltar
back to user login common pt-br Voltar a tela de login
background color common pt-br Cor de Fundo
background color: common pt-br Cor de fundo:
backupdir '%1' is not writeable by the webserver common pt-br O servidor web não tem permissão de escrita no diretório de backup '%1'
bad login or password common pt-br Login ou senha incorretos
@ -153,6 +159,7 @@ clear form common pt-br Limpar Formul
click common pt-br Clique
click or mouse over to show menus common pt-br Clique ou passe o mouse sobre os menús
click or mouse over to show menus? common pt-br Clicar ou passar o mouse sobre os menús?
click this image on the navbar: %1 common pt-br Clique nesta imagem na barra de navegação: %1
close common pt-br Fechar
close sidebox common pt-br Fechar caixa lateral
cocos (keeling) islands common pt-br COCOS (KEELING) ISLANDS
@ -168,6 +175,7 @@ congo, the democratic republic of the common pt-br REP
contacting server... common pt-br Contactando servidor...
cook islands common pt-br ILHAS COOK
copy common pt-br Copiar
copy selection common pt-br Copiar seleção
copy table row tinymce pt-br Copiar linha da tabela
copy/cut/paste is not available in mozilla and firefox.\ndo you want more information about this issue? tinymce pt-br Copiar/Recortar/Colar não está disponível no Mozilla e Firefox.\nVocê quer mais informações a respeito?
copy/cut/paste is not available in mozilla and firefox.ndo you want more information about this issue? tinymce pt-br Copiar/Recortar/Colar não está disponível no Mozilla e Firefox.\nVocê quer mais informações a respeito?
@ -180,7 +188,9 @@ croatia common pt-br CRO
cuba common pt-br CUBA
currency common pt-br Moeda
current common pt-br Atualizado
current style common pt-br Estilo atual
current users common pt-br Usuários ativos
cut selection common pt-br Recortar seleção
cut table row tinymce pt-br Recortar linha da tabela
cyprus common pt-br CHIPRE
czech republic common pt-br REPÚBLICA CHECA
@ -190,6 +200,7 @@ date modified tinymce pt-br Data modificada
date selection: jscalendar pt-br Seleção da data:
datetime port.<br>if using port 13, please set firewall rules appropriately before submitting this page.<br>(port: 13 / host: 129.6.15.28) admin pt-br Porta da Data e hora.<br>Quando usar a porta 13, por favor configure os filtros do firewall antes de submeter as alterações.<br>(Porta: 13 / Host: 129.6.15.28)
december common pt-br Dezembro
decrease indent common pt-br Diminuir recuo
default tinymce pt-br Padrão
default category common pt-br Categoria padrão
default height for the windows common pt-br Altura padrão para as janelas
@ -243,6 +254,7 @@ en common pt-br en
enabled common pt-br Habilitado
end date common pt-br Data do término
end time common pt-br Hora do término
enlarge editor common pt-br Aumentar editor
enter the location of egroupware's url.<br>example: http://www.domain.com/egroupware &nbsp; or &nbsp; /egroupware<br><b>no trailing slash</b> admin pt-br Informe a localização da Extranet em um URL .<br>Exemplo: http://www.seudomínio.com.br/extranet ou /extranet<br><b>Não finalize com uma BARRA</b>
entry has been deleted sucessfully common pt-br Entrada removida com sucesso
entry updated sucessfully common pt-br Entrada atualizada com sucesso
@ -293,9 +305,11 @@ folder name missing. tinymce pt-br Nome da pasta faltando.
folder not found. tinymce pt-br Pasta não encontrada.
folder with specified new name already exists. folder was not renamed/moved. tinymce pt-br Uma pasta com o novo nome informado já existe. A pasta não foi renomeada/movida.
folder(s) tinymce pt-br pasta(s)
font color common pt-br Cor da Fonte
for mouse out tinymce pt-br para mouse fora
for mouse over tinymce pt-br para mouse por cima
force selectbox common pt-br Forçar caixa de seleção
forever common pt-br Para sempre
france common pt-br FRANÇA
french guiana common pt-br GUIANA FRANCESA
french polynesia common pt-br FRANÇA POLYNÉSIA
@ -339,6 +353,7 @@ haiti common pt-br HAITI
heard island and mcdonald islands common pt-br HEARD ISLAND AND MCDONALD ISLANDS
height common pt-br Altura
help common pt-br Ajuda
help using editor common pt-br Ajuda para usar o editor
high common pt-br Alto
highest common pt-br Mais alto
holy see (vatican city state) common pt-br VATICANO
@ -346,7 +361,9 @@ home common pt-br P
home email common pt-br E-mail residencial
honduras common pt-br HONDURAS
hong kong common pt-br HONG KONG
horizontal rule common pt-br Régua Horizontal
how many icons should be shown in the navbar (top of the page). additional icons go into a kind of pulldown menu, callable by the icon on the far right side of the navbar. common pt-br Quantos ícones devem ser mostrados na barra de navegação (ao topo da página). Ícones adicionais serão colocados em um recurso adicional em forma de menú suspenso à direita da barra de navegação.
how to show the general egroupware menu ? common pt-br Como exibir o menu geral do eGroupWare ?
hungary common pt-br HUNGRIA
iceland common pt-br ISLÂNDIA
iespell not detected. click ok to go to download page. common pt-br ieSpell não detectado. Clique Ok para ir para a página de download.
@ -355,6 +372,7 @@ if there are some images in the background folder you can choose the one you wou
image description tinymce pt-br Descrição da imagem
image title tinymce pt-br Título da imagem
image url common pt-br URL da imagem
increase indent common pt-br Aumentar recuo
indent tinymce pt-br Recúo para dentro
india common pt-br INDIA
indonesia common pt-br INDONESIA
@ -368,10 +386,13 @@ insert column before common pt-br Inserir coluna antes
insert date tinymce pt-br Inserir data
insert emotion tinymce pt-br Inserir emoção
insert file tinymce pt-br Inserir arquivo
insert image common pt-br Inserir imagem
insert link to file tinymce pt-br Inserir link para arquivo
insert row after common pt-br Inserir linha depois
insert row before common pt-br Inserir linha antes
insert table common pt-br Inserir tabela
insert time tinymce pt-br Inserir horário
insert web link common pt-br Inserir link para web
insert/edit image tinymce pt-br Inserir/Editar imagem
insert/edit link tinymce pt-br Inserir/Editar link
insert/modify table tinymce pt-br Inserir/Modificar tabela
@ -522,6 +543,8 @@ norfolk island common pt-br ILHAS NORFOLK
normal common pt-br Normal
northern mariana islands common pt-br NORTHERN MARIANA ISLANDS
norway common pt-br NORUEGA
not common pt-br não
not a user yet? register now common pt-br Ainda não é um usuário? Registre-se agora
not assigned common pt-br Não atribuído
note common pt-br Nota
notes common pt-br Notas
@ -537,6 +560,7 @@ on mouse over common pt-br Passar o mouse
only files with extensions are permited, e.g. "imagefile.jpg". tinymce pt-br Somente arquivos com extensões são permitidos, por exemplo: "imagem.jpg"
only private common pt-br Apenas particular
only yours common pt-br somente as suas
oops! you caught us in the middle of system maintainance. common pt-br Oops! Você nos pegou no meio de uma manutenção de sistema.
open file in new window tinymce pt-br Abrir arquivo em uma nova janela
open in new window tinymce pt-br Abrir em uma nova janela
open in parent window / frame tinymce pt-br Abrir na janela / frame pai
@ -573,9 +597,11 @@ password must contain at least %1 special characters common pt-br Senha deve ter
password must contain at least %1 uppercase letters common pt-br Senha deve ter ao menos %1 caractere(s) maiúsculo(s)
password must have at least %1 characters common pt-br Senha deve ter ao menos %1 caractere(s)
paste as plain text tinymce pt-br Colar como texto plano
paste from clipboard common pt-br Colar da área de transferência
paste from word tinymce pt-br Colar do Word
paste table row after tinymce pt-br Colar linha de tabela depois
paste table row before tinymce pt-br Colar linha de tabela antes
path common pt-br Caminho
path not found. tinymce pt-br Caminho não encontrado
path to user and group files has to be outside of the webservers document-root!!! common pt-br O caminho para usuários e grupos deve ser FORA do servidor da extranet.!!!
pattern for search in addressbook common pt-br Padrão para pesquisa em Contatos
@ -597,11 +623,13 @@ please select common pt-br Por favor selecione
please set your global preferences common pt-br Por favor configure suas preferências gerais
please set your preferences for this application common pt-br Configure suas preferências para este aplicativo
please wait... common pt-br Aguarde...
please, check back with us shortly. common pt-br Por favor, volte a nos contactar mais tarde.
poland common pt-br POLÔNIA
popup url tinymce pt-br URL Popup
portugal common pt-br PORTUGAL
position (x/y) tinymce pt-br Posição (X/Y)
postal common pt-br CEP
powered by common pt-br Desenvolvido por
powered by egroupware version %1 common pt-br Atualizado pela <a href="http://www.egroupware.com.br" target="_blank">eGW-BR</a> sobre a plataforma eGW versão %1
powered by phpgroupware version %1 common pt-br Desenvolvido por eGroupWare versão %1
preferences common pt-br Preferências
@ -623,8 +651,11 @@ read common pt-br Leitura
read this list of methods. common pt-br Leia a lista de métodos.
reading common pt-br Lendo
redo tinymce pt-br Refazer
redoes your last action common pt-br Repetir sua última ação
refresh tinymce pt-br Atualizar
register common pt-br Registrar
reject common pt-br Rejeitar
remember me common pt-br Lembre-se de mim
remove col tinymce pt-br Remover coluna
remove selected accounts common pt-br apagar contas selecionadas
remove shortcut common pt-br Remover tecla de atalho
@ -689,8 +720,10 @@ setup main menu common pt-br Menu principal de configura
seychelles common pt-br SEYCHELLES
show all common pt-br Exibir tudo
show all categorys common pt-br Mostrar todas as Categorias
show as topmenu common pt-br Exibir como menu superior
show clock? common pt-br Exibir relógio
show home and logout button in main application bar? common pt-br Exibir Página Inicial e Desconectar na barra de aplicativos principais?
show in sidebox common pt-br Exibir como menu lateral
show locationbar tinymce pt-br Exibir local da barra
show logo's on the desktop. common pt-br Exibir logotipo na tela.
show menu common pt-br Mostrar menu
@ -727,9 +760,11 @@ stretched common pt-br esticado
striketrough tinymce pt-br Batida completamente
subject common pt-br Assunto
submit common pt-br Enviar
subscript common pt-br Subscrito
substitutions and their meanings: common pt-br Substituições e seus efeitos:
sudan common pt-br SUDÃO
sunday common pt-br Domingo
superscript common pt-br Sobrescrito
suriname common pt-br SURINAME
svalbard and jan mayen common pt-br SVALBARD AND JAN MAYEN
swaziland common pt-br SUAZILÂNDIA
@ -769,6 +804,7 @@ today common pt-br Hoje
todays date, eg. "%1" common pt-br Data de hoje, ex. "%1"
toggle first day of week jscalendar pt-br Utilizar como primeiro dia da semana
toggle fullscreen mode tinymce pt-br Alterar para modo tela cheia
toggle html source common pt-br Alterar para fonte HTML
togo common pt-br TOGO
tokelau common pt-br TOKELAU
tonga common pt-br TONGA
@ -789,6 +825,7 @@ ukraine common pt-br UCR
underline common pt-br Sublinhado
underline.gif common pt-br underline.gif
undo tinymce pt-br Desfazer
undoes your last action common pt-br Desfazer sua última ação
united arab emirates common pt-br EMIRADOS ÁRABES UNIDOS
united kingdom common pt-br INGLATERRA
united states common pt-br ESTADOS UNIDOS
@ -836,6 +873,7 @@ western sahara common pt-br WESTERN SAHARA
what color should all the blank space on the desktop have common pt-br Que cor todo espaço em branco deve ter na tela?
what style would you like the image to have? common pt-br Que estilo você quer que a imagem tenha?
when you say yes the home and logout buttons are presented as applications in the main top applcation bar. common pt-br Quando você escolhe sim, os botões Página Inicial e Desconectar são exibidos como aplicativos na barra de aplicativos principais.
where and how will the egroupware links like preferences, about and logout be displayed. common pt-br Onde e como links como Preferências, Sobre e Desconectar serão exibidos ?
which groups common pt-br Qual grupo
width common pt-br Largura
window name tinymce pt-br Nome da janela
@ -847,6 +885,7 @@ written by: common pt-br Escrito por:
year common pt-br Ano
yemen common pt-br YEMEN
yes common pt-br Sim
you are in text mode. use the [<>] button to switch back to wysiwig. common pt-br Você está em MODO TEXTO. Use o botão [<>] para alternar para WYSIWIG.
you are required to change your password during your first login common pt-br Você foi solicitado a alterar a sua senha na primeira sessão.
you have been successfully logged out login pt-br Você foi desconectado com sucesso
you have not entered a title common pt-br Você não informou um título
@ -858,6 +897,7 @@ you have selected an invalid main category common pt-br Voc
you have successfully logged out common pt-br Você encerrou a sessão corretamente.
you must enter the url tinymce pt-br Você precisa informar a URL
you need to add the webserver user '%1' to the group '%2'. common pt-br Você precisa adicionar o usuário webserver '%1' ao grupo '%2'.
you've tried to open the egroupware application: %1, but you have no permission to access this application. common pt-br Você tentou abrir a aplicação: %1, mas você não tem permissão para acessá-la.
your message could <b>not</b> be sent!<br> common pt-br <b>Não</b> foi possível enviar sua mensagem!<br>
your message has been sent common pt-br Sua mensagem foi enviada.
your search returned %1 matchs common pt-br Sua pesquisa retornou %1 ocorrências

View File

@ -14,7 +14,7 @@
/* Basic information about this app */
$setup_info['phpgwapi']['name'] = 'phpgwapi';
$setup_info['phpgwapi']['title'] = 'eGroupWare API';
$setup_info['phpgwapi']['version'] = '1.3.019';
$setup_info['phpgwapi']['version'] = '1.3.021';
$setup_info['phpgwapi']['versions']['current_header'] = '1.28';
$setup_info['phpgwapi']['enable'] = 3;
$setup_info['phpgwapi']['app_order'] = 1;
@ -54,6 +54,14 @@
$setup_info['phpgwapi']['tables'][] = 'egw_addressbook_lists';
$setup_info['phpgwapi']['tables'][] = 'egw_addressbook2list';
// hooks used by vfs_home to manage user- and group-directories
$setup_info['phpgwapi']['hooks']['addaccount'] = 'phpgwapi.vfs_home.addAccount';
$setup_info['phpgwapi']['hooks']['deleteaccount'] = 'phpgwapi.vfs_home.deleteAccount';
$setup_info['phpgwapi']['hooks']['editaccount'] = 'phpgwapi.vfs_home.editAccount';
$setup_info['phpgwapi']['hooks']['addgroup'] = 'phpgwapi.vfs_home.addGroup';
$setup_info['phpgwapi']['hooks']['deletegroup'] = 'phpgwapi.vfs_home.deleteGroup';
$setup_info['phpgwapi']['hooks']['editgroup'] = 'phpgwapi.vfs_home.editGroup';
/* Basic information about this app */
$setup_info['notifywindow']['name'] = 'notifywindow';
$setup_info['notifywindow']['title'] = 'Notify Window';
@ -63,3 +71,5 @@
$setup_info['notifywindow']['tables'] = '';
$setup_info['notifywindow']['hooks'][] = 'home';

View File

@ -437,7 +437,7 @@
'link_app2' => array('type' => 'varchar','precision' => '25','nullable' => False),
'link_id2' => array('type' => 'varchar','precision' => '50','nullable' => False),
'link_remark' => array('type' => 'varchar','precision' => '100'),
'link_lastmod' => array('type' => 'int','precision' => '4','nullable' => False),
'link_lastmod' => array('type' => 'int','precision' => '8','nullable' => False),
'link_owner' => array('type' => 'int','precision' => '4','nullable' => False)
),
'pk' => array('link_id'),
@ -459,7 +459,7 @@
'n_suffix' => array('type' => 'varchar','precision' => '64'),
'n_fn' => array('type' => 'varchar','precision' => '128'),
'n_fileas' => array('type' => 'varchar','precision' => '255'),
'contact_bday' => array('type' => 'varchar','precision' => '10'),
'contact_bday' => array('type' => 'varchar','precision' => '12'),
'org_name' => array('type' => 'varchar','precision' => '64'),
'org_unit' => array('type' => 'varchar','precision' => '64'),
'contact_title' => array('type' => 'varchar','precision' => '64'),
@ -544,7 +544,7 @@
'list_added' => array('type' => 'int','precision' => '8'),
'list_added_by' => array('type' => 'int','precision' => '4')
),
'pk' => array('ab_id','list_id'),
'pk' => array('contact_id','list_id'),
'fk' => array(),
'ix' => array(),
'uc' => array()

View File

@ -298,7 +298,7 @@
'n_suffix' => array('type' => 'varchar','precision' => '64'),
'n_fn' => array('type' => 'varchar','precision' => '128'),
'n_fileas' => array('type' => 'varchar','precision' => '255'),
'contact_bday' => array('type' => 'varchar','precision' => '10'),
'contact_bday' => array('type' => 'varchar','precision' => '12'),
'org_name' => array('type' => 'varchar','precision' => '64'),
'org_unit' => array('type' => 'varchar','precision' => '64'),
'contact_title' => array('type' => 'varchar','precision' => '64'),
@ -753,4 +753,29 @@
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.3.019';
}
$test[] = '1.3.019';
function phpgwapi_upgrade1_3_019()
{
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_addressbook','contact_bday',array(
'type' => 'varchar',
'precision' => '12'
));
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.3.020';
}
$test[] = '1.3.020';
function phpgwapi_upgrade1_3_020()
{
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_links','link_lastmod',array(
'type' => 'int',
'precision' => '8',
'nullable' => False
));
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.3.021';
}
?>

View File

@ -38,6 +38,12 @@
* @var Template
*/
var $tpl;
/**
* Instance of the Savant template class
*
* @var tplsavant2
*/
var $tplsav2;
/**
* true if $this->navbar() was called
*
@ -107,7 +113,7 @@
if($GLOBALS['egw_info']['user']['preferences']['common']['show_general_menu'] != 'sidebox')
{
$GLOBALS['egw']->hooks->process('topmenu_info');
echo $this->topmenu();
$content = $this->topmenu();
}
$this->navbar_done = true;
@ -139,7 +145,7 @@
$vars = $this->_get_navbar($apps);
$this->tpl->set_var($vars);
$content = $this->tpl->fp('out','navbar_header');
$content .= $this->tpl->fp('out','navbar_header');
// general (app-unspecific) sidebox menu
if($GLOBALS['egw_info']['user']['preferences']['common']['show_general_menu'] == 'sidebox')
@ -532,7 +538,7 @@
}
}
// settings for the extra icons dif
if ($i < $max_icons) // no extra icon div
if ($i <= $max_icons) // no extra icon div
{
$this->tpl->set_var('app_extra_icons_div','');
$this->tpl->set_var('app_extra_icons_icon','');
@ -626,7 +632,7 @@
$this->_add_topmenu_info_item($this->_current_users());
$this->_add_topmenu_info_item($this->_get_quick_add());
$this->tplsav2->display('topmenu.tpl.php');
return $this->tplsav2->fetch('topmenu.tpl.php');
}
/**
@ -764,7 +770,7 @@ function _sidebox_menu_item($item_link='',$item_text='')
$var['item_link'] = $item_link['link'];
if ($item_link['target'])
{
if (strstr($item_link['target'], 'target=')) {
if (strpos($item_link['target'], 'target=') !== false) {
$var['target'] = $item_link['target'];
} else {
$var['target'] = ' target="' . $item_link['target'] . '"';

View File

@ -198,7 +198,7 @@
$vars = $this->template->get_undefined('row_colspan');
foreach($vars as $var)
{
if(strstr($var,'lang_'))
if(strpos($var,'lang_') !== false)
{
$value = str_replace('lang_','',$var);
$value = str_replace('_',' ',$value);

View File

@ -113,7 +113,7 @@
// make categories called via sidebox menu of an app, to behave like a part of that app
$referer = $GLOBALS['egw']->common->get_referer('/preferences/index.php');
if (!strstr($referer,'menuaction=preferences.uicategories'))
if (strpos($referer,'menuaction=preferences.uicategories') === false)
{
$this->referer = $referer;
}

View File

@ -43,7 +43,7 @@ max matches per page preferences de maximale Treffer pro Seite
max number of icons in navbar preferences de Maximale Anzahl von Icons in der Navigationsleiste
no default preferences de Keine Vorgabe
no user-selection at all common de Überhaupt keine Benutzerauswahl
note: this feature does *not* change your email password. this will need to be done manually. preferences de Hinweis: Diese Funktion ändert *nicht* Ihr Passwort auf dem E-Mail server. Dies müssen sie separat tun.
note: this feature does *not* change your email password. this will need to be done manually. preferences de Hinweis: Diese Funktion ändert *nicht* Ihr Passwort auf dem E-Mail-Server. Dies müssen Sie separat tun.
please, select a new theme preferences de Bitte ein neues Schema wählen
popup with search preferences de Popup mit Suche
re-enter your password preferences de Neues Passwort wiederholen

View File

@ -13,7 +13,7 @@
$setup_info['preferences']['name'] = 'preferences';
$setup_info['preferences']['title'] = 'Preferences';
$setup_info['preferences']['version'] = '1.2';
$setup_info['preferences']['version'] = '1.4';
$setup_info['preferences']['app_order'] = 1;
$setup_info['preferences']['tables'] = '';
$setup_info['preferences']['enable'] = 2;
@ -28,6 +28,6 @@
/* Dependencies for this app to work */
$setup_info['preferences']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.0.0','1.0.1','1.2','1.3')
'versions' => Array('1.2','1.3','1.4','1.5')
);
?>

View File

@ -335,10 +335,7 @@ class bo_resources
$data = $this->so->search($criteria,$only_keys,$order_by='',$extra_cols='',$wildcard='%',$empty,$op='OR','',$filter);
foreach($data as $num => $resource)
{
if($num != 0)
{
$list[$resource['res_id']] = $resource['name']. ($resource['short_description'] ? ', ['.$resource['short_description'].']':'');
}
$list[$resource['res_id']] = $resource['name']. ($resource['short_description'] ? ', ['.$resource['short_description'].']':'');
}
return $list;
}

View File

@ -13,7 +13,7 @@
$setup_info['resources']['name'] = 'resources';
$setup_info['resources']['title'] = 'Resources';
$setup_info['resources']['version'] = '1.2';
$setup_info['resources']['version'] = '1.4';
$setup_info['resources']['app_order'] = 5;
$setup_info['resources']['tables'] = array('egw_resources','egw_resources_extra');
$setup_info['resources']['enable'] = 1;
@ -37,13 +37,13 @@
$setup_info['resources']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.0.1','1.2','1.3')
'versions' => Array('1.3','1.4','1.5')
);
$setup_info['resources']['depends'][] = array( // cause eTemplates is not in the api yet
'appname' => 'etemplate',
'versions' => Array('1.0.1','1.2','1.3')
'versions' => Array('1.3','1.4','1.5')
);
$setup_info['resources']['depends'][] = array( // cause of vfs psuedoprotocol is not fully in the api yet
'appname' => 'filemanager',
'versions' => Array('1.0.0','1.0.1','1.2')
'versions' => Array('1.3','1.4','1.5')
);

Some files were not shown because too many files have changed in this diff Show More