]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Event.php
Fixes issue 5322 - events now again are having a plink
[friendica.git] / src / Model / Event.php
index 87c8b239bfc9d25313aefe556a892d8450a9bc4f..49d759585a20bc513d865014dd21e383638f42eb 100644 (file)
@@ -234,7 +234,7 @@ class Event extends BaseObject
                $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['uri']       =        defaults($arr, 'uri'      , Item::newURI($event['uid']));
                $event['type']      =        defaults($arr, 'type'     , 'event');
                $event['summary']   =        defaults($arr, 'summary'  , '');
                $event['desc']      =        defaults($arr, 'desc'     , '');
@@ -268,9 +268,9 @@ class Event extends BaseObject
                if ($event['id']) {
                        // has the event actually changed?
                        $existing_event = dba::selectFirst('event', ['edited'], ['id' => $event['id'], 'uid' => $event['uid']]);
-                       if ((! DBM::is_result($existing_event)) || ($existing_event['edited'] === $event['edited'])) {
+                       if (!DBM::is_result($existing_event) || ($existing_event['edited'] === $event['edited'])) {
 
-                               $item = dba::selectFirst('item', [], ['event-id' => $event['id'], 'uid' => $event['uid']]);
+                               $item = Item::selectFirst(['id'], ['event-id' => $event['id'], 'uid' => $event['uid']]);
 
                                return DBM::is_result($item) ? $item['id'] : 0;
                        }
@@ -287,9 +287,9 @@ 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']]);
+                       $item = Item::selectFirst(['id'], ['event-id' => $event['id'], 'uid' => $event['uid']]);
                        if (DBM::is_result($item)) {
                                $object = '<object><type>' . xmlify(ACTIVITY_OBJ_EVENT) . '</type><title></title><id>' . xmlify($event['uri']) . '</id>';
                                $object .= '<content>' . xmlify(self::getBBCode($event)) . '</content>';
@@ -464,8 +464,7 @@ class Event extends BaseObject
                }
 
                // Query for the event by event id
-               $r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`,
-                               `item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event`
+               $r = q("SELECT `event`.*, `item`.`id` AS `itemid` FROM `event`
                        LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid`
                        WHERE `event`.`uid` = %d AND `event`.`id` = %d $sql_extra",
                        intval($owner_uid),
@@ -505,8 +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`
+               $r = q("SELECT `event`.*, `item`.`id` AS `itemid` FROM `event`
                                LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid`
                                WHERE `event`.`uid` = %d AND event.ignore = %d
                                AND ((`adjust` = 0 AND (`finish` >= '%s' OR (nofinish AND start >= '%s')) AND `start` <= '%s')
@@ -542,6 +540,11 @@ class Event extends BaseObject
                $last_date = '';
                $fmt = L10n::t('l, F j');
                foreach ($event_result as $event) {
+                       $item = Item::selectFirst(['plink', 'author-name', 'author-avatar', 'author-link'], ['id' => $event['itemid']]);
+                       if (DBM::is_result($item)) {
+                               $event = array_merge($event, $item);
+                       }
+
                        $start = $event['adjust'] ? DateTimeFormat::local($event['start'], 'c')  : DateTimeFormat::utc($event['start'], 'c');
                        $j     = $event['adjust'] ? DateTimeFormat::local($event['start'], 'j')  : DateTimeFormat::utc($event['start'], 'j');
                        $day   = $event['adjust'] ? DateTimeFormat::local($event['start'], $fmt) : DateTimeFormat::utc($event['start'], $fmt);
@@ -737,7 +740,7 @@ class Event extends BaseObject
 
                $events = dba::select('event', $fields, $conditions);
                if (DBM::is_result($events)) {
-                       $return = $events;
+                       $return = dba::inArray($events);
                }
 
                return $return;
@@ -803,10 +806,10 @@ class Event extends BaseObject
        /**
         * @brief Format an item array with event data to HTML.
         *
-        * @param arr $item Array with item and event data.
+        * @param array $item Array with item and event data.
         * @return string HTML output.
         */
-       public static function getItemHTML($item) {
+       public static function getItemHTML(array $item) {
                $same_date = false;
                $finish    = false;
 
@@ -868,12 +871,7 @@ class Event extends BaseObject
                $location = self::locationToArray($item['event-location']);
 
                // Construct the profile link (magic-auth).
-               $sp = false;
-               $profile_link = best_link_url($item, $sp);
-
-               if (!$sp) {
-                       $profile_link = Profile::zrl($profile_link);
-               }
+               $profile_link = Contact::magicLinkById($item['author-id']);
 
                $tpl = get_markup_template('event_stream_item.tpl');
                $return = replace_macros($tpl, [