Exemplo n.º 1
0
 /**
  * Controller default action
  */
 public function action_index()
 {
     $this->page_title = __('Welcome to :site', array(':site' => Kohana::config('site.site_name')));
     // Display news feed
     $newsfeed = new NewsFeed(self::$user);
     $newsfeed->max_items = 25;
     Widget::add('main', View_Module::factory('generic/newsfeed', array('newsfeed' => $newsfeed->as_array())));
     // Shout
     $shouts = Jelly::select('shout')->limit(10)->execute();
     Widget::add('side', View_Module::factory('generic/shout', array('mod_title' => __('Shouts'), 'shouts' => $shouts, 'can_shout' => Permission::has(new Model_Shout(), Model_Shout::PERMISSION_CREATE), 'errors' => array(), 'values' => array())));
 }
Exemplo n.º 2
0
Arquivo: index.php Projeto: anqqa/Anqh
 /**
  * Home page
  */
 public function index()
 {
     $this->page_title = __('Welcome to :site', array(':site' => Kohana::config('site.site_name')));
     // Display news feed
     $newsfeed = new NewsFeed($this->user);
     $newsfeed->max_items = 25;
     widget::add('main', View_Mod::factory('generic/newsfeed', array('newsfeed' => $newsfeed->as_array())));
     // Shout
     $shouts = ORM::factory('shout')->find_all(10);
     widget::add('side', View_Mod::factory('generic/shout', array('mod_title' => __('Shouts'), 'shouts' => $shouts, 'can_shout' => ORM::factory('shout')->has_access(Shout_Model::ACCESS_WRITE, $this->user), 'errors' => array(), 'values' => array())));
     // Online
     $guests = Online_User_Model::get_guest_count();
     $online = Online_User_Model::find_online_users();
     $counts = array();
     if ($guests) {
         $counts[] = __2(':guests guest', ':guests guests', $guests, array(':guests' => $guests));
     }
     if (count($online)) {
         $counts[] = __2(':members member', ':members members', count($online), array(':members' => count($online)));
     }
     widget::add('side', View_Mod::factory('generic/users', array('mod_title' => __('Online') . ': ' . implode(', ', $counts), 'viewer' => $this->user, 'users' => $online)));
 }
Exemplo n.º 3
0
 /**
  * Get newsfeed items.
  *
  * @return  array
  */
 protected function _items()
 {
     switch ($this->type) {
         // Friend newsfeed
         case self::TYPE_FRIENDS:
             $newsfeed = new Newsfeed(Visitor::$user, Newsfeed::USERS);
             if (Visitor::$user) {
                 $newsfeed->users = Visitor::$user->find_friends(0, 0);
             }
             break;
             // Single user newsfeed
         // Single user newsfeed
         case self::TYPE_PERSONAL:
             $newsfeed = new NewsFeed($this->user, Newsfeed::PERSONAL);
             break;
             // All users
         // All users
         case self::TYPE_ALL:
         default:
             $newsfeed = new NewsFeed(Visitor::$user, Newsfeed::ALL);
             break;
     }
     $newsfeed->max_items = $this->limit;
     return (array) $newsfeed->as_array();
 }
Exemplo n.º 4
0
 /**
  * Controller default action
  */
 public function action_index()
 {
     $user = $this->_get_user();
     // Set generic page parameters
     $this->_set_page($user);
     // Helper variables
     $owner = self::$user && self::$user->id == $user->id;
     // Comments section
     if (Permission::has($user, Model_User::PERMISSION_COMMENTS, self::$user)) {
         $errors = array();
         $values = array();
         // Handle comment
         if (Permission::has($user, Model_User::PERMISSION_COMMENT, self::$user) && $_POST) {
             $comment = Jelly::factory('user_comment');
             $comment->user = $user;
             $comment->author = self::$user;
             $comment->set(Arr::extract($_POST, Model_User_Comment::$editable_fields));
             try {
                 $comment->save();
                 // Receiver
                 $user->comment_count++;
                 if (!$owner) {
                     $user->new_comment_count++;
                 }
                 $user->save();
                 // Sender
                 self::$user->left_comment_count++;
                 self::$user->save();
                 if (!$this->ajax) {
                     $this->request->redirect(Route::get('user')->uri(array('username' => urlencode($user->username))));
                 }
             } catch (Validate_Exception $e) {
                 $errors = $e->array->errors('validation');
                 $values = $comment;
             }
         }
         // Pagination
         $per_page = 25;
         $pagination = Pagination::factory(array('items_per_page' => $per_page, 'total_items' => max(1, $user->get('comments')->viewer(self::$user)->count())));
         $view = View_Module::factory('generic/comments', array('mod_title' => __('Comments'), 'delete' => Route::get('user_comment')->uri(array('id' => '%d', 'commentaction' => 'delete')) . '?token=' . Security::csrf(), 'private' => Route::get('user_comment')->uri(array('id' => '%d', 'commentaction' => 'private')) . '?token=' . Security::csrf(), 'comments' => $user->get('comments')->viewer(self::$user)->pagination($pagination)->execute(), 'errors' => $errors, 'values' => $values, 'pagination' => $pagination, 'user' => self::$user));
         if ($this->ajax) {
             echo $view;
             return;
         }
         Widget::add('main', $view);
     }
     // Display news feed
     $newsfeed = new NewsFeed($user, true);
     $newsfeed->max_items = 5;
     Widget::add('main', View_Module::factory('generic/newsfeed', array('newsfeed' => $newsfeed->as_array(), 'mini' => true)), Widget::TOP);
     // Slideshow
     if (count($user->images) > 1) {
         $images = array();
         foreach ($user->images as $image) {
             $images[] = $image;
         }
         Widget::add('side', View_Module::factory('generic/image_slideshow', array('images' => array_reverse($images), 'default_id' => $user->default_image->id)));
     }
     // Portrait
     Widget::add('side', $this->_get_mod_image($user), Widget::TOP);
     // Info
     Widget::add('side', View_Module::factory('user/info', array('user' => $user)), Widget::TOP);
 }