next chunk of fixed PHP Warning: Undefined array key or variable in main repo

This commit is contained in:
ralf 2022-04-26 21:04:16 +02:00
parent 2d0de5f287
commit a74bd82dde
11 changed files with 40 additions and 40 deletions

View File

@ -419,11 +419,11 @@ class addressbook_hooks
{ {
unset($location); // not used, but required by function signature unset($location); // not used, but required by function signature
return $GLOBALS['egw_info']['server']['contact_export_limit']; return $GLOBALS['egw_info']['server']['contact_export_limit'] ?? null;
} }
/** /**
* Register contacts as calendar resources (items which can be sheduled by the calendar) * Register contacts as calendar resources (items which can be scheduled by the calendar)
* *
* @param array $args hook-params (not used) * @param array $args hook-params (not used)
* @return array * @return array
@ -433,7 +433,7 @@ class addressbook_hooks
unset($args); // not used, but required by function signature unset($args); // not used, but required by function signature
return array( return array(
'type' => 'c',// one char type-identifiy for this resources 'type' => 'c',// one char type-identifier for this resource
'info' => 'api.EGroupware\\Api\\Contacts.calendar_info',// info method, returns array with id, type & name for a given id 'info' => 'api.EGroupware\\Api\\Contacts.calendar_info',// info method, returns array with id, type & name for a given id
); );
} }

View File

@ -129,7 +129,7 @@ class addressbook_zpush implements activesync_plugin_write, activesync_plugin_se
if (!isset($abs) || !$return_all_in_one) if (!isset($abs) || !$return_all_in_one)
{ {
if ($return_all_in_one && $GLOBALS['egw_info']['user']['preferences']['activesync']['addressbook-all-in-one']) if ($return_all_in_one && ($GLOBALS['egw_info']['user']['preferences']['activesync']['addressbook-all-in-one'] ?? null))
{ {
$abs = array( $abs = array(
$GLOBALS['egw_info']['user']['account_id'] => lang('All'), $GLOBALS['egw_info']['user']['account_id'] => lang('All'),
@ -141,7 +141,7 @@ class addressbook_zpush implements activesync_plugin_write, activesync_plugin_se
if (!isset($this->addressbook)) $this->addressbook = new Api\Contacts(); if (!isset($this->addressbook)) $this->addressbook = new Api\Contacts();
$pref_abs = $GLOBALS['egw_info']['user']['preferences']['activesync']['addressbook-abs']; $pref_abs = $GLOBALS['egw_info']['user']['preferences']['activesync']['addressbook-abs'] ?? [];
if (!is_array($pref_abs)) if (!is_array($pref_abs))
{ {
$pref_abs = $pref_abs ? explode(',',$pref_abs) : []; $pref_abs = $pref_abs ? explode(',',$pref_abs) : [];

View File

@ -262,7 +262,7 @@ class calendar_bo
//error_log(__METHOD__ . " registered resources=". array2string($this->resources)); //error_log(__METHOD__ . " registered resources=". array2string($this->resources));
$this->config = Api\Config::read('calendar'); // only used for horizont, regular calendar config is under phpgwapi $this->config = Api\Config::read('calendar'); // only used for horizont, regular calendar config is under phpgwapi
$this->require_acl_invite = $GLOBALS['egw_info']['server']['require_acl_invite']; $this->require_acl_invite = $GLOBALS['egw_info']['server']['require_acl_invite'] ?? null;
$this->categories = new Api\Categories($this->user,'calendar'); $this->categories = new Api\Categories($this->user,'calendar');
@ -1686,7 +1686,7 @@ class calendar_bo
$id2email[$id] = $GLOBALS['egw']->accounts->id2name($id,'account_email'); $id2email[$id] = $GLOBALS['egw']->accounts->id2name($id,'account_email');
} }
} }
return $id2lid[$id].(($append_email || $id[0] == 'e') && $id2email[$id] ? ' <'.$id2email[$id].'>' : ''); return $id2lid[$id].(($append_email || $id[0] == 'e') && !empty($id2email[$id]) ? ' <'.$id2email[$id].'>' : '');
} }
/** /**

View File

@ -833,7 +833,7 @@ class calendar_boupdate extends calendar_bo
$msg = $prefs['notifyAdded']; // use a default $msg = $prefs['notifyAdded']; // use a default
} }
//error_log(__METHOD__."($msg_type) action='$action', $msg='$msg' returning '$method'"); //error_log(__METHOD__."($msg_type) action='$action', $msg='$msg' returning '$method'");
return $method; return $method ?? null;
} }
/** /**
@ -994,7 +994,7 @@ class calendar_boupdate extends calendar_bo
//$cleared_event = $this->read($event['id'], null, true, 'server'); //$cleared_event = $this->read($event['id'], null, true, 'server');
$this->clear_private_infos($cleared_event, array($userid)); $this->clear_private_infos($cleared_event, array($userid));
} }
$userid = $res_info['responsible']; $userid = $res_info['responsible'] ?? null;
if (empty($userid)) // no resource responsible: $userid===0 if (empty($userid)) // no resource responsible: $userid===0
{ {
@ -1247,7 +1247,7 @@ class calendar_boupdate extends calendar_bo
$notification->set_popupmessage($subject."\n\n".$notify_body."\n\n".$details['description']."\n\n".$details_body."\n\n"); $notification->set_popupmessage($subject."\n\n".$notify_body."\n\n".$details['description']."\n\n".$details_body."\n\n");
$notification->set_popuplinks(array($details['link_arr']+array('app'=>'calendar'))); $notification->set_popuplinks(array($details['link_arr']+array('app'=>'calendar')));
if(is_array($attachment)) { $notification->set_attachments(array($attachment)); } if(!empty($attachment)) { $notification->set_attachments(array($attachment)); }
$notification->send(); $notification->send();
$errors = notifications::errors(true); $errors = notifications::errors(true);
} }
@ -1289,7 +1289,7 @@ class calendar_boupdate extends calendar_bo
Api\Translation::init(); Api\Translation::init();
} }
// restore timezone, in case we had to reset it to server-timezone // restore timezone, in case we had to reset it to server-timezone
if ($restore_tz) date_default_timezone_set($restore_tz); if (!empty($restore_tz)) date_default_timezone_set($restore_tz);
return true; return true;
} }
@ -2131,7 +2131,7 @@ class calendar_boupdate extends calendar_bo
$var['updated'] = Array( $var['updated'] = Array(
'field' => lang('Updated'), 'field' => lang('Updated'),
'data' => $this->format_date($event['modtime']).', '.Api\Accounts::username($event['modifier']) 'data' => $this->format_date($event['modtime'] ?? null).', '.Api\Accounts::username($event['modifier'])
); );
$var['access'] = Array( $var['access'] = Array(

View File

@ -50,9 +50,9 @@ define('TENTATIVE',2);
define('ACCEPTED',3); define('ACCEPTED',3);
define('DELEGATED',4); define('DELEGATED',4);
define('HOUR_s',60*60); if (!defined('HOUR_s')) define('HOUR_s',60*60);
define('DAY_s',24*HOUR_s); if (!defined('DAY_s')) define('DAY_s',24*HOUR_s);
define('WEEK_s',7*DAY_s); if (!defined('WEEK_s')) define('WEEK_s',7*DAY_s);
/** /**
* Class to store all calendar data (storage object) * Class to store all calendar data (storage object)

View File

@ -84,7 +84,7 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti
{ {
if (!isset($this->calendar)) $this->calendar = new calendar_boupdate(); if (!isset($this->calendar)) $this->calendar = new calendar_boupdate();
$cals_pref = $GLOBALS['egw_info']['user']['preferences']['activesync']['calendar-cals']; $cals_pref = $GLOBALS['egw_info']['user']['preferences']['activesync']['calendar-cals'] ?? null;
$cals = $cals_pref ? explode(',',$cals_pref) : array('P'); // implicit default of 'P' $cals = $cals_pref ? explode(',',$cals_pref) : array('P'); // implicit default of 'P'
$folderlist = array(); $folderlist = array();

View File

@ -249,7 +249,7 @@ class importexport_export_csv implements importexport_iface_export_record
break; break;
case 'date': case 'date':
case 'date-time': case 'date-time':
if ($c_field['values']['format']) if (!empty($c_field['values']['format']))
{ {
// Date has custom format. Convert so it's standard, don't do normal processing // Date has custom format. Convert so it's standard, don't do normal processing
$type = $c_field['type']; $type = $c_field['type'];
@ -312,7 +312,7 @@ class importexport_export_csv implements importexport_iface_export_record
{ {
if($appname) if($appname)
{ {
if(!self::$cf_parse_cache[$appname]) if(empty(self::$cf_parse_cache[$appname]))
{ {
$c_fields = self::convert_parse_custom_fields($record, $appname, $selects, $links, $methods); $c_fields = self::convert_parse_custom_fields($record, $appname, $selects, $links, $methods);
self::$cf_parse_cache[$appname] = array($c_fields, $selects, $links, $methods); self::$cf_parse_cache[$appname] = array($c_fields, $selects, $links, $methods);
@ -343,7 +343,7 @@ class importexport_export_csv implements importexport_iface_export_record
} }
foreach($fields['select'] ?? [] as $name) foreach($fields['select'] ?? [] as $name)
{ {
if($record->$name != null && is_array($selects) && $selects[$name]) if($record->$name != null && is_array($selects) && !empty($selects[$name]))
{ {
$record->$name = is_string($record->$name) ? explode(',', $record->$name) : $record->$name; $record->$name = is_string($record->$name) ? explode(',', $record->$name) : $record->$name;
if(is_array($record->$name)) if(is_array($record->$name))
@ -368,7 +368,7 @@ class importexport_export_csv implements importexport_iface_export_record
} }
foreach($fields['links'] ?? [] as $name) { foreach($fields['links'] ?? [] as $name) {
if($record->$name) { if($record->$name) {
if(is_numeric($record->$name) && !$links[$name]) { if(is_numeric($record->$name) && empty($links[$name])) {
$link = Link::get_link($record->$name); $link = Link::get_link($record->$name);
$links[$name] = ($link['link_app1'] == $appname ? $link['link_app2'] : $link['link_app1']); $links[$name] = ($link['link_app1'] == $appname ? $link['link_app2'] : $link['link_app1']);
$record->$name = ($link['link_app1'] == $appname ? $link['link_id2'] : $link['link_id1']); $record->$name = ($link['link_app1'] == $appname ? $link['link_id2'] : $link['link_id1']);
@ -428,13 +428,13 @@ class importexport_export_csv implements importexport_iface_export_record
{ {
$dec_separator = $GLOBALS['egw_info']['user']['preferences']['common']['number_format'][0]; $dec_separator = $GLOBALS['egw_info']['user']['preferences']['common']['number_format'][0];
if (empty($dec_separator)) $dec_separator = '.'; if (empty($dec_separator)) $dec_separator = '.';
$thousands_separator = $GLOBALS['egw_info']['user']['preferences']['common']['number_format'][1]; $thousands_separator = $GLOBALS['egw_info']['user']['preferences']['common']['number_format'][1] ?? '';
} }
if($record->$name && (string)$record->$name != '') if($record->$name && (string)$record->$name != '')
{ {
if(!is_numeric($record->$name)) if(!is_numeric($record->$name))
{ {
$record->$name = floatval(str_replace($dec_separator, '.', preg_replace('/[^\d'.preg_quote($dec_separator).']/', '', $record->$name))); $record->$name = (float)(str_replace($dec_separator, '.', preg_replace('/[^\d'.preg_quote($dec_separator, '/').']/', '', $record->$name)));
} }
$record->$name = number_format(str_replace(' ','',$record->$name), 2, $record->$name = number_format(str_replace(' ','',$record->$name), 2,
$dec_separator,$thousands_separator $dec_separator,$thousands_separator

View File

@ -798,7 +798,7 @@ class infolog_so
// query children independent of action // query children independent of action
if (empty($query['col_filter']['info_id_parent'])) if (empty($query['col_filter']['info_id_parent']))
{ {
$action = isset($action2app[$query['action']]) ? $action2app[$query['action']] : ($query['action'] ?? null); $action = isset($action2app[$query['action']??null]) ? $action2app[$query['action']] : ($query['action'] ?? null);
if ($action) if ($action)
{ {
$links = Link\Storage::get_links($action=='sp'?'infolog':$action, $links = Link\Storage::get_links($action=='sp'?'infolog':$action,
@ -947,7 +947,7 @@ class infolog_so
$pid = 'AND ' . $this->db->expression($this->info_table,array('info_id_parent' => ($action == 'sp' ?$query['action_id'] : 0))); $pid = 'AND ' . $this->db->expression($this->info_table,array('info_id_parent' => ($action == 'sp' ?$query['action_id'] : 0)));
if ($GLOBALS['egw_info']['user']['preferences']['infolog']['listNoSubs'] != '1' && $action != 'sp' || if ($GLOBALS['egw_info']['user']['preferences']['infolog']['listNoSubs'] != '1' && $action != 'sp' ||
(string)$query['col_filter']['info_id_parent'] !== '' || ($query['col_filter']['info_id_parent']??'') !== '' ||
isset($query['subs']) && $query['subs'] || $action != 'sp' && !empty($query['search'])) isset($query['subs']) && $query['subs'] || $action != 'sp' && !empty($query['search']))
{ {
$pid = ''; $pid = '';

View File

@ -502,7 +502,7 @@ class notifications {
$backend_errors = array(); $backend_errors = array();
try { try {
// system or non-system user // system or non-system user
if($receiver->account_id && is_numeric($receiver->account_id)) { if(!empty($receiver->account_id) && is_numeric($receiver->account_id)) {
// system user, collect data and check for Status and expire state, skip notification if expired or not active // system user, collect data and check for Status and expire state, skip notification if expired or not active
$userData = $GLOBALS['egw']->accounts->read($receiver->account_id); $userData = $GLOBALS['egw']->accounts->read($receiver->account_id);
//error_log(__METHOD__.__LINE__." fetched data for User:".array2string($userData['account_lid']).'#'.$userData['account_type'].'#'.$userData['account_status'].'#'.$GLOBALS['egw']->accounts->is_expired($userData).'#'); //error_log(__METHOD__.__LINE__." fetched data for User:".array2string($userData['account_lid']).'#'.$userData['account_type'].'#'.$userData['account_status'].'#'.$GLOBALS['egw']->accounts->is_expired($userData).'#');
@ -560,7 +560,7 @@ class notifications {
if(!file_exists(EGW_INCLUDE_ROOT.'/'. self::_appname.'/inc/class.'. $notification_backend. '.inc.php')) { if(!file_exists(EGW_INCLUDE_ROOT.'/'. self::_appname.'/inc/class.'. $notification_backend. '.inc.php')) {
throw new Exception('file for '.$notification_backend. ' does not exist'); throw new Exception('file for '.$notification_backend. ' does not exist');
} }
$obj = new $notification_backend( $this->sender, $receiver, $this->config, $preferences ); $obj = new $notification_backend( $this->sender, $receiver, $this->config, $preferences??null );
if ( !($obj instanceof notifications_iface) ) { if ( !($obj instanceof notifications_iface) ) {
unset ( $obj ); unset ( $obj );
throw new Exception($notification_backend. ' is no implementation of notifications_iface'); throw new Exception($notification_backend. ' is no implementation of notifications_iface');
@ -575,7 +575,7 @@ class notifications {
} elseif ($backend == 'email') { } elseif ($backend == 'email') {
if (!empty($this->reply_to)) $popup_data = array( 'reply_to' => $this->reply_to ); if (!empty($this->reply_to)) $popup_data = array( 'reply_to' => $this->reply_to );
} }
$obj->send($this->prepend_message($messages, $prepend_message), $lsubject, $llinks, $this->attachments, $popup_data); $obj->send($this->prepend_message($messages, $prepend_message), $lsubject, $llinks, $this->attachments, $popup_data??null);
// This is to make popup_or_email option sensfull since // This is to make popup_or_email option sensfull since
// we save popup notifications in database anyway, email // we save popup notifications in database anyway, email
@ -730,7 +730,7 @@ class notifications {
break; break;
default: default:
$param = $backend.'_enable'; $param = $backend.'_enable';
$enabled_backends[$backend] = $this->config->{$param} == true ? true : false; $enabled_backends[$backend] = !empty($this->config->{$param});
break; break;
} }
} }

View File

@ -254,7 +254,7 @@ class notifications_ajax {
private function get_egwpopup($browserNotify = false) private function get_egwpopup($browserNotify = false)
{ {
$entries = notifications_popup::read($this->recipient->account_id); $entries = notifications_popup::read($this->recipient->account_id);
$this->response->apply('app.notifications.append', array($entries['rows'], $browserNotify, $entries['total'])); $this->response->apply('app.notifications.append', array($entries['rows']??[], $browserNotify, $entries['total']??0));
return true; return true;
} }

View File

@ -97,8 +97,8 @@ class notifications_email implements notifications_iface {
*/ */
public function send(array $_messages, $_subject = false, $_links = false, $_attachments = false, $_data = false) public function send(array $_messages, $_subject = false, $_links = false, $_attachments = false, $_data = false)
{ {
$body_plain = $_messages['plain'].$this->render_links($_links, false, $this->preferences->external_mailclient); $body_plain = $_messages['plain'].$this->render_links($_links, false, $this->preferences->external_mailclient??false);
$body_html = "<html><body>\n".$_messages['html'].$this->render_links($_links, true, $this->preferences->external_mailclient)."</body>\n</html>\n"; $body_html = "<html><body>\n".$_messages['html'].$this->render_links($_links, true, $this->preferences->external_mailclient??false)."</body>\n</html>\n";
$this->mail->ClearAddresses(); $this->mail->ClearAddresses();
$this->mail->ClearAttachments(); $this->mail->ClearAttachments();