public function getPublicUser($user, $rewritecache = false) { $id = is_array($user) ? $user['id'] : $user; $memcachetoken = 'public:user:'******':' . Bootstrap::$main->lang; if (!$rewritecache) { $r = Tools::memcache($memcachetoken); if ($r) { $r['memcached'] = true; return $r; } } if (!is_array($user)) { $user = $this->user()->get($user); } $user = $this->public_data($user, true); $event = new eventModel(); $evController = new eventController(); $user['events'] = $event->get_future_user_public_events($id) ?: []; if (is_array($user['events'])) { foreach ($user['events'] as $i => $e) { $event_id = $e['id']; foreach ($event->getLastEditedChildren($event_id) as $last) { foreach (['img', 'about'] as $f) { if ($last[$f]) { $e[$f] = $last[$f]; } } } $user['events'][$i] = $evController->public_data($e, true); $user['events'][$i]['calendar'] = $evController->get_calendar($event_id); $user['events'][$i]['rate'] = $evController->rate($event_id, false, true); $user['events'][$i]['url'] = $user['url'] . '/' . $user['events'][$i]['url']; } } $user['events_hosted'] = $event->get_passed_user_public_events($id) ?: []; if (is_array($user['events_hosted'])) { foreach ($user['events_hosted'] as $i => $e) { $event_id = $e['id']; $user['events_hosted'][$i] = $evController->public_data($e, true); $user['events_hosted'][$i]['guests'] = $evController->get_guests($event_id, $this) ?: []; $user['events_hosted'][$i]['rate'] = $evController->rate($event_id); $user['events_hosted'][$i]['url'] = $user['url'] . '/' . $user['events_hosted'][$i]['url']; } } $user['events_visited'] = $event->get_passed_user_public_visits($id) ?: []; if (is_array($user['events_visited'])) { foreach ($user['events_visited'] as $i => $e) { $event_id = $e['id']; $host = $this->user()->get($e['user']); $user['events_visited'][$i] = $evController->public_data($e, true); $user['events_visited'][$i]['guests'] = $evController->get_guests($event_id, $this) ?: []; $user['events_visited'][$i]['rate'] = $evController->rate($event_id); $user['events_visited'][$i]['url'] = $host['url'] . '/' . $user['events_visited'][$i]['url']; } } $title = $user['firstname'] . ' ' . $user['lastname']; if ($user['title']) { $title .= ' - ' . $user['title']; } $user['share'] = $this->referers($user['url'], $title, $id); $ratemodel = new rateModel(); $rate = $ratemodel->user($id); $user['rate'] = ['rate' => 0 + $rate, 'prc' => round(20 * $rate), 'count' => 0 + $ratemodel->user_count($id)]; return Tools::memcache($memcachetoken, $user); }