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); }