diff --git a/addressbook/inc/class.addressbook_hooks.inc.php b/addressbook/inc/class.addressbook_hooks.inc.php
index 5e044641e4..8c564d431e 100644
--- a/addressbook/inc/class.addressbook_hooks.inc.php
+++ b/addressbook/inc/class.addressbook_hooks.inc.php
@@ -399,7 +399,7 @@ class addressbook_hooks
{
// Add users / groups this contact is shared with
$entry['shared_with'] = [];
- foreach((array)$entry['shared'] as $id => $share)
+ foreach($entry['shared'] ?? [] as $share)
{
$entry['shared_with'][] = $share['shared_with'];
}
@@ -412,7 +412,7 @@ class addressbook_hooks
/**
* Hook called to retrieve a app specific exportLimit
*
- * @param array/string $location location and other parameters (not used)
+ * @param array|string $location location and other parameters (not used)
* @return the export_limit to be applied for the app, may be empty, int or string
*/
static function getAppExportLimit($location)
diff --git a/addressbook/inc/class.addressbook_zpush.inc.php b/addressbook/inc/class.addressbook_zpush.inc.php
index a2e820e360..25e2a2726e 100644
--- a/addressbook/inc/class.addressbook_zpush.inc.php
+++ b/addressbook/inc/class.addressbook_zpush.inc.php
@@ -811,16 +811,16 @@ class addressbook_zpush implements activesync_plugin_write, activesync_plugin_se
foreach($contacts as $contact)
{
//$item[SYNC_GAL_ALIAS] = $contact['contact_id'];
- $item[SYNC_GAL_LASTNAME] = $contact['n_family']?$contact['n_family']:$contact['org_name'];
+ $item[SYNC_GAL_LASTNAME] = $contact['n_family'] ?? $contact['org_name'];
$item[SYNC_GAL_FIRSTNAME] = $contact['n_given'];
$item[SYNC_GAL_DISPLAYNAME] = $contact['n_fn'];
- if (!trim($item[SYNC_GAL_DISPLAYNAME])) $item[SYNC_GAL_DISPLAYNAME] = $contact['n_family']?$contact['n_family']:$contact['org_name'];
- $item[SYNC_GAL_EMAILADDRESS] = $contact['email'] ? $contact['email'] : (string)$contact['email_private'] ;
+ if (!trim($item[SYNC_GAL_DISPLAYNAME])) $item[SYNC_GAL_DISPLAYNAME] = $contact['n_family'] ?: $contact['org_name'];
+ $item[SYNC_GAL_EMAILADDRESS] = $contact['email'] ?? $contact['email_private'] ?? '';
//$item['nameid'] = $searchquery;
- $item[SYNC_GAL_PHONE] = (string)$contact['tel_work'];
- $item[SYNC_GAL_HOMEPHONE] = (string)$contact['tel_home'];
- $item[SYNC_GAL_MOBILEPHONE] = (string)$contact['tel_cell'];
- $item[SYNC_GAL_COMPANY] = (string)$contact['org_name'];
+ $item[SYNC_GAL_PHONE] = $contact['tel_work'] ?? '';
+ $item[SYNC_GAL_HOMEPHONE] = $contact['tel_home'] ?? '';
+ $item[SYNC_GAL_MOBILEPHONE] = $contact['tel_cell'] ?? '';
+ $item[SYNC_GAL_COMPANY] = $contact['org_name'] ?? '';
$item[SYNC_GAL_OFFICE] = $contact['room'];
$item[SYNC_GAL_TITLE ] = $contact['title'];
diff --git a/api/src/Auth.php b/api/src/Auth.php
index 677620297f..d7e52ab9f9 100644
--- a/api/src/Auth.php
+++ b/api/src/Auth.php
@@ -600,7 +600,7 @@ class Auth
foreach(self::$crypt_params as $type => $params)
{
list(,$prefix, $random, $postfix) = $params;
- list(,$d) = explode('$', $prefix);
+ list(,$d) = explode('$', $prefix)+[null,null];
if ($dollar === $d || !$dollar && ($first[0] === $prefix[0] || $first[0] !== '_' && !$prefix))
{
$len = !$postfix ? strlen($prefix)+$random : strlen($prefix.$salt.$postfix);
diff --git a/api/src/Auth/Ads.php b/api/src/Auth/Ads.php
index 023700fbc4..7243fe06a9 100644
--- a/api/src/Auth/Ads.php
+++ b/api/src/Auth/Ads.php
@@ -91,7 +91,7 @@ class Ads implements Backend
if ($allValues && $allValues['count'] > 0)
{
- if($GLOBALS['egw_info']['server']['case_sensitive_username'] == true)
+ if(!empty($GLOBALS['egw_info']['server']['case_sensitive_username']))
{
if($allValues[0]['samaccountname'][0] != $username)
{
@@ -272,4 +272,4 @@ class Ads implements Backend
}
return false;
}
-}
+}
\ No newline at end of file
diff --git a/api/src/Auth/Sql.php b/api/src/Auth/Sql.php
index ad55f0c385..2948e178e7 100644
--- a/api/src/Auth/Sql.php
+++ b/api/src/Auth/Sql.php
@@ -78,7 +78,7 @@ class Sql implements Backend
$type != $this->type && in_array($type, explode(',',strtolower($GLOBALS['egw_info']['server']['pwd_migration_types']))))
{
// do we have to migrate an old password ?
- if($GLOBALS['egw_info']['server']['pwd_migration_allowed'] && !empty($GLOBALS['egw_info']['server']['pwd_migration_types']))
+ if (!empty($GLOBALS['egw_info']['server']['pwd_migration_allowed']) && !empty($GLOBALS['egw_info']['server']['pwd_migration_types']))
{
if (!$match)
{
diff --git a/api/src/Categories.php b/api/src/Categories.php
index 53adc8a654..0e6ebd1c6c 100644
--- a/api/src/Categories.php
+++ b/api/src/Categories.php
@@ -923,7 +923,7 @@ class Categories
{
return !empty($cat['data']) ? json_php_unserialize($cat['data'], true) : array();
}
- elseif ($cat[$item])
+ elseif (!empty($cat[$item]))
{
return $cat[$item];
}
diff --git a/api/src/Contacts.php b/api/src/Contacts.php
index 8d61b8da6e..c59b72be1c 100755
--- a/api/src/Contacts.php
+++ b/api/src/Contacts.php
@@ -450,7 +450,7 @@ class Contacts extends Contacts\Storage
*/
function fileas($contact,$type=null, $isUpdate=false)
{
- if (is_null($type)) $type = $contact['fileas_type'];
+ if (is_null($type)) $type = $contact['fileas_type'] ?? null;
if (!$type) $type = $this->prefs['fileas_default'] ? $this->prefs['fileas_default'] : $this->fileas_types[0];
if (strpos($type,'n_fn') !== false) $contact['n_fn'] = $this->fullname($contact);
@@ -909,7 +909,7 @@ class Contacts extends Contacts\Storage
if (!array_key_exists('photo_unchanged',$contact)) $contact['photo_unchanged'] = true;
// remember if we add or update a entry
- if (($isUpdate = $contact['id']))
+ if (($isUpdate = $contact['id'] ?? null))
{
if (!isset($contact['owner']) || !isset($contact['private'])) // owner/private not set on update, eg. SyncML
{
@@ -942,10 +942,10 @@ class Contacts extends Contacts\Storage
$contact['owner'] = $this->default_addressbook ? $this->default_addressbook : $this->user;
}
// allow admins to import contacts with creator / created date set
- if (!$contact['creator'] || !$ignore_acl && !$this->is_admin($contact)) $contact['creator'] = $this->user;
- if (!$contact['created'] || !$ignore_acl && !$this->is_admin($contact)) $contact['created'] = $this->now_su;
+ if (empty($contact['creator']) || !$ignore_acl && !$this->is_admin($contact)) $contact['creator'] = $this->user;
+ if (empty($contact['created']) || !$ignore_acl && !$this->is_admin($contact)) $contact['created'] = $this->now_su;
- if (!$contact['tid']) $contact['tid'] = 'n';
+ if (empty($contact['tid'])) $contact['tid'] = 'n';
$update_type = "add";
}
// ensure accounts and group addressbooks are never private!
@@ -964,9 +964,9 @@ class Contacts extends Contacts\Storage
$contact['jpegphoto'] = $this->resize_photo($contact['jpegphoto']);
}
// convert categories
- if (is_array($contact['cat_id']))
+ if (isset($contact['cat_id']) && is_array($contact['cat_id']))
{
- $contact['cat_id'] = implode(',',$contact['cat_id']);
+ $contact['cat_id'] = implode(',',$contact['cat_id']) ?: null;
}
// Update country codes
@@ -983,7 +983,7 @@ class Contacts extends Contacts\Storage
$contact[$c_prefix.'countrycode'] = null;
}
}
- if($contact[$c_prefix.'countrycode'] != null)
+ if(isset($contact[$c_prefix.'countrycode']))
{
$contact[$c_prefix.'countryname'] = null;
}
@@ -1030,7 +1030,7 @@ class Contacts extends Contacts\Storage
// IF THE OLD ENTRY IS A ACCOUNT, dont allow to change the owner/location
// maybe we need that for id and account_id as well.
- if (is_array($old) && (!isset($old['owner']) || empty($old['owner'])))
+ if (isset($old) && is_array($old) && (!isset($old['owner']) || empty($old['owner'])))
{
if (isset($to_write['owner']) && !empty($to_write['owner']))
{
@@ -1057,7 +1057,7 @@ class Contacts extends Contacts\Storage
}
// if contact is an account and account-relevant data got updated, handle it like account got updated
- if ($contact['account_id'] && $isUpdate &&
+ if (!empty($contact['account_id']) && $isUpdate &&
($old['email'] != $contact['email'] || $old['n_family'] != $contact['n_family'] || $old['n_given'] != $contact['n_given']))
{
// invalidate the cache of the accounts class
@@ -1076,17 +1076,17 @@ class Contacts extends Contacts\Storage
}
// Check for restore of deleted contact, restore held links
- if($old && $old['tid'] == self::DELETED_TYPE && $contact['tid'] != self::DELETED_TYPE)
+ if(isset($old) && $old['tid'] == self::DELETED_TYPE && $contact['tid'] != self::DELETED_TYPE)
{
Link::restore('addressbook', $contact['id']);
}
// Record change history for sql - doesn't work for LDAP accounts
- $deleted = ($old['tid'] == self::DELETED_TYPE || $contact['tid'] == self::DELETED_TYPE);
- if(!$contact['account_id'] || $contact['account_id'] && $this->account_repository == 'sql')
+ $deleted = (isset($old) && $old['tid'] == self::DELETED_TYPE || $contact['tid'] == self::DELETED_TYPE);
+ if(empty($contact['account_id']) || $contact['account_id'] && $this->account_repository == 'sql')
{
if (!isset($this->tracking)) $this->tracking = new Contacts\Tracking($this);
- $this->tracking->track($to_write, $old ? $old : null, null, $deleted);
+ $this->tracking->track($to_write, $old ?? null, null, $deleted);
}
// Notify linked apps about changes in the contact data
@@ -1264,7 +1264,7 @@ class Contacts extends Contacts\Storage
{
$access = !!array_intersect($memberships,$GLOBALS['egw']->accounts->memberships($contact['account_id'],true));
}
- else if ($contact['id'] && $GLOBALS['egw']->acl->check('A'.$contact['id'], $needed, 'addressbook'))
+ elseif (!empty($contact['id']) && $GLOBALS['egw']->acl->check('A'.$contact['id'], $needed, 'addressbook'))
{
$access = true;
}
@@ -2908,7 +2908,7 @@ class Contacts extends Contacts\Storage
$phoneNumberUtil->format($number, \libphonenumber\PhoneNumberFormat::INTERNATIONAL), 3);
$rest_without_space = preg_replace('/[^0-9]/', '', $rest);
/** @var Contacts\Sql */
- $backend = $this->get_backend(null, $filter['owner']);
+ $backend = $this->get_backend(null, $filter['owner'] ?? null);
// SQL Backend supporting regexp_replace (MySQL 8.0+ or MariaDB 10.0+ or PostgreSQL)
if (is_a($backend, Contacts\Sql::class) && $this->db->regexp_replace('test', '', '') !== 'test')
{
diff --git a/api/src/Contacts/Sql.php b/api/src/Contacts/Sql.php
index 5647352ade..dbb2a6a8e6 100644
--- a/api/src/Contacts/Sql.php
+++ b/api/src/Contacts/Sql.php
@@ -564,7 +564,7 @@ class Sql extends Api\Storage
$filter[] = "($this->table_name.contact_owner=".(int)$GLOBALS['egw_info']['user']['account_id'].
" OR $shared_sql".
" OR contact_private=0 AND $this->table_name.contact_owner IN (".
- implode(',',array_keys($this->grants)).") $groupmember_sql OR $this->table_name.contact_owner IS NULL)";
+ implode(',',array_keys($this->grants)).") ".($groupmember_sql ?? '')." OR $this->table_name.contact_owner IS NULL)";
}
else
{
@@ -1193,7 +1193,7 @@ class Sql extends Api\Storage
if (is_array($keys) && count($keys)) $this->data_merge($keys);
- $new_entry = !$this->data['id'];
+ $new_entry = empty($this->data['id']);
if (isset($this->data['etag'])) // do we have an etag in the data to write
{
diff --git a/api/src/Contacts/Storage.php b/api/src/Contacts/Storage.php
index 7d651ccc64..0d6d6bd38c 100755
--- a/api/src/Contacts/Storage.php
+++ b/api/src/Contacts/Storage.php
@@ -542,9 +542,9 @@ class Storage
function save(&$contact)
{
// save mainfields
- if ($contact['id'] && $this->contact_repository != $this->account_repository && is_object($this->so_accounts) &&
+ if (!empty($contact['id']) && $this->contact_repository != $this->account_repository && is_object($this->so_accounts) &&
($this->contact_repository == 'sql' && !is_numeric($contact['id']) ||
- $this->contact_repository == 'ldap' && is_numeric($contact['id'])))
+ $this->contact_repository == 'ldap' && is_numeric($contact['id'])))
{
$this->so_accounts->data = $this->data2db($contact);
$error_nr = $this->so_accounts->save();
@@ -566,7 +566,7 @@ class Storage
$contact['id'] = $this->somain->data['id'];
$contact['uid'] = $this->somain->data['uid'];
$contact['etag'] = $this->somain->data['etag'];
- $contact['files'] = $this->somain->data['files'];
+ $contact['files'] = $this->somain->data['files'] ?? null;
if ($this->contact_repository == 'sql-ldap')
{
diff --git a/api/src/Contacts/Tracking.php b/api/src/Contacts/Tracking.php
index a7435a0b1e..516de09ece 100644
--- a/api/src/Contacts/Tracking.php
+++ b/api/src/Contacts/Tracking.php
@@ -113,7 +113,7 @@ class Tracking extends Api\Storage\Tracking
switch($name)
{
case 'copy':
- if ($data['is_contactform'])
+ if (!empty($data['is_contactform']))
{
$copy = preg_split('/, ?/',$data['email_contactform']);
if ($data['email_copytoreceiver']) $copy[] = $data['email'];
@@ -122,7 +122,7 @@ class Tracking extends Api\Storage\Tracking
break;
case 'sender':
- if ($data['is_contactform'])
+ if (!empty($data['is_contactform']))
{
return $data['email'] ? $data['n_given'].' '.$data['n_family'].' <'.$data['email'].'>' : null;
}
@@ -290,4 +290,4 @@ class Tracking extends Api\Storage\Tracking
return $details;
}
-}
+}
\ No newline at end of file
diff --git a/api/src/DateTime.php b/api/src/DateTime.php
index 1f35571272..daaf770f95 100644
--- a/api/src/DateTime.php
+++ b/api/src/DateTime.php
@@ -168,7 +168,7 @@ class DateTime extends \DateTime
$time['day'] = (int)substr($time['full'],6,2);
}
if (isset($time['year'])) $this->setDate((int)$time['year'],(int)$time['month'],isset($time['day']) ? (int)$time['day'] : (int)$time['mday']);
- $this->setTime((int)$time['hour'],(int)$time['minute'],(int)$time['second']);
+ $this->setTime((int)($time['hour'] ?? 0),(int)($time['minute'] ?? 0),(int)($time['second'] ?? 0));
break;
case 'object':
diff --git a/api/src/Mail.php b/api/src/Mail.php
index af11f64290..320d33bd1a 100644
--- a/api/src/Mail.php
+++ b/api/src/Mail.php
@@ -1595,13 +1595,13 @@ class Mail
} /*else $sent_not = "";*/
//error_log(__METHOD__.' ('.__LINE__.') '.array2string($headerObject));
$headerObject['DATE'] = $headerForPrio['DATE'];
- $headerObject['SUBJECT'] = (is_array($headerForPrio['SUBJECT'])?$headerForPrio['SUBJECT'][0]:$headerForPrio['SUBJECT']);
- $headerObject['FROM'] = (array)($headerForPrio['FROM']?$headerForPrio['FROM']:($headerForPrio['REPLY-TO']?$headerForPrio['REPLY-TO']:$headerForPrio['RETURN-PATH']));
- $headerObject['TO'] = (array)$headerForPrio['TO'];
+ $headerObject['SUBJECT'] = is_array($headerForPrio['SUBJECT'] ?? null) ? $headerForPrio['SUBJECT'][0] : ($headerForPrio['SUBJECT']??null);
+ $headerObject['FROM'] = (array)($headerForPrio['FROM']?:($headerForPrio['REPLY-TO']?:$headerForPrio['RETURN-PATH']));
+ $headerObject['TO'] = (array)($headerForPrio['TO'] ?? []);
$headerObject['CC'] = isset($headerForPrio['CC'])?(array)$headerForPrio['CC']:array();
$headerObject['BCC'] = isset($headerForPrio['BCC'])?(array)$headerForPrio['BCC']:array();
$headerObject['REPLY-TO'] = isset($headerForPrio['REPLY-TO'])?(array)$headerForPrio['REPLY-TO']:array();
- $headerObject['PRIORITY'] = isset($headerForPrio['X-PRIORITY'])?$headerForPrio['X-PRIORITY']:null;
+ $headerObject['PRIORITY'] = $headerForPrio['X-PRIORITY']??null;
foreach (array('FROM','TO','CC','BCC','REPLY-TO') as $key)
{
$address = array();
diff --git a/api/src/Mail/Account.php b/api/src/Mail/Account.php
index 6d3ca4883b..e256af5a5b 100644
--- a/api/src/Mail/Account.php
+++ b/api/src/Mail/Account.php
@@ -270,7 +270,7 @@ class Account implements \ArrayAccess
$params += Notifications::read($params['acc_id'], $called_for ? array(0, $called_for) : $called_for);
}
if (!empty($params['acc_imap_logintype']) && empty($params['acc_imap_username']) &&
- $GLOBALS['egw_info']['user']['account_id'] &&
+ !empty($GLOBALS['egw_info']['user']['account_id']) &&
(!isset($called_for) || $called_for == $GLOBALS['egw_info']['user']['account_id']))
{
// get username/password from current user, let it overwrite credentials for all/no session
@@ -291,7 +291,7 @@ class Account implements \ArrayAccess
unset($this->smtpServer);
unset($this->smtpTransport);
- $this->user = $called_for ? $called_for : $GLOBALS['egw_info']['user']['account_id'];
+ $this->user = $called_for ?: $GLOBALS['egw_info']['user']['account_id'] ?? null;
}
public static function ssl2secure($ssl)
@@ -1491,7 +1491,7 @@ class Account implements \ArrayAccess
$where = array();
if ($only_current_user !== false)
{
- $account_id = $only_current_user === true ? $GLOBALS['egw_info']['user']['account_id'] : $only_current_user;
+ $account_id = $only_current_user === true ? ($GLOBALS['egw_info']['user']['account_id']??null) : $only_current_user;
// no account_id happens eg. for notifications during login
if ($account_id && !is_numeric($account_id))
{
@@ -1774,7 +1774,7 @@ class Account implements \ArrayAccess
*/
protected static function memberships($user=null)
{
- if (!$user) $user = $GLOBALS['egw_info']['user']['account_id'];
+ if (!$user) $user = $GLOBALS['egw_info']['user']['account_id'] ?? null;
$memberships = $GLOBALS['egw']->accounts->memberships($user, true);
$memberships[] = $user;
diff --git a/api/src/Mail/Credentials.php b/api/src/Mail/Credentials.php
index 102bb8dcb7..1d41e475d2 100644
--- a/api/src/Mail/Credentials.php
+++ b/api/src/Mail/Credentials.php
@@ -178,7 +178,7 @@ class Credentials
if (is_null($type)) $type = self::ALL;
if (is_null($account_id))
{
- $account_id = array(0, $GLOBALS['egw_info']['user']['account_id']);
+ $account_id = array(0, $GLOBALS['egw_info']['user']['account_id'] ?? null);
}
// check cache, if nothing found, query database
@@ -312,7 +312,7 @@ class Credentials
public static function from_session(array $data, $set_identity=true)
{
// if the username contains non-ascii chars, try email address, as Dovecot does NOT deal with non-ascii usernames
- if (is_a($data['acc_imap_type'], Api\Mail\Imap\Dovecot::class, true) &&
+ if (isset($data['acc_imap_type']) && is_a($data['acc_imap_type'], Api\Mail\Imap\Dovecot::class, true) &&
in_array($data['acc_imap_logintype'], ['standard', 'vmailmgr']) &&
preg_match('/[^\x20-\x7e]/', $GLOBALS['egw_info']['user']['account_lid']))
{
diff --git a/api/src/Mail/Html.php b/api/src/Mail/Html.php
index b1958a756e..21a6f9721e 100644
--- a/api/src/Mail/Html.php
+++ b/api/src/Mail/Html.php
@@ -181,7 +181,7 @@ class Html
if ($addbracesforendtag === false )
{
if (stripos($_body,'<'.$tag)!==false) $ct = preg_match_all('#<'.$tag.'(?:\s.*)?>(.+)'.$endtag.'#isU', $_body, $found);
- if ($ct>0)
+ if (isset($ct) && $ct > 0)
{
//error_log(__METHOD__.__LINE__.array2string($found[0]));
// only replace what we have found
diff --git a/api/src/Mail/Notifications.php b/api/src/Mail/Notifications.php
index 54b8343967..1185157001 100644
--- a/api/src/Mail/Notifications.php
+++ b/api/src/Mail/Notifications.php
@@ -56,7 +56,7 @@ class Notifications
{
if (is_null($account_id))
{
- $account_id = array(0, $GLOBALS['egw_info']['user']['account_id']);
+ $account_id = array(0, $GLOBALS['egw_info']['user']['account_id'] ?? null);
}
// check cache, if nothing found, query database
@@ -186,4 +186,4 @@ class Notifications
self::$db = isset($GLOBALS['egw_setup']) ? $GLOBALS['egw_setup']->db : $GLOBALS['egw']->db;
}
}
-Notifications::init_static();
+Notifications::init_static();
\ No newline at end of file
diff --git a/api/src/Session.php b/api/src/Session.php
index c309f09e9f..bb33974a40 100644
--- a/api/src/Session.php
+++ b/api/src/Session.php
@@ -1324,8 +1324,8 @@ class Session
$session =& $_SESSION[self::EGW_SESSION_VAR];
// we need to restore the limits and if authenticated via token
- $this->limits = $session['session_limits'];
- $this->token_auth = $session['session_token_auth'];
+ $this->limits = $session['session_limits'] ?? null;
+ $this->token_auth = $session['session_token_auth'] ?? null;
if ($session['session_dla'] <= time() - $GLOBALS['egw_info']['server']['sessions_timeout'])
{
@@ -1910,7 +1910,7 @@ class Session
if ($egw_path[0] != '/') $egw_path = parse_url($egw_path,PHP_URL_PATH);
if ($action == '/Microsoft-Server-ActiveSync')
{
- $action .= '?Cmd='.$_GET['Cmd'].'&DeviceId='.$_GET['DeviceId'];
+ $action .= '?Cmd='.($_GET['Cmd']??null).'&DeviceId='.($_GET['DeviceId']??null);
}
elseif ($egw_path)
{
diff --git a/api/src/Translation.php b/api/src/Translation.php
index b2ee7edbb7..0a63555b2c 100644
--- a/api/src/Translation.php
+++ b/api/src/Translation.php
@@ -188,7 +188,7 @@ class Translation
if ($load_translations)
{
- if ($GLOBALS['egw_info']['user']['preferences']['common']['lang'])
+ if (!empty($GLOBALS['egw_info']['user']['preferences']['common']['lang']))
{
self::$userlang = $GLOBALS['egw_info']['user']['preferences']['common']['lang'];
}
@@ -953,7 +953,7 @@ class Translation
return utf8_decode($data);
}
try {
- if (self::$mbstring && !$prefer_iconv && ($data = @mb_convert_encoding($data, $to, $from)) != '')
+ if (self::$mbstring && empty($prefer_iconv) && ($data = @mb_convert_encoding($data, $to, $from)) != '')
{
return $data;
}
diff --git a/api/src/Vfs/Sqlfs/StreamWrapper.php b/api/src/Vfs/Sqlfs/StreamWrapper.php
index d6be3a4ebb..326549c9a7 100644
--- a/api/src/Vfs/Sqlfs/StreamWrapper.php
+++ b/api/src/Vfs/Sqlfs/StreamWrapper.php
@@ -1215,7 +1215,7 @@ class StreamWrapper extends Api\Db\Pdo implements Vfs\StreamWrapperIface
static $max_subquery_depth=null;
if (is_null($max_subquery_depth))
{
- $max_subquery_depth = $GLOBALS['egw_info']['server']['max_subquery_depth'];
+ $max_subquery_depth = $GLOBALS['egw_info']['server']['max_subquery_depth'] ?? null;
if (!$max_subquery_depth) $max_subquery_depth = 7; // setting current default of 7, if nothing set
}
if (self::LOG_LEVEL > 1) error_log(__METHOD__."('$url',$flags)");
diff --git a/api/src/loader/common.php b/api/src/loader/common.php
index eddd8cf354..749f0a285a 100755
--- a/api/src/loader/common.php
+++ b/api/src/loader/common.php
@@ -29,7 +29,7 @@ if (!function_exists('get_magic_quotes_gpc'))
}
/**
-* applies stripslashes recursivly on each element of an array
+* applies stripslashes recursively on each element of an array
*
* @param array &$var
* @return array
@@ -116,7 +116,7 @@ if (!function_exists('imap_rfc822_parse_adrlist'))
foreach(explode(',', $address) as $part)
{
$trimmed = trim(($pending ? $pending.',' : '').$part);
- if (($trimmed[0] == '"' && substr($trimmed, -1) != '>')||strpos($part, '@')===false)
+ if ((($trimmed[0]??null) == '"' && substr($trimmed, -1) != '>')||strpos($part, '@')===false)
{
$pending .= ($pending ? $pending.',' : '').$part;
continue;
@@ -366,7 +366,7 @@ function function_backtrace($remove=0)
{
$ret[] = (isset($level['class'])?$level['class'].$level['type']:'').$level['function'].
($n > 0 && isset($backtrace[$n-1]['line']) ? ':'.$backtrace[$n-1]['line'] : ''). // add line number of call
- (!$level['class'] && !is_object($level['args'][0]) && $level['function'] != 'unserialize' ?
+ (empty($level['class']) && !is_object($level['args'][0]) && $level['function'] != 'unserialize' ?
'('.substr(str_replace(EGW_SERVER_ROOT,'',(string)$level['args'][0]),0,64).')' : '');
}
}
diff --git a/calendar/inc/class.calendar_bo.inc.php b/calendar/inc/class.calendar_bo.inc.php
index aec3aa376f..821b0ecab8 100644
--- a/calendar/inc/class.calendar_bo.inc.php
+++ b/calendar/inc/class.calendar_bo.inc.php
@@ -643,7 +643,7 @@ class calendar_bo
$offset = isset($params['offset']) && $params['offset'] !== false ? (int) $params['offset'] : false;
// socal::search() returns rejected group-invitations, as only the user not also the group is rejected
// as we cant remove them efficiantly in SQL, we kick them out here, but only if just one user is displayed
- $users_in = (array)$params_in['users'];
+ $users_in = (array)($params_in['users']??[]);
$remove_rejected_by_user = !in_array($filter,array('all','rejected','everything')) &&
count($users_in) == 1 && $users_in[0] > 0 ? $users_in[0] : null;
//error_log(__METHOD__.'('.array2string($params_in).", $sql_filter) params[users]=".array2string($params['users']).' --> remove_rejected_by_user='.array2string($remove_rejected_by_user));
@@ -655,7 +655,7 @@ class calendar_bo
}
// date2ts(,true) converts to server time, db2data converts again to user-time
$events =& $this->so->search(isset($start) ? $this->date2ts($start,true) : null,isset($end) ? $this->date2ts($end,true) : null,
- $users,$cat_id,$filter,$offset,(int)$params['num_rows'],$params,$remove_rejected_by_user);
+ $users,$cat_id,$filter,$offset,(int)($params['num_rows']??0),$params,$remove_rejected_by_user);
if (isset($params['cols']))
{
@@ -1091,7 +1091,7 @@ class calendar_bo
{
if (is_array($ids) || !isset(self::$cached_event['id']) || self::$cached_event['id'] != $ids ||
self::$cached_event_date_format != $date_format || $read_recurrence ||
- self::$cached_event['recur_type'] != MCAL_RECUR_NONE && self::$cached_event_date != $date)
+ !empty(self::$cached_event['recur_type']) && self::$cached_event_date != $date)
{
$events = $this->so->read($ids,$date ? $this->date2ts($date,true) : 0, $read_recurrence);
@@ -1362,7 +1362,7 @@ class calendar_bo
$owner = $event['owner'];
$private = !$event['public'];
}
- $grant = $grants[$owner];
+ $grant = $grants[$owner] ?? null;
// now any ACL rights (but invite rights!) implicate FREEBUSY rights (at least READ has to include FREEBUSY)
if ($grant & ~self::ACL_INVITE) $grant |= self::ACL_FREEBUSY;
diff --git a/calendar/inc/class.calendar_boupdate.inc.php b/calendar/inc/class.calendar_boupdate.inc.php
index 9b2d3c05cb..a48a29c62b 100644
--- a/calendar/inc/class.calendar_boupdate.inc.php
+++ b/calendar/inc/class.calendar_boupdate.inc.php
@@ -698,8 +698,8 @@ class calendar_boupdate extends calendar_bo
default:
if (is_array($new_event) && is_array($old_event))
{
- $diff = max(abs(self::date2ts($old_event['start'])-self::date2ts($new_event['start'])),
- abs(self::date2ts($old_event['end'])-self::date2ts($new_event['end'])));
+ $diff = max(abs(self::date2ts($old_event['start']??null)-self::date2ts($new_event['start']??null)),
+ abs(self::date2ts($old_event['end']??null)-self::date2ts($new_event['end']??null)));
$check = $ru == 'time_change_4h' ? 4 * 60 * 60 - 1 : 0;
if ($msg_type == MSG_MODIFIED && $diff > $check)
{
@@ -707,7 +707,7 @@ class calendar_boupdate extends calendar_bo
}
}
case 'add_cancel':
- if ($msg_is_response && is_array($old_event) && ($old_event['owner'] == $userid || $role == 'CHAIR') ||
+ if ($msg_is_response && is_array($old_event) && (isset($old_event['owner']) && $old_event['owner'] == $userid || $role == 'CHAIR') ||
$msg_type == MSG_DELETED || $msg_type == MSG_ADDED || $msg_type == MSG_DISINVITE)
{
++$want_update;
@@ -1354,7 +1354,7 @@ class calendar_boupdate extends calendar_bo
$ret = $this->_send_update(MSG_ALARM, $to_notify, $event, False, $alarm['owner'], $alarm);
// create a new alarm for recuring events for the next event, if one exists
- if ($event['recur_type'] != MCAL_RECUR_NONE && ($event = $this->read($alarm['cal_id'],$event_time_user+1)))
+ if (!empty($event['recur_type']) && ($event = $this->read($alarm['cal_id'],$event_time_user+1)))
{
$alarm['time'] = $this->date2ts($event['start']) - $alarm['offset'];
unset($alarm['times']);
@@ -1404,7 +1404,7 @@ class calendar_boupdate extends calendar_bo
$this->check_reset_statuses($event, $old_event);
// set recur-enddate/range-end to real end-date of last recurrence
- if ($event['recur_type'] != MCAL_RECUR_NONE && $event['recur_enddate'] && $event['start'])
+ if (!empty($event['recur_type']) && $event['recur_enddate'] && $event['start'])
{
$event['recur_enddate'] = new Api\DateTime($event['recur_enddate'], calendar_timezones::DateTimeZone($event['tzid']));
$event['recur_enddate']->setTime(23,59,59);
@@ -1576,7 +1576,7 @@ class calendar_boupdate extends calendar_bo
$set_recurrences = $old_event ? abs(Api\DateTime::to($event['recur_enddate'] ?? null, 'utc') - Api\DateTime::to($old_event['recur_enddate'] ?? null, 'utc')) > 1 ||
count($old_event['recur_exception'] ?? []) != count($event['recur_exception'] ?? []) : false;
$set_recurrences_start = 0;
- if (($cal_id = $this->so->save($event,$set_recurrences,$set_recurrences_start,0,$event['etag'])) && $set_recurrences && $event['recur_type'] != MCAL_RECUR_NONE)
+ if (($cal_id = $this->so->save($event,$set_recurrences,$set_recurrences_start,0,$event['etag'])) && $set_recurrences && !empty($event['recur_type']))
{
$save_event['id'] = $cal_id;
// unset participants to enforce the default stati for all added recurrences
@@ -1585,7 +1585,7 @@ class calendar_boupdate extends calendar_bo
}
// create links for new participants from addressbook, if configured
- if($cal_id && $GLOBALS['egw_info']['server']['link_contacts'] && !empty($save_event['participants']))
+ if($cal_id && !empty($GLOBALS['egw_info']['server']['link_contacts']) && !empty($save_event['participants']))
{
foreach($save_event['participants'] as $uid => $status)
{
@@ -1941,7 +1941,7 @@ class calendar_boupdate extends calendar_bo
$this->send_update(MSG_DELETED, $to_notify, $event);
}
- if (!$recur_date || $event['recur_type'] == MCAL_RECUR_NONE)
+ if (!$recur_date || empty($event['recur_type']))
{
$config = Api\Config::read('phpgwapi');
if ($event['deleted'])
@@ -1969,7 +1969,7 @@ class calendar_boupdate extends calendar_bo
}
// delete or keep (with new uid) exceptions of a recurring event
- if ($event['recur_type'] != MCAL_RECUR_NONE)
+ if (!empty($event['recur_type']))
{
$exceptions_kept = 0;
foreach ($this->so->get_related($event['uid']) as $id)
@@ -2190,7 +2190,7 @@ class calendar_boupdate extends calendar_bo
// Repeated Events
$var['recur_type'] = Array(
'field' => lang('Repetition'),
- 'data' => ($event['recur_type'] != MCAL_RECUR_NONE) ? $this->recure2string($event) : '',
+ 'data' => (!empty($event['recur_type'])) ? $this->recure2string($event) : '',
);
return $var;
}
@@ -2259,7 +2259,7 @@ class calendar_boupdate extends calendar_bo
foreach($event['alarm'] as &$alarm)
{
- if($event['recur_type'] != MCAL_RECUR_NONE && $instance_date)
+ if(!empty($event['recur_type']) && $instance_date)
{
calendar_so::shift_alarm($event, $alarm, $instance_date);
}
@@ -2425,7 +2425,7 @@ class calendar_boupdate extends calendar_bo
}
elseif ($filter == 'exact')
{
- if ($event['recur_type'] != MCAL_RECUR_NONE)
+ if (!empty($event['recur_type']))
{
$query[] = 'recur_type='.$event['recur_type'];
}
@@ -2450,7 +2450,7 @@ class calendar_boupdate extends calendar_bo
error_log(__FILE__.'['.__LINE__.'] '.__METHOD__.
'()[FOUND]:' . array2string($egwEvent)."\n",3,$this->logfile);
}
- if ($egwEvent['recur_type'] != MCAL_RECUR_NONE &&
+ if (!empty($egwEvent['recur_type']) &&
(empty($event['uid']) || $event['uid'] == $egwEvent['uid']))
{
if ($filter == 'master')
@@ -2461,7 +2461,7 @@ class calendar_boupdate extends calendar_bo
{
$matchingEvents[] = $egwEvent['id']; // we found the event
}
- elseif ($event['recur_type'] == MCAL_RECUR_NONE &&
+ elseif (empty($event['recur_type']) &&
$event['recurrence'] != 0)
{
$exceptions = $this->so->get_recurrence_exceptions($egwEvent, $event['tzid']);
@@ -2658,14 +2658,14 @@ class calendar_boupdate extends calendar_bo
$egwstart->setTimezone(self::$tz_cache[$egwEvent['tzid']]);
$dtstart = new Api\DateTime($event['start'], Api\DateTime::$server_timezone);
$dtstart->setTimezone(self::$tz_cache[$event['tzid']]);
- if ($egwEvent['recur_type'] == MCAL_RECUR_NONE &&
- $event['recur_type'] == MCAL_RECUR_NONE ||
- $egwEvent['recur_type'] != MCAL_RECUR_NONE &&
- $event['recur_type'] != MCAL_RECUR_NONE)
+ if (empty($egwEvent['recur_type']) &&
+ empty($event['recur_type']) ||
+ !empty($egwEvent['recur_type']) &&
+ !empty($event['recur_type']))
{
- if ($egwEvent['recur_type'] == MCAL_RECUR_NONE &&
+ if (empty(egwEvent['recur_type']) &&
$egwstart->format('Ymd') == $dtstart->format('Ymd') ||
- $egwEvent['recur_type'] != MCAL_RECUR_NONE)
+ !empty($egwEvent['recur_type']))
{
// We found an exact match
$matchingEvents = array($egwEvent['id']);
@@ -2684,8 +2684,8 @@ class calendar_boupdate extends calendar_bo
$matchingEvents = array($egwEvent['id']);
break;
}
- if ($egwEvent['recur_type'] != MCAL_RECUR_NONE &&
- $event['recur_type'] == MCAL_RECUR_NONE &&
+ if (!empty($egwEvent['recur_type']) &&
+ empty($event['recur_type']) &&
!$egwEvent['recurrence'] && $event['recurrence'])
{
$exceptions = $this->so->get_recurrence_exceptions($egwEvent, $event['tzid']);
@@ -2825,9 +2825,9 @@ class calendar_boupdate extends calendar_bo
}
}
- if ($event['recur_type'] == MCAL_RECUR_NONE)
+ if (empty($event['recur_type']))
{
- if ($egwEvent['recur_type'] != MCAL_RECUR_NONE)
+ if (!empty($egwEvent['recur_type']))
{
// We found a pseudo Exception
$pseudos[] = $egwEvent['id'] . ':' . $event['start'];
@@ -2964,7 +2964,7 @@ class calendar_boupdate extends calendar_bo
}
}
- if ($event['recur_type'] != MCAL_RECUR_NONE)
+ if (!empty($event['recur_type']))
{
$type = 'SERIES-MASTER';
}
diff --git a/calendar/inc/class.calendar_rrule.inc.php b/calendar/inc/class.calendar_rrule.inc.php
index cc6eedfa34..df282f846f 100644
--- a/calendar/inc/class.calendar_rrule.inc.php
+++ b/calendar/inc/class.calendar_rrule.inc.php
@@ -844,7 +844,7 @@ class calendar_rrule implements Iterator
$end = is_a($event['end'],'DateTime') ? clone $event['end'] : new Api\DateTime($event['end'],$timestamp_tz);
$end->setTimezone($enddate->getTimezone());
$enddate->setTime($end->format('H'),$end->format('i'),0);
- if($event['whole_day'])
+ if(!empty($event['whole_day']))
{
$enddate->setTime(23,59,59);
}
@@ -856,7 +856,7 @@ class calendar_rrule implements Iterator
$exceptions[] = is_a($exception,'DateTime') ? $exception : new Api\DateTime($exception,$timestamp_tz);
}
}
- return new calendar_rrule($time,$event['recur_type'],$event['recur_interval'],$enddate,$event['recur_data'],$exceptions);
+ return new calendar_rrule($time,$event['recur_type'],$event['recur_interval'],$enddate??null,$event['recur_data'],$exceptions??null);
}
/**
diff --git a/calendar/inc/class.calendar_so.inc.php b/calendar/inc/class.calendar_so.inc.php
index 4f3b35e44b..d72cb8ed51 100644
--- a/calendar/inc/class.calendar_so.inc.php
+++ b/calendar/inc/class.calendar_so.inc.php
@@ -159,7 +159,7 @@ class calendar_so
*/
protected function cal_range_view($start, $end, array $_where=null, $deleted=false)
{
- if ($GLOBALS['egw_info']['server']['no_timerange_views'] || !$start) // using view without start-date is slower!
+ if (!empty($GLOBALS['egw_info']['server']['no_timerange_views']) || !$start) // using view without start-date is slower!
{
return $this->cal_table; // no need / use for a view
}
@@ -424,7 +424,7 @@ class calendar_so
$this->db->update($this->cal_table, array('cal_uid' => $event['uid']),
array('cal_id' => $event['id']),__LINE__,__FILE__,'calendar');
}
- if (!(int)$recur_date && $event['recur_type'] != MCAL_RECUR_NONE)
+ if (!(int)$recur_date && !empty($event['recur_type']))
{
foreach($this->db->select($this->dates_table, 'cal_id,cal_start', array(
'cal_id' => $ids,
@@ -436,7 +436,7 @@ class calendar_so
break; // as above select read all exceptions (and I dont think too short uid problem still exists)
}
// make sure we fetch only real exceptions (deleted occurrences of a series should not show up)
- if (($recur_date && $event['recur_type'] != MCAL_RECUR_NONE))
+ if (($recur_date && !empty($event['recur_type'])))
{
//_debug_array(__METHOD__.__LINE__.' recur_date:'.$recur_date.' check cal_start:'.$event['start']);
foreach($this->db->select($this->dates_table, 'cal_id,cal_start', array(
@@ -468,7 +468,7 @@ class calendar_so
}
// check if we have a real recurance, if not set $recur_date=0
- if (is_array($ids) || $events[(int)$ids]['recur_type'] == MCAL_RECUR_NONE)
+ if (is_array($ids) || empty($events[(int)$ids]['recur_type']))
{
$recur_date = 0;
}
@@ -955,7 +955,7 @@ class calendar_so
$u_join = "JOIN $this->user_table ON $this->cal_table.cal_id=$this->user_table.cal_id ".
"LEFT JOIN $this->repeats_table ON $this->cal_table.cal_id=$this->repeats_table.cal_id ".
- $rejected_by_user_join;
+ ($rejected_by_user_join??'');
// dates table join only needed to enum recuring events, we use a time-range limited view here too
if ($params['enum_recuring'])
{
@@ -1217,7 +1217,7 @@ class calendar_so
{
foreach($alarms as $id => $alarm)
{
- $event_start = $alarm['time'] + $alarm['offset'];
+ $event_start = $alarm['time'] + ($alarm['offset']??0);
if (isset($events[$cal_id])) // none recuring event
{
@@ -1453,9 +1453,9 @@ ORDER BY cal_user_type, cal_usre_id
$cal_id = (int)($event['id'] ?? 0);
unset($event['id']);
- $set_recurrences = $set_recurrences || !$cal_id && $event['recur_type'] != MCAL_RECUR_NONE;
+ $set_recurrences = $set_recurrences || !$cal_id && !empty($event['recur_type']);
- if ($event['recur_type'] != MCAL_RECUR_NONE &&
+ if (!empty($event['recur_type']) &&
!(int)$event['recur_interval'])
{
$event['recur_interval'] = 1;
@@ -1474,7 +1474,7 @@ ORDER BY cal_user_type, cal_usre_id
if (isset($event['cal_start'])) $event['range_start'] = $event['cal_start'];
if (isset($event['cal_end']))
{
- $event['range_end'] = $event['recur_type'] == MCAL_RECUR_NONE ? $event['cal_end'] :
+ $event['range_end'] = empty($event['recur_type']) ? $event['cal_end'] :
($event['recur_enddate'] ? $event['recur_enddate'] : null);
}
// ensure that we find matching entries later on
@@ -1492,12 +1492,12 @@ ORDER BY cal_user_type, cal_usre_id
$event['cal_category'] = implode(',',$categories);
// make sure recurring events never reference to an other recurrent event
- if ($event['recur_type'] != MCAL_RECUR_NONE) $event['cal_reference'] = 0;
+ if (!empty($event['recur_type'])) $event['cal_reference'] = 0;
if ($cal_id)
{
// query old recurrance information, before updating main table, where recur_endate is now stored
- if ($event['recur_type'] != MCAL_RECUR_NONE)
+ if (!empty($event['recur_type']))
{
$old_repeats = $this->db->select($this->repeats_table, "$this->repeats_table.*,range_end AS recur_enddate",
"$this->repeats_table.cal_id=".(int)$cal_id, __LINE__, __FILE__,
@@ -1505,7 +1505,7 @@ ORDER BY cal_user_type, cal_usre_id
}
$where = array('cal_id' => $cal_id);
// read only timezone id, to check if it is changed
- if ($event['recur_type'] != MCAL_RECUR_NONE)
+ if (!empty($event['recur_type']))
{
$old_tz_id = $this->db->select($this->cal_table,'tz_id',$where,__LINE__,__FILE__,'calendar')->fetchColumn();
}
@@ -1552,7 +1552,7 @@ ORDER BY cal_user_type, cal_usre_id
$this->db->update($this->cal_table, $update, array('cal_id' => $cal_id),__LINE__,__FILE__,'calendar');
}
- if ($event['recur_type'] == MCAL_RECUR_NONE)
+ if (empty($event['recur_type']))
{
$this->db->delete($this->dates_table,array(
'cal_id' => $cal_id),
@@ -1764,7 +1764,7 @@ ORDER BY cal_user_type, cal_usre_id
}
}
// updating or saving the alarms; new alarms have a temporary numeric id!
- if (is_array($event['alarm']))
+ if (!empty($event['alarm']) && is_array($event['alarm']))
{
foreach ($event['alarm'] as $id => $alarm)
{
@@ -1812,7 +1812,7 @@ ORDER BY cal_user_type, cal_usre_id
*/
public static function shift_alarm(array $_event, array &$alarm, $timestamp=null)
{
- if ($_event['recur_type'] == MCAL_RECUR_NONE)
+ if (empty($_event['recur_type']))
{
return false;
}
@@ -2747,7 +2747,7 @@ ORDER BY cal_user_type, cal_usre_id
$cal_id = (int) $event['id'];
//error_log(__FILE__.'['.__LINE__.'] '.__METHOD__.
// "($cal_id, $tz_id, $filter): " . $event['tzid']);
- if (!$cal_id || $event['recur_type'] == MCAL_RECUR_NONE) return false;
+ if (!$cal_id || empty($event['recur_type'])) return false;
$days = array();
diff --git a/calendar/inc/class.calendar_tracking.inc.php b/calendar/inc/class.calendar_tracking.inc.php
index ecab598a28..2a83a203ec 100644
--- a/calendar/inc/class.calendar_tracking.inc.php
+++ b/calendar/inc/class.calendar_tracking.inc.php
@@ -125,7 +125,7 @@ class calendar_tracking extends Api\Storage\Tracking
{
// Don't try to track dates on recurring events.
// It won't change for the base event, and any change to the time creates an exception
- if($data['recur_type'])
+ if(!empty($data['recur_type']))
{
unset($data['start']); unset($data['end']);
unset($old['start']); unset($old['end']);
diff --git a/calendar/inc/class.calendar_zpush.inc.php b/calendar/inc/class.calendar_zpush.inc.php
index b143bdc4b2..a4d92dfab5 100644
--- a/calendar/inc/class.calendar_zpush.inc.php
+++ b/calendar/inc/class.calendar_zpush.inc.php
@@ -187,7 +187,7 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti
$type = $user = null;
$this->backend->splitID($id,$type,$user);
- if (!$cutoffdate) $cutoffdate = $this->bo->now - 100*24*3600; // default three month back -30 breaks all sync recurrences
+ if (!$cutoffdate) $cutoffdate = time() - 100*24*3600; // default three month back -30 breaks all sync recurrences
$filter = array(
'users' => $user,
@@ -783,7 +783,7 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti
}
// preserve all resource types not account, contact or email (eg. resources) for existing events
// $account is also preserved, as AS does not add him as participant!
- foreach((array)$event['participant_types'] as $type => $parts)
+ foreach($event['participant_types'] ?? [] as $type => $parts)
{
if (in_array($type,array('c','e'))) continue; // they are correctly representable in AS
@@ -800,10 +800,10 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti
}
}
// add calendar owner as participant, as otherwise event will NOT be in his calendar, in which it was posted
- if (!$event['id'] || !$participants || !isset($participants[$account]))
+ if (empty($event['id']) || !$participants || !isset($participants[$account]))
{
$participants[$account] = calendar_so::combine_status($account == $GLOBALS['egw_info']['user']['account_id'] ?
- 'A' : 'U',1,!$chair_set ? 'CHAIR' : 'REQ-PARTICIPANT');
+ 'A' : 'U',1,empty($chair_set) ? 'CHAIR' : 'REQ-PARTICIPANT');
}
$event['participants'] = $participants;
@@ -1138,12 +1138,12 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti
if (!$info) continue;
- if (!$info['email'] && $info['responsible'])
+ if (empty($info['email']) && !empty($info['responsible']))
{
$info['email'] = $GLOBALS['egw']->accounts->id2name($info['responsible'], 'account_email', true);
}
$attendee->name = empty($info['cn']) ? $info['name'] : $info['cn'];
- $attendee->email = $info['email'];
+ $attendee->email = $info['email'] ?? null;
// external organizer: make him AS organizer, to get correct notifications
if ($role == 'CHAIR' && $uid[0] == 'e' && !empty($attendee->email))
diff --git a/infolog/inc/class.infolog_hooks.inc.php b/infolog/inc/class.infolog_hooks.inc.php
index 3d58204cac..4ac74653cf 100644
--- a/infolog/inc/class.infolog_hooks.inc.php
+++ b/infolog/inc/class.infolog_hooks.inc.php
@@ -61,7 +61,7 @@ class infolog_hooks
),
'add' => array(
'menuaction' => 'infolog.infolog_ui.edit',
- 'type' => $GLOBALS['egw_info']['user']['preferences']['preferred_type']
+ 'type' => $GLOBALS['egw_info']['user']['preferences']['preferred_type'] ?? '',
),
'add_app' => 'action',
'add_id' => 'action_id',
diff --git a/infolog/inc/class.infolog_so.inc.php b/infolog/inc/class.infolog_so.inc.php
index 9a5edbe758..168cbd83c2 100644
--- a/infolog/inc/class.infolog_so.inc.php
+++ b/infolog/inc/class.infolog_so.inc.php
@@ -306,7 +306,7 @@ class infolog_so
{
$vars = null;
preg_match('/(done|open|offer|deleted|\+deleted)/',$_filter,$vars);
- $filter = $vars[1];
+ $filter = $vars[1]??null;
switch ($filter)
{
@@ -335,7 +335,7 @@ class infolog_so
{
$vars = null;
preg_match('/(open-upcoming|upcoming|today|overdue|date|enddate)([-\\/.0-9]*)/',$_filter,$vars);
- $filter = $vars[1];
+ $filter = $vars[1]??null;
if (isset($vars[2]) && !empty($vars[2]) && ($date = preg_split('/[-\\/.]/',$vars[2])))
{
@@ -866,7 +866,7 @@ class infolog_so
continue;
}
if ($col[0] != '#' && substr($col,0,5) != 'info_' && isset($table_def['fd']['info_'.$col])) $col = 'info_'.$col;
- if ((string)$data !== '' && preg_match('/^[a-z_0-9]+$/i',$col))
+ if ((!empty($data) || (string)$data !== '') && preg_match('/^[a-z_0-9]+$/i',$col))
{
switch ($col)
{
@@ -1034,12 +1034,12 @@ class infolog_so
if (is_null($index_load_cfs) && !empty($query['col_filter']['info_type']))
{
$config_data = Api\Config::read('infolog');
- $index_load_cfs = $config_data['index_load_cfs'];
+ $index_load_cfs = $config_data['index_load_cfs'] ?? [];
if (!is_array($index_load_cfs)) $index_load_cfs = explode(',', $index_load_cfs);
}
// if no specific custom field is selected, show/query all custom fields
- if ($ids && ($query['custom_fields'] || $query['csv_export'] ||
- $index_load_cfs && $query['col_filter']['info_type'] && in_array($query['col_filter']['info_type'],$index_load_cfs)))
+ if ($ids && (!empty($query['custom_fields']) || !empty($query['csv_export']) ||
+ $index_load_cfs && !empty($query['col_filter']['info_type']) && in_array($query['col_filter']['info_type'],$index_load_cfs)))
{
$where = array('info_id' => array_keys($ids));
if (!($query['csv_export'] || strchr(is_array($query['selectcols']) ? implode(',',$query['selectcols']):$query['selectcols'],'#') === false ||
diff --git a/infolog/inc/class.infolog_zpush.inc.php b/infolog/inc/class.infolog_zpush.inc.php
index c7d8dd4384..ec473650fd 100644
--- a/infolog/inc/class.infolog_zpush.inc.php
+++ b/infolog/inc/class.infolog_zpush.inc.php
@@ -242,7 +242,7 @@ class infolog_zpush implements activesync_plugin_write
$mimesupport = $contentparameters->GetMimeSupport();
$bodypreference = $contentparameters->GetBodyPreference(); /* fmbiete's contribution r1528, ZP-320 */
- ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid', $id, truncsize=$truncsize, bodyprefence=$bodypreference, mimesupport=$mimesupport)");
+ ZLog::Write(LOGLEVEL_DEBUG, __METHOD__."('$folderid', $id, truncsize=$truncsize, bodyprefence=".json_encode($bodypreference).", mimesupport=$mimesupport)");
$type = $account = null;
$this->backend->splitID($folderid, $type, $account);
if ($type != 'infolog' || !($infolog = $this->infolog->read($id, true, 'server')))
@@ -625,4 +625,4 @@ class infolog_zpush implements activesync_plugin_write
return $settings;
}
-}
+}
\ No newline at end of file
diff --git a/mail/inc/class.mail_zpush.inc.php b/mail/inc/class.mail_zpush.inc.php
index d0d9dcd5b2..c25907a95c 100644
--- a/mail/inc/class.mail_zpush.inc.php
+++ b/mail/inc/class.mail_zpush.inc.php
@@ -424,9 +424,9 @@ class mail_zpush implements activesync_plugin_write, activesync_plugin_sendmail,
{
$disableRuler = true;
}
- $beforePlain = $beforeHtml = "";
- $beforeHtml = ($disableRuler ?'
':'