Exemplo n.º 1
0
 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);
 }