mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-27 09:09:04 +01:00
next chunk of fixed PHP Warning: Undefined array key or variable in main repo
This commit is contained in:
parent
2d0de5f287
commit
a74bd82dde
@ -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
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -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) : [];
|
||||||
|
@ -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].'>' : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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(
|
||||||
|
@ -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)
|
||||||
|
@ -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();
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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 = '';
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
Loading…
Reference in New Issue
Block a user