示例#1
0
文件: api.php 项目: uzura8/flockbird
 /**
  * Update public_flag common api controller
  * 
  * @access  protected
  * @param   string  $table   target table
  * @param   int     $id      target record id
  * @param   string  $method  Excecuting method name
  * @param   string  $type    Public flag type
  * @return  Response (html)
  * @throws  Exception in Controller_Base::controller_common_api
  * @see  Controller_Base::controller_common_api
  */
 protected function api_update_public_flag_common($table, $id, $method = 'update_public_flag', $type = 'default')
 {
     $this->api_accept_formats = 'html';
     $this->controller_common_api(function () use($table, $id, $method, $type) {
         $icon_only_flag = (int) \Input::post('icon_only_flag', 0);
         $id = intval(\Input::post('id') ?: $id);
         $model = Site_Model::get_model_name($table);
         $obj = $model::check_authority($id, $this->u->id);
         list($public_flag, $posted_model) = Site_Util::validate_params_for_update_public_flag($obj->public_flag, $type);
         \DB::start_transaction();
         $obj->{$method}($public_flag);
         \DB::commit_transaction();
         $data = array('model' => $posted_model, 'id' => $id, 'public_flag' => $public_flag, 'is_mycontents' => true, 'without_parent_box' => true, 'view_icon_only' => $icon_only_flag);
         $this->set_response_body_api($data, '_parts/public_flag_selecter');
     });
 }
示例#2
0
文件: api.php 项目: uzura8/flockbird
 /**
  * Update public_flag
  * 
  * @access  public
  * @param   int  $id  target id
  * @return  Response(html)
  * @throws  Exception in Controller_Base::controller_common_api
  * @see  Controller_Base::controller_common_api
  */
 public function post_update_public_flag($id = null)
 {
     $this->api_accept_formats = 'html';
     $this->controller_common_api(function () use($id) {
         $id = intval(\Input::post('id') ?: $id);
         $timeline = Model_Timeline::check_authority($id, $this->u->id);
         list($public_flag, $model) = \Site_Util::validate_params_for_update_public_flag($timeline->public_flag);
         \DB::start_transaction();
         if (Site_Util::check_type($timeline->type, 'album_image_timeline')) {
             $album_image_ids = Model_TimelineChildData::get_foreign_ids4timeline_id($timeline->id);
             \Album\Model_AlbumImage::update_multiple_each($album_image_ids, array('public_flag' => $public_flag));
         }
         $timeline->public_flag = $public_flag;
         $timeline->save();
         \DB::commit_transaction();
         $data = array('model' => $model, 'id' => $id, 'public_flag' => $public_flag, 'is_mycontents' => true, 'without_parent_box' => true);
         $this->set_response_body_api($data, '_parts/public_flag_selecter');
     });
 }
示例#3
0
文件: api.php 项目: uzura8/flockbird
 /**
  * Update public_flag
  * 
  * @access  public
  * @param   int  $id  target id
  * @return  Response(html)
  * @throws  Exception in Controller_Base::controller_common_api
  * @see  Controller_Base::controller_common_api
  */
 public function post_update_public_flag($id = null)
 {
     $this->api_accept_formats = 'html';
     $this->controller_common_api(function () use($id) {
         $id = (int) $id;
         if (\Input::post('id')) {
             $id = (int) \Input::post('id');
         }
         $icon_only_flag = (int) \Input::post('icon_only_flag', 0);
         $have_children_public_flag = (int) \Input::post('have_children_public_flag', 0);
         $is_update_children_public_flag = (int) \Input::post('is_update_children_public_flag', 0);
         $album = Model_Album::check_authority($id, $this->u->id, 'member');
         if ($result = Site_Util::check_album_disabled_to_update($album->foreign_table)) {
             throw new \DisableToUpdateException($result['message']);
         }
         list($public_flag, $model) = \Site_Util::validate_params_for_update_public_flag($album->public_flag);
         \DB::start_transaction();
         $album->update_public_flag_with_relations($public_flag, !empty($is_update_children_public_flag));
         \DB::commit_transaction();
         $data = array('model' => $model, 'id' => $id, 'public_flag' => $public_flag, 'is_mycontents' => true, 'without_parent_box' => true, 'view_icon_only' => $icon_only_flag, 'have_children_public_flag' => $have_children_public_flag, 'child_model' => 'album_image');
         $this->set_response_body_api($data, '_parts/public_flag_selecter');
     });
 }