/** * Get list * * @access public * @param int $parent_id target parent record id * @return Response(json|html) * @throws Exception in Controller_Base::controller_common_api * @see Controller_Base::controller_common_api */ public function get_list($parent_id = null) { $this->api_accept_formats = array('html', 'json'); $this->controller_common_api(function () use($parent_id) { $album_id = (int) \Input::get('album_id') ?: (int) $parent_id; $member_id = (int) \Input::get('member_id', 0); $is_member_page = (int) \Input::get('is_member_page', 0); $start_album_image_id = (int) \Input::get('start_id', 0); $is_asc = (bool) \Input::get('asc', 0); $album = $album_id ? Model_Album::check_authority($album_id, null, 'member') : null; list($is_mypage, $member) = $member_id ? $this->check_auth_and_is_mypage($member_id, true) : array(null, false); if ($album && $member) { $member = null; $is_mypage = false; } if (!$is_mypage && $album) { $is_mypage = $this->check_is_mypage($album->member_id); } list($limit, $page) = $this->common_get_pager_list_params(conf('articles.limit', 'album'), conf('articles.limit_max', 'album')); $params = array(); if ($album) { $params['where'] = array(array('album_id', $album_id)); } $data = Site_Model::get_album_images($limit, $page, get_uid(), $member, $is_mypage, $params, $this->format != 'html', $is_asc); $data['liked_album_image_ids'] = conf('like.isEnabled') && \Auth::check() ? \Site_Model::get_liked_ids('album_image', $this->u->id, $data['list']) : array(); if ($this->format == 'html') { $data['is_member_page'] = $is_member_page; if (!empty($album)) { $data['album'] = $album; } if (!empty($member)) { $data['member'] = $member; } } else { $data['list'] = Site_Model::set_optional_data2album_image_list($data['list'], $start_album_image_id); } $this->set_response_body_api($data, $this->format == 'html' ? 'image/_parts/list' : null); }); }