示例#1
0
文件: api.php 项目: uzura8/flockbird
 /**
  * Get thread list
  * 
  * @access  public
  * @return  Response (html)
  * @throws  Exception in Controller_Base::controller_common_api
  * @see  Controller_Base::controller_common_api
  */
 public function get_list()
 {
     $this->api_accept_formats = 'html';
     $this->controller_common_api(function () {
         list($limit, $page) = $this->common_get_pager_list_params();
         $data = Site_Model::get_list($limit, $page, get_uid());
         $this->set_response_body_api($data, '_parts/list');
     });
 }
示例#2
0
 /**
  * Thread list
  * 
  * @access  public
  * @return  Response
  */
 public function action_list()
 {
     list($limit, $page) = $this->common_get_pager_list_params();
     $data = Site_Model::get_list($limit, $page, get_uid());
     $this->set_title_and_breadcrumbs(term('thread', 'site.list'));
     $this->template->content = \View::forge('_parts/list', $data);
     if (IS_AUTH) {
         $this->template->subtitle = \View::forge('_parts/list_subtitle');
     }
     $this->template->post_footer = \View::forge('_parts/list_footer');
 }
示例#3
0
文件: note.php 项目: uzura8/flockbird
 /**
  * Note member
  * 
  * @access  public
  * @params  integer
  * @return  Response
  */
 public function action_member($member_id = null)
 {
     $member_id = (int) $member_id;
     list($is_mypage, $member) = $this->check_auth_and_is_mypage($member_id);
     $is_draft = $is_mypage ? \Util_string::cast_bool_int(\Input::get('is_draft', 0)) : 0;
     list($limit, $page) = $this->common_get_pager_list_params();
     $data = Site_Model::get_list($limit, $page, \Auth::check() ? $this->u->id : 0, $member, $is_mypage, $is_draft);
     $this->set_title_and_breadcrumbs(sprintf('%sの%s', $is_mypage ? '自分' : $member->name . 'さん', term('note', 'site.list')), null, $member);
     $this->template->subtitle = $is_mypage ? \View::forge('_parts/member_subtitle') : '';
     $this->template->content = \View::forge('member', $data);
     $this->template->post_footer = \View::forge('_parts/list_footer');
 }
示例#4
0
文件: api.php 项目: uzura8/flockbird
 /**
  * Get note list by member
  * 
  * @access  public
  * @param   int  $member_id
  * @return  Response (html)
  * @throws  Exception in Controller_Base::controller_common_api
  * @see  Controller_Base::controller_common_api
  */
 public function get_member($member_id = null)
 {
     $this->api_accept_formats = 'html';
     $this->controller_common_api(function () use($member_id) {
         $member_id = (int) $member_id;
         list($is_mypage, $member) = $member_id ? $this->check_auth_and_is_mypage($member_id, true) : array(null, false);
         list($limit, $page) = $this->common_get_pager_list_params();
         $is_draft = $is_mypage ? \Util_string::cast_bool_int(\Input::get('is_draft', 0)) : 0;
         $data = Site_Model::get_list($limit, $page, \Auth::check() ? $this->u->id : 0, $member, $is_mypage, $is_draft);
         $this->set_response_body_api($data, '_parts/list');
     });
 }
示例#5
0
文件: news.php 项目: uzura8/flockbird
 /**
  * News tag
  * 
  * @access  public
  * @return  Response
  */
 public function action_tag($tag_string = null)
 {
     $tags = \Site_Util::validate_tags($tag_string);
     if (!$tags || !($ids = \News\Model_NewsTag::get_news_ids4tags($tags))) {
         throw new \HttpNotFoundException();
     }
     list($limit, $page) = $this->common_get_pager_list_params();
     $data = Site_Model::get_list($limit, $page, \Auth::check(), null, $ids);
     $data['tag_string'] = implode(', ', $tags);
     $this->set_title_and_breadcrumbs(sprintf('%s: %s', term('site.tag'), implode(', ', $tags)), array('news/list' => term('site.latest', 'news.view', 'site.list')));
     $this->template->post_footer = \View::forge('_parts/list_footer');
     $this->template->content = \View::forge('_parts/list', $data);
     $this->template->content->set_safe('html_bodys', Site_Model::convert_raw_bodys($data['list']));
 }
示例#6
0
 /**
  * Get note list
  * 
  * @access  public
  * @return  Response (html)
  * @throws  Exception in Controller_Base::controller_common_api
  * @see  Controller_Base::controller_common_api
  */
 public function get_list()
 {
     $this->api_accept_formats = 'html';
     $this->controller_common_api(function () {
         $category_name = \Input::get('category');
         $news_category = $category_name ? Model_NewsCategory::get4name($category_name) : null;
         $tag_string = \Input::get('tag');
         $tags = \Site_Util::validate_tags($tag_string);
         $ids = $tags ? Model_NewsTag::get_news_ids4tags($tags) : array();
         list($limit, $page) = $this->common_get_pager_list_params();
         $data = Site_Model::get_list($limit, $page, \Auth::check(), $news_category ? $news_category->id : 0, $ids);
         $data['category_name'] = $category_name;
         $data['tag_string'] = implode(', ', $tags);
         $this->set_response_body_api($data, '_parts/list', array('html_bodys' => Site_Model::convert_raw_bodys($data['list'])));
     });
 }
