mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 14:41:29 +01:00
next big chunk of fixed PHP 8.0 Warnings
This commit is contained in:
parent
e2ac0ab7b6
commit
ddddc5ba05
@ -204,7 +204,7 @@ class admin_ui
|
||||
$item['id'] = substr($item['extradata'], 11);
|
||||
unset($item['extradata']);
|
||||
$matches = null;
|
||||
if ($item['options'] && preg_match('/(egw_openWindowCentered2?|window.open)\([^)]+,(\d+),(\d+).*(title="([^"]+)")?/', $item['options'], $matches))
|
||||
if (!empty($item['options']) && preg_match('/(egw_openWindowCentered2?|window.open)\([^)]+,(\d+),(\d+).*(title="([^"]+)")?/', $item['options'], $matches))
|
||||
{
|
||||
$item['popup'] = $matches[2].'x'.$matches[3];
|
||||
if (isset($matches[5])) $item['tooltip'] = $matches[5];
|
||||
@ -213,7 +213,7 @@ class admin_ui
|
||||
}
|
||||
if (empty($item['icon'])) $item['icon'] = $app.'/navbar';
|
||||
if (empty($item['group'])) $item['group'] = $group;
|
||||
if (empty($item['onExecute'])) $item['onExecute'] = $item['popup'] ?
|
||||
if (empty($item['onExecute'])) $item['onExecute'] = !empty($item['popup']) ?
|
||||
'javaScript:nm_action' : 'javaScript:app.admin.iframe_location';
|
||||
if (!isset($item['allowOnMultiple'])) $item['allowOnMultiple'] = false;
|
||||
|
||||
@ -297,7 +297,7 @@ class admin_ui
|
||||
$item['id'] = substr($item['extradata'], 11);
|
||||
unset($item['extradata']);
|
||||
$matches = null;
|
||||
if ($item['options'] && preg_match('/(egw_openWindowCentered2?|window.open)\([^)]+,(\d+),(\d+).*(title="([^"]+)")?/', $item['options'], $matches))
|
||||
if (!empty($item['options']) && preg_match('/(egw_openWindowCentered2?|window.open)\([^)]+,(\d+),(\d+).*(title="([^"]+)")?/', $item['options'], $matches))
|
||||
{
|
||||
$item['popup'] = $matches[2].'x'.$matches[3];
|
||||
$item['onExecute'] = 'javaScript:nm_action';
|
||||
@ -326,7 +326,7 @@ class admin_ui
|
||||
public static function get_users(array $query, array &$rows=null)
|
||||
{
|
||||
$params = array(
|
||||
'type' => (int)$query['filter'] ? (int)$query['filter'] : 'accounts',
|
||||
'type' => (int)($query['filter'] ?? 0) ?: 'accounts',
|
||||
'start' => $query['start'],
|
||||
'offset' => $query['num_rows'],
|
||||
'order' => $query['order'],
|
||||
@ -334,7 +334,7 @@ class admin_ui
|
||||
'active' => !empty($query['active']) ? $query['active'] : false,
|
||||
);
|
||||
// Make sure active filter give status what it needs
|
||||
switch($query['filter2'])
|
||||
switch($query['filter2'] ?? '')
|
||||
{
|
||||
case 'disabled':
|
||||
case 'expired':
|
||||
@ -356,12 +356,12 @@ class admin_ui
|
||||
break;
|
||||
}
|
||||
|
||||
if ($query['searchletter'])
|
||||
if (!empty($query['searchletter']))
|
||||
{
|
||||
$params['query'] = $query['searchletter'];
|
||||
$params['query_type'] = 'start';
|
||||
}
|
||||
elseif($query['search'])
|
||||
elseif(!empty($query['search']))
|
||||
{
|
||||
$params['query'] = $query['search'];
|
||||
$params['query_type'] = 'all';
|
||||
@ -377,7 +377,7 @@ class admin_ui
|
||||
foreach($rows as $key => &$row)
|
||||
{
|
||||
// Filter by status
|
||||
if ($need_status_filter && !static::filter_status($need_status_filter, $row))
|
||||
if (!empty($need_status_filter) && !static::filter_status($need_status_filter, $row))
|
||||
{
|
||||
unset($rows[$key]);
|
||||
$total--;
|
||||
@ -391,8 +391,8 @@ class admin_ui
|
||||
|
||||
if (!self::$accounts->is_active($row)) $row['status_class'] = 'adminAccountInactive';
|
||||
}
|
||||
// finally limit query, if status filter was used
|
||||
if ($need_status_filter)
|
||||
// finally, limit query, if status filter was used
|
||||
if (!empty($need_status_filter))
|
||||
{
|
||||
$rows = array_values(array_slice($rows, (int)$query['start'], $query['num_rows'] ?: count($rows)));
|
||||
}
|
||||
@ -436,9 +436,9 @@ class admin_ui
|
||||
{
|
||||
$groups = $GLOBALS['egw']->accounts->search(array(
|
||||
'type' => 'groups',
|
||||
'query' => $query['search'],
|
||||
'order' => $query['order'],
|
||||
'sort' => $query['sort'],
|
||||
'query' => $query['search'] ?? null,
|
||||
'order' => $query['order'] ?? null,
|
||||
'sort' => $query['sort'] ?? null,
|
||||
'start' => (int)$query['start'],
|
||||
'offset' => (int)$query['num_rows']
|
||||
));
|
||||
@ -463,7 +463,7 @@ class admin_ui
|
||||
$run_rights = $GLOBALS['egw']->acl->get_user_applications($group['account_id'], false, false);
|
||||
foreach($apps as $app)
|
||||
{
|
||||
if((boolean)$run_rights[$app])
|
||||
if(!empty($run_rights[$app]))
|
||||
{
|
||||
$group['apps'][] = $app;
|
||||
}
|
||||
@ -537,7 +537,7 @@ class admin_ui
|
||||
if (!empty($data['icon']))
|
||||
{
|
||||
$icon = Etemplate\Widget\Tree::imagePath($data['icon']);
|
||||
if ($data['child'] || $data[Tree::CHILDREN])
|
||||
if (!empty($data['child']) || !empty($data[Tree::CHILDREN]))
|
||||
{
|
||||
$data[Tree::IMAGE_FOLDER_OPEN] = $data[Tree::IMAGE_FOLDER_CLOSED] = $icon;
|
||||
}
|
||||
|
@ -223,7 +223,7 @@ class Accounts
|
||||
if (!empty($param['offset']) && !isset($param['start'])) $param['start'] = 0;
|
||||
|
||||
// Check for lang(Group) in search - if there, we search all groups
|
||||
$group_index = array_search(strtolower(lang('Group')), array_map('strtolower', $query = explode(' ',$param['query'])));
|
||||
$group_index = array_search(strtolower(lang('Group')), array_map('strtolower', $query = explode(' ',$param['query'] ?? '')));
|
||||
if($group_index !== FALSE && !(
|
||||
in_array($param['type'], array('accounts', 'groupmembers')) || is_int($param['type'])
|
||||
))
|
||||
@ -595,12 +595,12 @@ class Accounts
|
||||
/**
|
||||
* Return formatted username for a given account_id
|
||||
*
|
||||
* @param string $account_id =null account id
|
||||
* @return string full name of user or "#$accountid" if user not found
|
||||
* @param int $account_id account id
|
||||
* @return string full name of user or "#$account_id" if user not found
|
||||
*/
|
||||
static function username($account_id=null)
|
||||
static function username(int $account_id)
|
||||
{
|
||||
if ($account_id && !($account = self::cache_read((int)$account_id)))
|
||||
if (!($account = self::cache_read($account_id)))
|
||||
{
|
||||
return '#'.$account_id;
|
||||
}
|
||||
|
@ -50,12 +50,12 @@ class Box extends Etemplate\Widget
|
||||
$old_expand = $params[1];
|
||||
|
||||
if ($this->id && $this->type != 'groupbox') $cname = self::form_name($cname, $this->id, $params[1]);
|
||||
if ($expand['cname'] !== $cname && trim($cname) != '')
|
||||
if (!empty($expand['cname']) && $expand['cname'] !== $cname && trim($cname))
|
||||
{
|
||||
$expand['cont'] =& self::get_array(self::$request->content, $cname);
|
||||
$expand['cname'] = $cname;
|
||||
}
|
||||
if ($respect_disabled && ($disabled = $this->attrs['disabled'] && self::check_disabled($this->attrs['disabled'], $expand)))
|
||||
if ($respect_disabled && isset($this->attrs['disabled']) && self::check_disabled($this->attrs['disabled'], $expand))
|
||||
{
|
||||
//error_log(__METHOD__."('$method_name', ".array2string($params).', '.array2string($respect_disabled).") $this disabled='{$this->attrs['disabled']}'=".array2string($disabled).": NOT running");
|
||||
return;
|
||||
@ -73,7 +73,7 @@ class Box extends Etemplate\Widget
|
||||
|
||||
// Expand children
|
||||
$columns_disabled = null;
|
||||
if($this->id && $this->children[0] && strpos($this->children[0]->id, '$') !== false)
|
||||
if($this->id && isset($this->children[0]) && strpos($this->children[0]->id, '$') !== false)
|
||||
{
|
||||
// Need to set this so the first child can repeat
|
||||
$expand['row'] = 0;
|
||||
|
@ -111,7 +111,7 @@ class Date extends Transformer
|
||||
{
|
||||
$date = Api\DateTime::server2user($value);
|
||||
}
|
||||
elseif ($this->attrs['data_format'] && $this->attrs['data_format'] !== 'object')
|
||||
elseif (!empty($this->attrs['data_format']) && $this->attrs['data_format'] !== 'object')
|
||||
{
|
||||
$date = Api\DateTime::createFromFormat($this->attrs['data_format'], $value, Api\DateTime::$user_timezone);
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ class Grid extends Box
|
||||
$columns_disabled = array();
|
||||
}
|
||||
|
||||
if ($respect_disabled && ($disabled = $this->attrs['disabled'] && self::check_disabled($this->attrs['disabled'], $expand)))
|
||||
if ($respect_disabled && isset($this->attrs['disabled']) && self::check_disabled($this->attrs['disabled'], $expand))
|
||||
{
|
||||
//error_log(__METHOD__."('$method_name', ".array2string($params).', '.array2string($respect_disabled).") $this disabled='{$this->attrs['disabled']}'=".array2string($disabled).": NOT running");
|
||||
$params[0] = $old_cname;
|
||||
@ -89,7 +89,7 @@ class Grid extends Box
|
||||
}
|
||||
|
||||
if ($this->id && $this->type !== 'row') $cname = self::form_name($cname, $this->id, $expand);
|
||||
if ($expand['cname'] !== $cname && $cname)
|
||||
if (!empty($expand['cname']) && $expand['cname'] !== $cname && $cname)
|
||||
{
|
||||
$expand['cont'] =& self::get_array(self::$request->content, $cname);
|
||||
$expand['cname'] = $cname;
|
||||
|
@ -496,17 +496,10 @@ abstract class Framework extends Framework\Extra
|
||||
{
|
||||
$lang_code = $GLOBALS['egw_info']['user']['preferences']['common']['lang'];
|
||||
}
|
||||
// IE specific fixes
|
||||
if (Header\UserAgent::type() == 'msie')
|
||||
{
|
||||
// tell IE to use it's own mode, not old compatibility modes (set eg. via group policy for all intranet sites)
|
||||
// has to be before any other header tags, but meta and title!!!
|
||||
$pngfix = '<meta http-equiv="X-UA-Compatible" content="IE=edge" />'."\n";
|
||||
}
|
||||
|
||||
$app = $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
$app_title = isset($GLOBALS['egw_info']['apps'][$app]) ? $GLOBALS['egw_info']['apps'][$app]['title'] : lang($app);
|
||||
$app_header = $GLOBALS['egw_info']['flags']['app_header'] ? $GLOBALS['egw_info']['flags']['app_header'] : $app_title;
|
||||
$app_header = $GLOBALS['egw_info']['flags']['app_header'] ?? $app_title;
|
||||
$site_title = strip_tags($GLOBALS['egw_info']['server']['site_title'].' ['.($app_header ? $app_header : $app_title).']');
|
||||
|
||||
// send appheader to clientside
|
||||
@ -516,7 +509,7 @@ abstract class Framework extends Framework\Extra
|
||||
|
||||
$var['favicon_file'] = self::get_login_logo_or_bg_url('favicon_file', 'favicon.ico');
|
||||
|
||||
if ($GLOBALS['egw_info']['flags']['include_wz_tooltip'] &&
|
||||
if (!empty($GLOBALS['egw_info']['flags']['include_wz_tooltip']) &&
|
||||
file_exists(EGW_SERVER_ROOT.($wz_tooltip = '/phpgwapi/js/wz_tooltip/wz_tooltip.js')))
|
||||
{
|
||||
$include_wz_tooltip = '<script src="'.$GLOBALS['egw_info']['server']['webserver_url'].
|
||||
@ -525,7 +518,6 @@ abstract class Framework extends Framework\Extra
|
||||
return $this->_get_css()+array(
|
||||
'img_icon' => $var['favicon_file'],
|
||||
'img_shortcut' => $var['favicon_file'],
|
||||
'pngfix' => $pngfix,
|
||||
'lang_code' => $lang_code,
|
||||
'charset' => Translation::charset(),
|
||||
'website_title' => $site_title,
|
||||
@ -533,7 +525,7 @@ abstract class Framework extends Framework\Extra
|
||||
'java_script' => self::_get_js($extra),
|
||||
'meta_robots' => $robots,
|
||||
'dir_code' => lang('language_direction_rtl') != 'rtl' ? '' : ' dir="rtl"',
|
||||
'include_wz_tooltip'=> $include_wz_tooltip,
|
||||
'include_wz_tooltip'=> $include_wz_tooltip ?? '',
|
||||
'webserver_url' => $GLOBALS['egw_info']['server']['webserver_url'],
|
||||
'darkmode' => !empty(Cache::getSession('api','darkmode')) ?? $GLOBALS['egw_info']['user']['preferences']['common']['darkmode']
|
||||
);
|
||||
@ -602,12 +594,12 @@ abstract class Framework extends Framework\Extra
|
||||
*/
|
||||
static function get_login_logo_or_bg_url ($type, $find_type)
|
||||
{
|
||||
$url = is_array($GLOBALS['egw_info']['server'][$type]) ?
|
||||
$url = !empty($GLOBALS['egw_info']['server'][$type]) && is_array($GLOBALS['egw_info']['server'][$type]) ?
|
||||
$GLOBALS['egw_info']['server'][$type][0] :
|
||||
$GLOBALS['egw_info']['server'][$type];
|
||||
$GLOBALS['egw_info']['server'][$type] ?? null;
|
||||
|
||||
if (substr($url, 0, 4) == 'http' ||
|
||||
$url[0] == '/')
|
||||
if (substr($url, 0, 4) === 'http' ||
|
||||
!empty($url) && $url[0] === '/')
|
||||
{
|
||||
return $url;
|
||||
}
|
||||
@ -801,7 +793,7 @@ abstract class Framework extends Framework\Extra
|
||||
$index = '/index.php?menuaction='.$data['index'];
|
||||
}
|
||||
}
|
||||
return self::link($index,$GLOBALS['egw_info']['flags']['params'][$app]);
|
||||
return self::link($index, $GLOBALS['egw_info']['flags']['params'][$app] ?? '');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -982,7 +974,7 @@ abstract class Framework extends Framework\Extra
|
||||
{
|
||||
if (file_exists(EGW_SERVER_ROOT.$theme_css)) break;
|
||||
}
|
||||
$debug_minify = $GLOBALS['egw_info']['server']['debug_minify'] === 'True';
|
||||
$debug_minify = !empty($GLOBALS['egw_info']['server']['debug_minify']) && $GLOBALS['egw_info']['server']['debug_minify'] === 'True';
|
||||
if (!$debug_minify && file_exists(EGW_SERVER_ROOT.($theme_min_css = str_replace('.css', '.min.css', $theme_css))))
|
||||
{
|
||||
//error_log(__METHOD__."() Framework\CssIncludes::get()=".array2string(Framework\CssIncludes::get()));
|
||||
@ -1110,8 +1102,7 @@ abstract class Framework extends Framework\Extra
|
||||
if(@isset($_GET['menuaction']))
|
||||
{
|
||||
list(, $class) = explode('.',$_GET['menuaction']);
|
||||
if(is_array($GLOBALS[$class]->public_functions) &&
|
||||
$GLOBALS[$class]->public_functions['java_script'])
|
||||
if (!empty($GLOBALS[$class]->public_functions['java_script']))
|
||||
{
|
||||
$java_script .= $GLOBALS[$class]->java_script();
|
||||
}
|
||||
@ -1578,8 +1569,8 @@ abstract class Framework extends Framework\Extra
|
||||
foreach(Framework\CssIncludes::get() as $path)
|
||||
{
|
||||
unset($query);
|
||||
list($path,$query) = explode('?',$path,2);
|
||||
$path .= '?'. ($query ? $query : filemtime(EGW_SERVER_ROOT.$path));
|
||||
list($path,$query) = explode('?', $path,2)+[null,null];
|
||||
$path .= '?'. ($query ?? filemtime(EGW_SERVER_ROOT.$path));
|
||||
$response->includeCSS($GLOBALS['egw_info']['server']['webserver_url'].$path);
|
||||
}
|
||||
|
||||
|
@ -63,8 +63,8 @@ class Hooks
|
||||
$location = is_array($args) ? (isset($args['hook_location']) ? $args['hook_location'] : $args['location']) : $args;
|
||||
|
||||
if (!isset(self::$locations)) self::read();
|
||||
if (empty(self::$locations[$location])) return []; // not a single app implements that hook
|
||||
$hooks = self::$locations[$location];
|
||||
if (!isset($hooks) || empty($hooks)) return array(); // not a single app implements that hook
|
||||
|
||||
$apps = array_keys($hooks);
|
||||
if (!$no_permission_check)
|
||||
@ -115,7 +115,7 @@ class Hooks
|
||||
}
|
||||
|
||||
$ret = array();
|
||||
foreach((array)self::$locations[$location][$appname] as $hook)
|
||||
foreach(self::$locations[$location][$appname] ?? [] as $hook)
|
||||
{
|
||||
try {
|
||||
// old style file hook
|
||||
@ -130,7 +130,7 @@ class Hooks
|
||||
return true;
|
||||
}
|
||||
|
||||
list($class, $method) = explode('::', $hook);
|
||||
list($class, $method) = explode('::', $hook)+[null,null];
|
||||
|
||||
// static method of an autoloadable class
|
||||
if (isset($method) && class_exists($class))
|
||||
|
@ -762,7 +762,7 @@ class Link extends Link\Storage
|
||||
if ($must_support && !isset($reg[$must_support])) continue;
|
||||
|
||||
list($app) = explode('-', $type);
|
||||
if ($GLOBALS['egw_info']['user']['apps'][$app])
|
||||
if (!empty($GLOBALS['egw_info']['user']['apps'][$app]))
|
||||
{
|
||||
$apps[$type] = lang(self::get_registry($type, 'name'));
|
||||
}
|
||||
@ -1132,7 +1132,7 @@ class Link extends Link\Storage
|
||||
*/
|
||||
static function get_registry($app, $name, $url_id=false)
|
||||
{
|
||||
$reg = self::$app_register[$app];
|
||||
$reg = self::$app_register[$app] ?? null;
|
||||
|
||||
if (!isset($reg)) return false;
|
||||
|
||||
@ -1181,7 +1181,7 @@ class Link extends Link\Storage
|
||||
return $str;
|
||||
}
|
||||
|
||||
return isset($reg) ? $reg[$name] : false;
|
||||
return $reg[$name] ?? false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2950,7 +2950,7 @@ class Mail
|
||||
// Trigger examination of namespace to retrieve
|
||||
// folders located in other and shared; needed only for some servers
|
||||
if (is_null(self::$mailConfig)) self::$mailConfig = Config::read('mail');
|
||||
if (self::$mailConfig['examineNamespace'])
|
||||
if (!empty(self::$mailConfig['examineNamespace']))
|
||||
{
|
||||
$prefixes=array();
|
||||
if (is_array($nameSpace))
|
||||
@ -3014,7 +3014,7 @@ class Mail
|
||||
$subFolders = $this->icServer->getMailboxes($node['MAILBOX'].$node['delimiter'], $_search, true);
|
||||
}
|
||||
|
||||
if (is_array($mainFolder['INBOX']))
|
||||
if (isset($mainFolder['INBOX']) && is_array($mainFolder['INBOX']))
|
||||
{
|
||||
// Array container of auto folders
|
||||
$aFolders = array();
|
||||
@ -3180,7 +3180,7 @@ class Mail
|
||||
{
|
||||
foreach(array('others','shared') as $type)
|
||||
{
|
||||
if ($nameSpace[$type]['prefix_present']&&$nameSpace[$type]['prefix'])
|
||||
if (!empty($nameSpace[$type]['prefix_present']) && !empty($nameSpace[$type]['prefix']))
|
||||
{
|
||||
if (substr($k,0,strlen($nameSpace[$type]['prefix']))==$nameSpace[$type]['prefix']||
|
||||
substr($k,0,strlen($nameSpace[$type]['prefix'])-strlen($nameSpace[$type]['delimiter']))==substr($nameSpace[$type]['prefix'],0,strlen($nameSpace[$type]['delimiter'])*-1)) {
|
||||
@ -3211,7 +3211,7 @@ class Mail
|
||||
}
|
||||
//error_log(__METHOD__.__LINE__.array2string($autoFolderObjects));
|
||||
if (!$isGoogleMail) {
|
||||
$folders = array_merge($inboxFolderObject,$autoFolderObjects,(array)$inboxSubFolderObjects,(array)$folders,(array)$typeFolderObject['others'],(array)$typeFolderObject['shared']);
|
||||
$folders = array_merge($inboxFolderObject,$autoFolderObjects,(array)$inboxSubFolderObjects,(array)$folders,(array)$typeFolderObject['others'] ?? [],(array)$typeFolderObject['shared'] ?? []);
|
||||
} else {
|
||||
// avoid calling sortByAutoFolder as it is not regarding subfolders
|
||||
$gAutoFolderObjectsTmp = $googleAutoFolderObjects;
|
||||
@ -3910,7 +3910,7 @@ class Mail
|
||||
{
|
||||
//error_log(__METHOD__.' ('.__LINE__.') '.'->'.array2string($_messageUID).','.array2string($_folder).', '.$_forceDeleteMethod);
|
||||
$oldMailbox = '';
|
||||
if (is_null($_folder) || empty($_folder)) $_folder = $this->sessionData['mailbox'];
|
||||
if (empty($_folder) && !empty($this->sessionData['mailbox'])) $_folder = $this->sessionData['mailbox'];
|
||||
if (empty($_messageUID))
|
||||
{
|
||||
if (self::$debug) error_log(__METHOD__." no messages Message(s): ".implode(',',$_messageUID));
|
||||
|
@ -313,7 +313,7 @@ class Account implements \ArrayAccess
|
||||
try {
|
||||
if ($this->acc_imap_type != __NAMESPACE__.'\\Imap' &&
|
||||
// do NOT query IMAP server, if we are in forward-only delivery-mode, imap will NOT answer, as switched off for that account!
|
||||
$this->params['deliveryMode'] != Smtp::FORWARD_ONLY && $need_quota &&
|
||||
($this->params['deliveryMode'] ?? null) != Smtp::FORWARD_ONLY && $need_quota &&
|
||||
$this->imapServer($this->user) && is_a($this->imapServer, __NAMESPACE__.'\\Imap') &&
|
||||
($data = $this->imapServer->getUserData($GLOBALS['egw']->accounts->id2name($this->user))))
|
||||
{
|
||||
@ -335,7 +335,7 @@ class Account implements \ArrayAccess
|
||||
}
|
||||
$this->params += array_fill_keys(self::$user_data, null); // make sure all keys exist now
|
||||
|
||||
return (array)$data + (array)$smtp_data;
|
||||
return ($data ?? []) + ($smtp_data ?? []);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -454,10 +454,10 @@ class Account implements \ArrayAccess
|
||||
$this->smtpServer->host = 'tls://'.$this->smtpServer->host;
|
||||
}
|
||||
$this->smtpServer->smtpAuth = !empty($this->params['acc_smtp_username']);
|
||||
$this->smtpServer->username = $this->params['acc_smtp_username'];
|
||||
$this->smtpServer->password = $this->params['acc_smtp_password'];
|
||||
$this->smtpServer->username = $this->params['acc_smtp_username'] ?? null;
|
||||
$this->smtpServer->password = $this->params['acc_smtp_password'] ?? null;
|
||||
$this->smtpServer->defaultDomain = $this->params['acc_domain'];
|
||||
$this->smtpServer->loginType = $this->params['acc_imap_login_type'];
|
||||
$this->smtpServer->loginType = $this->params['acc_imap_login_type'] ?? null;
|
||||
}
|
||||
return $this->smtpServer;
|
||||
}
|
||||
@ -676,7 +676,7 @@ class Account implements \ArrayAccess
|
||||
$to_replace = array();
|
||||
foreach($fields as $name)
|
||||
{
|
||||
if (strpos($identity[$name], '{{') !== false || strpos($identity[$name], '$$') !== false)
|
||||
if (!empty($identity[$name]) && (strpos($identity[$name], '{{') !== false || strpos($identity[$name], '$$') !== false))
|
||||
{
|
||||
$to_replace[$name] = $identity[$name];
|
||||
}
|
||||
@ -837,7 +837,7 @@ class Account implements \ArrayAccess
|
||||
// let getUserData "know" if we are interested in quota (requiring IMAP login) or not
|
||||
$this->getUserData(substr($name, 0, 5) === 'quota');
|
||||
}
|
||||
return $this->params[$name];
|
||||
return $this->params[$name] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1578,7 +1578,7 @@ class Account implements \ArrayAccess
|
||||
'ident_realname' => $account['ident_realname'],
|
||||
'ident_org' => $account['ident_org'],
|
||||
'ident_email' => $account['ident_email'],
|
||||
'acc_name' => $account['acc_name'],
|
||||
'acc_name' => $account['acc_name'] ?? null,
|
||||
'acc_imap_username' => $account['acc_imap_username'],
|
||||
'acc_imap_logintype' => $account['acc_imap_logintype'],
|
||||
'acc_domain' => $account['acc_domain'],
|
||||
@ -1605,7 +1605,7 @@ class Account implements \ArrayAccess
|
||||
}
|
||||
}
|
||||
// fill an empty ident_realname or ident_email of current user with data from user account
|
||||
if ($replace_placeholders && (!isset($account_id) || $account_id == $GLOBALS['egw_info']['user']['acount_id']))
|
||||
if ($replace_placeholders && (!isset($account_id) || $account_id == $GLOBALS['egw_info']['user']['account_id']))
|
||||
{
|
||||
if (empty($account['ident_realname'])) $account['ident_realname'] = $GLOBALS['egw_info']['user']['account_fullname'];
|
||||
if (empty($account['ident_email'])) $account['ident_email'] = $GLOBALS['egw_info']['user']['account_email'];
|
||||
|
@ -87,7 +87,7 @@ class Notifications
|
||||
$account_specific = $account_id;
|
||||
}
|
||||
}
|
||||
$folders = (array)self::$cache[$acc_id][$account_specific];
|
||||
$folders = self::$cache[$acc_id][$account_specific] ?? [];
|
||||
if (!$return_empty_marker && $folders == array(null)) $folders = array();
|
||||
$result = array(
|
||||
'notify_folders' => $folders,
|
||||
|
@ -1538,21 +1538,21 @@ class Session
|
||||
}
|
||||
|
||||
// check if the url already contains a query and ensure that vars is an array and all strings are in extravars
|
||||
if (strpos($ret_url=$url, '?') !== false) list($ret_url,$othervars) = explode('?', $url, 2);
|
||||
if (strpos($ret_url=$url, '?') !== false) list($ret_url,$othervars) = explode('?', $url, 2)+[null,null];
|
||||
if ($extravars && is_array($extravars))
|
||||
{
|
||||
$vars += $extravars;
|
||||
$extravars = $othervars;
|
||||
}
|
||||
else
|
||||
elseif (!empty($othervars))
|
||||
{
|
||||
if ($othervars) $extravars .= ($extravars?'&':'').$othervars;
|
||||
$extravars .= ($extravars ? '&' : '') . $othervars;
|
||||
}
|
||||
|
||||
// parse extravars string into the vars array
|
||||
if ($extravars)
|
||||
if (!empty($extravars))
|
||||
{
|
||||
foreach(explode('&',$extravars) as $expr)
|
||||
foreach(explode('&', $extravars) as $expr)
|
||||
{
|
||||
list($var,$val) = explode('=', $expr,2);
|
||||
if (strpos($val,'%26') != false) $val = str_replace('%26','&',$val); // make sure to not double encode &
|
||||
|
@ -52,7 +52,12 @@ abstract class Merge
|
||||
/**
|
||||
* Fields that are to be treated as datetimes, when merged into spreadsheets
|
||||
*/
|
||||
var $date_fields = array();
|
||||
var $date_fields = [];
|
||||
|
||||
/**
|
||||
* Fields that are numeric, for special numeric handling
|
||||
*/
|
||||
protected $numeric_fields = [];
|
||||
|
||||
/**
|
||||
* Mimetype of document processed by merge
|
||||
@ -81,10 +86,10 @@ abstract class Merge
|
||||
*/
|
||||
public $export_limit;
|
||||
|
||||
|
||||
public $public_functions = array(
|
||||
"merge_entries" => true
|
||||
);
|
||||
|
||||
/**
|
||||
* Configuration for HTML Tidy to clean up any HTML content that is kept
|
||||
*/
|
||||
@ -241,7 +246,7 @@ abstract class Merge
|
||||
$replacements = array();
|
||||
foreach(array_keys($this->contacts->contact_fields) as $name)
|
||||
{
|
||||
$value = $contact[$name];
|
||||
$value = $contact[$name] ?? null;
|
||||
switch($name)
|
||||
{
|
||||
case 'created': case 'modified':
|
||||
@ -358,7 +363,9 @@ abstract class Merge
|
||||
$cats[$cat_id] = array();
|
||||
}
|
||||
}
|
||||
foreach($cats as $main => $cat) {
|
||||
$replacements['$$'.($prefix ? $prefix.'/':'').'categories$$'] = '';
|
||||
foreach($cats as $main => $cat)
|
||||
{
|
||||
$replacements['$$'.($prefix ? $prefix.'/':'').'categories$$'] .= $GLOBALS['egw']->categories->id2name($main,'name')
|
||||
. (count($cat) > 0 ? ': ' : '') . implode(', ', $cats[$main]) . "\n";
|
||||
}
|
||||
@ -843,7 +850,7 @@ abstract class Merge
|
||||
$content = preg_replace(array_keys($fix),array_values($fix),$content);
|
||||
//die("<pre>".htmlspecialchars($content)."</pre>\n");
|
||||
}
|
||||
list($contentstart,$contentrepeat,$contentend) = preg_split('/\$\$pagerepeat\$\$/',$content,-1, PREG_SPLIT_NO_EMPTY); //get differt parts of document, seperatet by Pagerepeat
|
||||
list($contentstart,$contentrepeat,$contentend) = preg_split('/\$\$pagerepeat\$\$/',$content,-1, PREG_SPLIT_NO_EMPTY)+[null,null,null]; //get differt parts of document, seperatet by Pagerepeat
|
||||
if ($mimetype == 'text/plain' && $ids && count($ids) > 1)
|
||||
{
|
||||
// textdocuments are simple, they do not hold start and end, but they may have content before and after the $$pagerepeat$$ tag
|
||||
@ -887,11 +894,11 @@ abstract class Merge
|
||||
$contentstart .= '<w:body>';
|
||||
$contentend = '</w:body></w:document>';
|
||||
}
|
||||
list($Labelstart,$Labelrepeat,$Labeltend) = preg_split('/\$\$label\$\$/',$contentrepeat,-1, PREG_SPLIT_NO_EMPTY); //get the Lable content
|
||||
list($Labelstart,$Labelrepeat,$Labeltend) = preg_split('/\$\$label\$\$/',$contentrepeat,-1, PREG_SPLIT_NO_EMPTY)+[null,null,null]; //get the label content
|
||||
preg_match_all('/\$\$labelplacement\$\$/',$contentrepeat,$countlables, PREG_SPLIT_NO_EMPTY);
|
||||
$countlables = count($countlables[0]);
|
||||
preg_replace('/\$\$labelplacement\$\$/','',$Labelrepeat,1);
|
||||
if ($countlables > 1) $lableprint = true;
|
||||
$lableprint = $countlables > 1;
|
||||
if (count($ids) > 1 && !$contentrepeat)
|
||||
{
|
||||
$err = lang('for more than one contact in a document use the tag pagerepeat!');
|
||||
@ -1136,7 +1143,7 @@ abstract class Merge
|
||||
{
|
||||
foreach($this->date_fields as $field)
|
||||
{
|
||||
if(($value = $replacements['$$'.$field.'$$']))
|
||||
if(($value = $replacements['$$'.$field.'$$'] ?? null))
|
||||
{
|
||||
$time = Api\DateTime::createFromFormat('+'.Api\DateTime::$user_dateformat.' '.Api\DateTime::$user_timeformat.'*', $value);
|
||||
$replacements['$$'.$field.'/date$$'] = $time ? $time->format(Api\DateTime::$user_dateformat) : '';
|
||||
@ -1259,7 +1266,8 @@ abstract class Merge
|
||||
// Look for numbers, set their value if needed
|
||||
if(property_exists($this,'numeric_fields') || count($names))
|
||||
{
|
||||
foreach((array)$this->numeric_fields as $fieldname) {
|
||||
foreach($this->numeric_fields as $fieldname)
|
||||
{
|
||||
$names[] = preg_quote($fieldname,'/');
|
||||
}
|
||||
$this->format_spreadsheet_numbers($content, $names, $mimetype.$mso_application_progid);
|
||||
@ -1352,7 +1360,8 @@ abstract class Merge
|
||||
*/
|
||||
protected function format_spreadsheet_numbers(&$content, $names, $mimetype)
|
||||
{
|
||||
foreach((array)$this->numeric_fields as $fieldname) {
|
||||
foreach($this->numeric_fields as $fieldname)
|
||||
{
|
||||
$names[] = preg_quote($fieldname,'/');
|
||||
}
|
||||
switch($mimetype)
|
||||
@ -1376,7 +1385,7 @@ abstract class Merge
|
||||
|
||||
break;
|
||||
}
|
||||
if($format && $names)
|
||||
if (!empty($format) && $names)
|
||||
{
|
||||
// Dealing with backtrack limit per AmigoJack 10-Jul-2010 comment on php.net preg-replace docs
|
||||
do {
|
||||
|
@ -1255,7 +1255,7 @@ class Vfs extends Vfs\Base
|
||||
array_push($parts,''); // scheme://host is wrong (no path), has to be scheme://host/
|
||||
}
|
||||
//error_log(__METHOD__."($url)=".implode('/',$parts).($query ? '?'.$query : ''));
|
||||
return implode('/',$parts).($query ? '?'.$query : '');
|
||||
return implode('/',$parts).(!empty($query) ? '?'.$query : '');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -901,7 +901,7 @@ END:VALARM';
|
||||
{
|
||||
Api\Translation::add_app('calendar');
|
||||
// do not set actions for alarm type
|
||||
if ($params['data']['type'] == 6)
|
||||
if (isset($params['data']['type']) && $params['data']['type'] == 6)
|
||||
{
|
||||
if (!empty($params['data']['videoconference'])
|
||||
&& !self::isVideoconferenceDisabled())
|
||||
@ -917,6 +917,8 @@ END:VALARM';
|
||||
}
|
||||
return array();
|
||||
}
|
||||
if (!isset($params['data']['event_id'])) $params['data']['event_id'] = '';
|
||||
if (!isset($params['data']['user_id'])) $params['data']['user_id'] = '';
|
||||
return array(
|
||||
array(
|
||||
'id' => 'A',
|
||||
|
@ -145,7 +145,7 @@ class mail_tree
|
||||
*/
|
||||
private static function isAccountNode ($_node)
|
||||
{
|
||||
list(,$leaf) = explode(self::DELIMITER, $_node);
|
||||
list(,$leaf) = explode(self::DELIMITER, $_node)+[null,null];
|
||||
if ($leaf || $_node == null) return false;
|
||||
return true;
|
||||
}
|
||||
@ -404,7 +404,7 @@ class mail_tree
|
||||
}
|
||||
$parents[] = $component;
|
||||
}
|
||||
if ($data['folderarray']['delimiter'] && $data['folderarray']['MAILBOX'])
|
||||
if (!empty($data['folderarray']['delimiter']) && !empty($data['folderarray']['MAILBOX']))
|
||||
{
|
||||
$path = explode($data['folderarray']['delimiter'], $data['folderarray']['MAILBOX']);
|
||||
$folderName = array_pop($path);
|
||||
@ -428,7 +428,7 @@ class mail_tree
|
||||
$data[Tree::IMAGE_FOLDER_OPEN] =
|
||||
$data [Tree::IMAGE_FOLDER_CLOSED] = basename(Api\Image::find('mail', 'dhtmlxtree/'."MailFolder".$key));
|
||||
}
|
||||
elseif(stripos(array2string($data['folderarray']['attributes']),'\noselect')!== false)
|
||||
elseif(!empty($data['folderarray']['attributes']) && stripos(array2string($data['folderarray']['attributes']),'\noselect') !== false)
|
||||
{
|
||||
$data[Tree::IMAGE_LEAF] = self::$leafImages['folderNoSelectClosed'];
|
||||
$data[Tree::IMAGE_FOLDER_OPEN] = self::$leafImages['folderNoSelectOpen'];
|
||||
@ -444,7 +444,7 @@ class mail_tree
|
||||
}
|
||||
|
||||
// Contains unseen mails for the folder
|
||||
$unseen = $data['folderarray']['counter']['UNSEEN'];
|
||||
$unseen = $data['folderarray']['counter']['UNSEEN'] ?? 0;
|
||||
|
||||
// if there's unseen mails then change the label and style
|
||||
// accordingly to indicate useen mails
|
||||
@ -477,7 +477,7 @@ class mail_tree
|
||||
foreach(Mail\Account::search(true, false) as $acc_id => $accObj)
|
||||
{
|
||||
if (!$accObj->is_imap()|| $_profileID && $acc_id != $_profileID) continue;
|
||||
$identity = self::getIdentityName(Mail\Account::identity_name($accObj,true,$GLOBALS['egw_info']['user']['acount_id'], true));
|
||||
$identity = self::getIdentityName(Mail\Account::identity_name($accObj,true, $GLOBALS['egw_info']['user']['account_id'], true));
|
||||
// Open top level folders for active account
|
||||
$openActiveAccount = $GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID'] == $acc_id?1:0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user