public static function get_timeline_images($type, $foreign_id, $timeline_id = null, $access_from = null, $is_detail = false) { // defaults $images = array(); $images['file_cate'] = 'ai'; $images['size'] = 'N_M'; $images['column_count'] = 3; switch ($type) { case \Config::get('timeline.types.album_image_profile'): $images['list'] = array(); if ($list = \Album\Model_AlbumImage::check_authority($foreign_id)) { $images['list'][] = $list; $images['column_count'] = 2; } break; case \Config::get('timeline.types.profile_image'): $images['list'] = array(); if ($list = \Model_File::find($foreign_id)) { $images['list'][] = $list; $images['file_cate'] = 'm'; $images['size'] = 'LL'; $images['column_count'] = 2; } break; case \Config::get('timeline.types.note'): list($images['list'], $images['count_all']) = \Note\Model_NoteAlbumImage::get_album_image4note_id($foreign_id, $is_detail ? 0 : \Config::get('timeline.articles.thumbnail.limit.default'), array('id' => 'asc'), true); $images['parent_page_uri'] = 'note/' . $foreign_id; break; case \Config::get('timeline.types.thread'): list($images['list'], $images['count_all']) = \Thread\Model_ThreadImage::get4thread_id($foreign_id, 3, true); $images['file_cate'] = 't'; $images['size'] = 'M'; $images['column_count'] = 3; $images['parent_page_uri'] = 'thread/' . $foreign_id; break; case \Config::get('timeline.types.album'): case \Config::get('timeline.types.album_image'): $images['list'] = array(); $images['count'] = 0; if ($album_image_ids = Model_TimelineChildData::get_foreign_ids4timeline_id($timeline_id)) { list($images['list'], $images['count']) = \Album\Model_AlbumImage::get_list_and_count(array('where' => \Site_Model::get_where_public_flag4access_from($access_from, array(array('id', 'in', $album_image_ids))), $is_detail ? 0 : 'limit' => \Config::get('timeline.articles.thumbnail.limit.default'), 'order_by' => array('created_at' => 'asc'))); } $images['count_all'] = \Album\Model_AlbumImage::get_list_count(array('where' => \Site_Model::get_where_public_flag4access_from($access_from, array(array('album_id', $foreign_id))))); $images['parent_page_uri'] = 'album/' . $foreign_id; break; case \Config::get('timeline.types.album_image_timeline'): list($images['list'], $images['count']) = \Album\Model_AlbumImage::get_list_and_count(array('where' => \Site_Model::get_where_public_flag4access_from($access_from, array(array('id', 'in', Model_TimelineChildData::get_foreign_ids4timeline_id($timeline_id)))), $is_detail ? 0 : 'limit' => \Config::get('timeline.articles.thumbnail.limit.album_image_timeline'), 'order_by' => array('created_at' => 'asc'))); $images['count_all'] = $images['count']; $images['parent_page_uri'] = 'timeline/' . $timeline_id; break; default: break; } return $images; }
/** * 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'); }); }
public function test_check_type_album_image_timeline() { if (!($list = Model_Timeline::get4type_key('album_image_timeline'))) { $this->markTestSkipped('No record for test.'); } \Util_Develop::output_test_info(__FILE__, __LINE__); foreach ($list as $obj) { // check for reference data. $this->assertEquals('album', $obj->foreign_table); $album = \Album\Model_Album::check_authority($obj->foreign_id); $this->assertNotEmpty($album); // check for member $member = \Model_Member::check_authority($obj->member_id); $this->assertNotEmpty($member); // check for member_id $this->assertEquals($album->member_id, $obj->member_id); // check for timeline_child_data $timeline_child_datas = Model_TimelineChildData::get4timeline_id($obj->id); $this->assertNotEmpty($timeline_child_datas); $public_flag_max_range = null; if ($timeline_child_datas) { foreach ($timeline_child_datas as $timeline_child_data) { // check for reference data. $this->assertEquals('album_image', $timeline_child_data->foreign_table); // check for album_image $album_image = \Album\Model_AlbumImage::check_authority($timeline_child_data->foreign_id); $this->assertNotEmpty($album_image); // check for album_id $this->assertEquals($album->id, $album_image->album_id); // check for public_flag. $this->assertEquals($album_image->public_flag, $obj->public_flag); } } } }
public static function save_timeline($member_id, $public_flag = null, $type_key = null, $foreign_id = null, $save_datetime = null, $body = null, Model_Timeline $timeline = null, $child_foreign_ids = array()) { if (!Site_Util::check_type_enabled($type_key)) { return; } list($type, $foreign_table, $child_foreign_table) = Site_Util::get_timeline_save_values($type_key); if (!$timeline) { $timeline = Site_Util::get_timeline_object($type_key, $foreign_id); } $is_new = empty($timeline->id); if (!is_null($body)) { $timeline->body = $body; } if ($is_new) { $timeline->member_id = $member_id; $timeline->type = $type; $timeline->public_flag = is_null($public_flag) ? conf('public_flag.default') : $public_flag; $timeline->foreign_table = $foreign_table; $timeline->foreign_id = $foreign_id; $timeline->created_at = $save_datetime ?: \Date::time()->format('mysql'); } else { if (\Site_Util::check_is_expanded_public_flag_range($timeline->public_flag, $public_flag)) { $timeline->public_flag = $public_flag; } if ($child_foreign_ids) { $timeline->sort_datetime = $save_datetime ?: \Date::time()->format('mysql'); } if ($timeline->is_changed() && $save_datetime) { $timeline->updated_at = $save_datetime; } } $timeline->save(); if ($child_foreign_ids) { Model_TimelineChildData::save_multiple($timeline->id, $child_foreign_table, $child_foreign_ids); } return $timeline; }
public function delete_with_album_image($member_id) { $album_image_ids = array(); $deleted_files = null; if (Site_Util::check_type($this->type, 'album_image_timeline')) { try { $album = \Album\Model_Album::check_authority($this->foreign_id, $member_id); } catch (\FuelException $e) { $album = null; } $album_image_ids = $album ? Model_TimelineChildData::get_foreign_ids4timeline_id($this->id) : null; } if ($album_image_ids) { \Album\Model_AlbumImage::delete_multiple($album_image_ids); } $this->delete(); }