X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FEvent.php;h=e65e61ee58367a4e3e6005217a36a5a29af1b860;hb=13ae3436b66665a42ad8c7519afcc95a6cce3957;hp=a1790edab20318de7de0540ecc90babb69074448;hpb=f7e2071117d46a5dbaf18250e1194aef225facfa;p=friendica.git diff --git a/src/Model/Event.php b/src/Model/Event.php index a1790edab2..e65e61ee58 100644 --- a/src/Model/Event.php +++ b/src/Model/Event.php @@ -29,7 +29,7 @@ class Event extends BaseObject public static function getHTML(array $event, $simple = false) { - if (!is_array($event) || !!count($event)) { + if (empty($event)) { return ''; } @@ -223,17 +223,18 @@ class Event extends BaseObject * * Store the event in the event table and create an event item in the item table. * - * @param array $event Array with event data. - * @return int The event id. + * @param array $arr Array with event data. + * @return int The new event id. */ public static function store($arr) { $a = self::getApp(); - $event['uri'] = defaults($arr, 'uri' , item_new_uri($a->get_hostname(), $event['uid'])); + $event = []; $event['id'] = intval(defaults($arr, 'id' , 0)); $event['uid'] = intval(defaults($arr, 'uid' , 0)); $event['cid'] = intval(defaults($arr, 'cid' , 0)); + $event['uri'] = defaults($arr, 'uri' , item_new_uri($a->get_hostname(), $event['uid'])); $event['type'] = defaults($arr, 'type' , 'event'); $event['summary'] = defaults($arr, 'summary' , ''); $event['desc'] = defaults($arr, 'desc' , ''); @@ -242,7 +243,6 @@ class Event extends BaseObject $event['allow_gid'] = defaults($arr, 'allow_gid', ''); $event['deny_cid'] = defaults($arr, 'deny_cid' , ''); $event['deny_gid'] = defaults($arr, 'deny_gid' , ''); - $event['private'] = intval(defaults($arr, 'private' , 0)); $event['adjust'] = intval(defaults($arr, 'adjust' , 0)); $event['nofinish'] = intval(defaults($arr, 'nofinish' , !empty($event['start']) && empty($event['finish']))); @@ -253,13 +253,16 @@ class Event extends BaseObject if ($event['finish'] < NULL_DATE) { $event['finish'] = NULL_DATE; } + $private = intval(defaults($arr, 'private', 0)); - $condition = ['uid' => $event['uid']]; + $conditions = ['uid' => $event['uid']]; if ($event['cid']) { - $condition['id'] = $event['cid']; + $conditions['id'] = $event['cid']; + } else { + $conditions['self'] = true; } - $contact = dba::selectFirst('contact', [], ['id' => $event['cid'], 'uid' => $event['uid']]); + $contact = dba::selectFirst('contact', [], $conditions); // Existing event being modified. if ($event['id']) { @@ -284,7 +287,7 @@ class Event extends BaseObject 'nofinish' => $event['nofinish'], ]; - dba::update('event', $updated_fields, ['id' => $event['cid'], 'uid' => $event['uid']]); + dba::update('event', $updated_fields, ['id' => $event['id'], 'uid' => $event['uid']]); $item = dba::selectFirst('item', ['id'], ['event-id' => $event['id'], 'uid' => $event['uid']]); if (DBM::is_result($item)) { @@ -330,7 +333,7 @@ class Event extends BaseObject $item_arr['allow_gid'] = $event['allow_gid']; $item_arr['deny_cid'] = $event['deny_cid']; $item_arr['deny_gid'] = $event['deny_gid']; - $item_arr['private'] = $event['private']; + $item_arr['private'] = $private; $item_arr['visible'] = 1; $item_arr['verb'] = ACTIVITY_POST; $item_arr['object-type'] = ACTIVITY_OBJ_EVENT; @@ -501,6 +504,7 @@ class Event extends BaseObject } // Query for the event by date. + // @todo Slow query (518 seconds to run), to be optimzed $r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`, `item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event` LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid` @@ -733,7 +737,7 @@ class Event extends BaseObject $events = dba::select('event', $fields, $conditions); if (DBM::is_result($events)) { - $return = $events; + $return = dba::inArray($events); } return $return;