示例#7
0
文件: util.php 项目: uzura8/flockbird
 public static function get_list4view($self_member_id = 0, $target_member_id = 0, $is_mytimeline = false, $viewType = null, $params = array())
 {
     list($list, $next_id) = Site_Model::get_list($self_member_id, $target_member_id, $is_mytimeline, $viewType, $params['max_id'], $params['limit'], $params['is_latest'], $params['is_desc'], $params['since_id']);
     $liked_timeline_ids = conf('like.isEnabled') && $self_member_id ? \Site_Model::get_liked_ids('timeline', $self_member_id, $list) : array();
     $data = array('list' => $list, 'next_id' => $next_id, 'since_id' => $params['since_id'] ?: 0, 'is_display_load_before_link' => $params['max_id'] ? true : false, 'liked_timeline_ids' => $liked_timeline_ids);
     return $data;
 }
示例#8
0
 /**
  * @dataProvider get_list_provider
  */
 public function test_get_list($self_member_id = null, $target_member_id = null, $is_mytimeline = null, $viewType = null, $max_id = null, $limit = null, $is_latest = null, $is_desc = null, $since_id = null)
 {
     $public_flags_all = \Site_Util::get_public_flags();
     list($test_list, $next_id) = Site_Model::get_list($self_member_id, $target_member_id, $is_mytimeline, $viewType, $max_id, $limit, $is_latest, $is_desc, $since_id);
     if (!$test_list) {
         return;
     }
     $is_limitted = count($test_list) <= self::$total_count;
     // test for limit
     if ($limit) {
         $this->assertTrue(count($test_list) <= $limit);
     } else {
         $this->assertTrue(count($test_list) <= \Config::get('timeline.articles.limit'));
     }
     $first_id = 0;
     $before_id = 0;
     foreach ($test_list as $timeline_cache) {
         if (!$first_id) {
             $first_id = $timeline_cache->id;
         }
         // member_id
         if ($target_member_id) {
             $this->assertEquals($target_member_id, $timeline_cache->member_id);
         }
         // test for public_flag
         if ($timeline_cache->public_flag == FBD_PUBLIC_FLAG_PRIVATE) {
             $this->assertEquals($self_member_id, $timeline_cache->member_id);
         }
         if (!$self_member_id) {
             $this->assertEquals($timeline_cache->public_flag, FBD_PUBLIC_FLAG_ALL);
         }
         if ($self_member_id && $timeline_cache->member_id != $self_member_id) {
             $this->assertTrue(in_array($timeline_cache->public_flag, array(FBD_PUBLIC_FLAG_ALL, FBD_PUBLIC_FLAG_MEMBER)));
         }
         if ($self_member_id && $self_member_id == $target_member_id) {
             $this->assertTrue(in_array($timeline_cache->public_flag, array(FBD_PUBLIC_FLAG_ALL, FBD_PUBLIC_FLAG_MEMBER, FBD_PUBLIC_FLAG_PRIVATE)));
         }
         if ($self_member_id && $target_member_id && $self_member_id != $target_member_id) {
             $this->assertTrue(in_array($timeline_cache->public_flag, array(FBD_PUBLIC_FLAG_ALL, FBD_PUBLIC_FLAG_MEMBER)));
         }
         if ($self_member_id && $is_mytimeline && $timeline_cache->member_id != $self_member_id) {
             $this->assertTrue(in_array($timeline_cache->public_flag, array(FBD_PUBLIC_FLAG_ALL, FBD_PUBLIC_FLAG_MEMBER)));
         }
         if ($self_member_id && $is_mytimeline && $timeline_cache->member_id == $self_member_id) {
             $this->assertTrue(in_array($timeline_cache->public_flag, array(FBD_PUBLIC_FLAG_ALL, FBD_PUBLIC_FLAG_MEMBER, FBD_PUBLIC_FLAG_PRIVATE)));
         }
         // test for viewType
         if ($is_mytimeline && $viewType == 1) {
             $member_ids = \Model_MemberRelation::get_member_ids($self_member_id, 'follow');
             $member_ids[] = $self_member_id;
             $this->assertTrue(in_array($timeline_cache->member_id, $member_ids));
         }
         if ($is_mytimeline && $viewType == 2) {
             $member_ids = \Model_MemberRelation::get_member_ids($self_member_id, 'firiend');
             $member_ids[] = $self_member_id;
             $this->assertTrue(in_array($timeline_cache->member_id, $member_ids));
         }
         // test for param max_id
         if ($max_id) {
             $this->assertTrue($timeline_cache->id <= $max_id);
         }
         // test for param since_id
         if ($since_id) {
             $this->assertTrue($timeline_cache->id > $since_id);
         }
         if ($before_id) {
             // test for param is_desc
             if ($is_desc) {
                 $this->assertTrue($timeline_cache->id < $before_id);
             } else {
                 $this->assertTrue($timeline_cache->id > $before_id);
             }
         }
         $before_id = $timeline_cache->id;
     }
     $last_id = $timeline_cache->id;
     // test for param is_latest
     if ($is_latest && !$is_limitted) {
         $this->assertTrue($first_id == self::$total_last_id);
     }
     // test for return next_id
     if ($next_id) {
         if ($is_desc) {
             $this->assertTrue($next_id < $last_id);
         } else {
             $this->assertTrue($next_id > $last_id);
         }
     }
 }