Ejemplo n.º 1
0
 public function index()
 {
     $lectures = new lectures(ConnectionFactory::get('mongo'));
     $this->view['lectures'] = $lectures->getNew();
     if (is_string($this->view['lectures'])) {
         return Error::set($this->view['lectures']);
     }
     $this->view['valid'] = true;
     Layout::set('title', 'Lectures');
 }
Ejemplo n.º 2
0
 public function index($arguments)
 {
     Layout::set('title', 'Search');
     if (empty($_POST['query'])) {
         return Error::set('No search query found.');
     }
     $query = substr(trim(htmlentities($_POST['query'], ENT_QUOTES, 'ISO8859-1', false)), 0, 250);
     $results = Search::query($query);
     if ($results['hits']['total'] == 0) {
         return Error::set('No results found.');
     }
     $this->view['results'] = array();
     $news = new news(ConnectionFactory::get('mongo'));
     $articles = new articles(ConnectionFactory::get('mongo'));
     $lectures = new lectures(ConnectionFactory::get('mongo'));
     $i = 1;
     if (empty($results['hits']['hits'])) {
         return;
     }
     foreach ($results['hits']['hits'] as $result) {
         $entry = $result['_source'];
         switch ($entry['type']) {
             case 'news':
                 $post = $news->get($result['_id'], false, true);
                 if (empty($post)) {
                     continue;
                 }
                 $post['type'] = 'news';
                 array_push($this->view['results'], $post);
                 break;
             case 'article':
                 $article = $articles->get($result['_id'], false, true);
                 if (empty($article)) {
                     continue;
                 }
                 $article['type'] = 'article';
                 array_push($this->view['results'], $article);
                 break;
             case 'lecture':
                 $lecture = $lectures->get($result['_id'], false, true);
                 if (empty($lecture)) {
                     continue;
                 }
                 $lecture['type'] = 'lecture';
                 array_push($this->view['results'], $lecture);
                 break;
         }
         if ($i == 5) {
             break;
         }
         ++$i;
     }
 }
Ejemplo n.º 3
0
 public function view($arguments)
 {
     // Read
     if (empty($arguments[0])) {
         return Error::set('Username is required.');
     }
     if (!empty($arguments[1])) {
         $page = (int) array_pop($arguments);
         if ($page < 1) {
             $this->view['commentPage'] = 1;
         } else {
             $this->view['commentPage'] = $page;
         }
     } else {
         $this->view['commentPage'] = 1;
     }
     $this->view['commentPageLoc'] = 'user/view/' . $arguments[0] . '/';
     $username = $arguments[0];
     $users = new users(ConnectionFactory::get('mongo'));
     $userInfo = $users->get($username);
     if (empty($userInfo)) {
         return Error::set('User not found.');
     }
     $irc = new irc(ConnectionFactory::get('redis'));
     $articles = new articles(ConnectionFactory::get('mongo'));
     $lectures = new lectures(ConnectionFactory::get('mongo'));
     $github = new github(ConnectionFactory::get('redis'));
     $this->view['valid'] = true;
     $this->view['username'] = $username;
     $this->view['user'] = $userInfo;
     $this->view['onIrc'] = $irc->isOnline($username);
     $this->view['onSite'] = apc_exists(Cache::PREFIX . 'user_' . $username);
     $this->view['articles'] = $articles->getForUser($this->view['user']['_id']);
     $this->view['lectures'] = $lectures->getForUser($username);
     $this->view['github'] = $github->get($userInfo['_id']);
     Layout::set('title', $username . '\'s profile');
 }