Exemple #1
0
 protected function getPublicEvent($event, $user = null, $rewritecache = false)
 {
     $memcachetoken = 'public:event:' . (is_array($event) ? $event['id'] : $event) . ':' . Bootstrap::$main->lang;
     if (!$rewritecache) {
         $r = Tools::memcache($memcachetoken);
         if ($r) {
             $r['memcached'] = true;
             $user = 0;
             if (!isset(Bootstrap::$main->user['id'])) {
                 if (is_array($event)) {
                     $user = $event['user'];
                 } else {
                     $user = $this->event($event)->user;
                 }
             }
             $r['share'] = $this->referers($r['url'], $r['name'], $user);
             return $r;
         }
     }
     if (!is_array($event)) {
         $event = $this->event()->get($event);
     }
     $user_id = $event['user'];
     if (is_null($user)) {
         $user = $this->user()->get($user_id);
     }
     $uController = new userController();
     $user = $uController->public_data($user);
     foreach ($this->event()->getLastEditedChildren($event['id']) ?: [] as $last) {
         foreach (['img', 'about'] as $f) {
             if ($last[$f]) {
                 $event[$f] = $last[$f];
             }
         }
     }
     foreach ($event as $k => $v) {
         if (substr($k, 0, 2) == 'd_') {
             unset($event[$k]);
             if (isset($event[substr($k, 2)])) {
                 unset($event[substr($k, 2)]);
             }
         }
     }
     $event['calendar'] = $this->get_calendar($event['id']) ?: [];
     foreach ($event['calendar'] as $i => $cal) {
         $event['calendar'][$i]['guests'] = $this->get_guests($cal['id'], $uController) ?: [];
     }
     $all = $this->event()->get_dates($event['id'], false);
     $event_id = $event['id'];
     $images = new imageModel();
     if (is_array($all) && count($all) > 1) {
         $events_related = array();
         foreach ($all as $e) {
             $events_related[] = $e['id'];
         }
         $event['images'] = $images->getEventImages($events_related) ?: [];
     } else {
         $event['images'] = $images->getEventImages($event['id']) ?: [];
     }
     $img_ids = [];
     foreach ($event['images'] as $i => &$img) {
         if (isset($img_ids[$img['id']])) {
             unset($event['images'][$i]);
             continue;
         }
         $img_ids[$img['id']] = true;
         $img['caption'] = $img['title'];
         if ($img['d_taken']) {
             if ($img['caption']) {
                 $img['caption'] .= ' - ';
             } else {
                 $img['caption'] = '';
             }
             $img['caption'] .= Bootstrap::$main->human_datetime_format($img['d_taken']);
         }
     }
     $tags = new tagModel();
     $tags4event = $tags->for_event($event['id']);
     $event['tags'] = $tags4event ? Tools::tags($tags4event) : [];
     $user = $this->_get_user($event['user']);
     $event['host'] = $user;
     if (isset($user['url'])) {
         $event['url'] = $user['url'] . '/' . $event['url'];
     }
     $event['guests'] = $this->get_guests($event['id'], $uController);
     $event['share'] = $this->referers($event['url'], $event['name'], $event['user']);
     $event = $this->public_data($event, true);
     $event['rate'] = $this->rate($event_id, false, true);
     //$event['about']=nl2br($event['about']);
     return Tools::memcache($memcachetoken, $event);
 }