public function after_delete(\Orm\Model $obj)
 {
     if (!($timeline = \Timeline\Model_Timeline::find($obj->timeline_id))) {
         return;
     }
     $is_cache_delete = false;
     if (!\Timeline\Model_TimelineChildData::get4timeline_id($obj->timeline_id)) {
         $timeline->delete();
         $is_cache_delete = true;
     } elseif ($timeline->update_public_flag_with_check_child_data()) {
         $is_cache_delete = true;
     }
     if (\Config::get('timeline.articles.cache.is_use') && !$is_cache_delete) {
         \Timeline\Site_Util::delete_cache($timeline->id, $timeline->type);
     }
 }
示例#2
0
 /**
  * @dataProvider insert_provider
  */
 public function test_insert($public_flag, $timeline_public_flag_expected)
 {
     // timeline view cache 作成
     if (self::$is_check_timeline_view_cache) {
         $timeline_view_cache_before = \Timeline\Site_Util::make_view_cache4foreign_table_and_foreign_id('album', $album->id, \Config::get('timeline.types.album_image'));
     }
     // insert
     self::$upload_file_path = self::setup_upload_file();
     list($album_image, $file) = Model_AlbumImage::save_with_relations(self::$album->id, self::$member, $public_flag, self::$upload_file_path, 'album_image');
     self::$add_count++;
     // 返り値の確認
     $this->assertNotEmpty($album_image);
     $this->assertNotEmpty($file);
     // 件数
     $this->assertEquals(self::$total_count + 1, \Util_Orm::get_count_all('\\Album\\Model_AlbumImage'));
     // 公開範囲
     $this->assertEquals($public_flag, $album_image->public_flag);
     // timeline 関連
     if (is_enabled('timeline')) {
         // 件数
         $this->assertEquals(self::$timeline_count, \Util_Orm::get_count_all('\\Timeline\\Model_Timeline'));
         $this->assertEquals(self::$timeline_cache_count, \Util_Orm::get_count_all('\\Timeline\\Model_TimelineCache'));
         // timelines
         $timelines = \Timeline\Model_Timeline::get4foreign_table_and_foreign_ids('album', self::$album->id, \Config::get('timeline.types.album_image'));
         $this->assertCount(1, $timelines);
         $timeline = array_shift($timelines);
         // timeline_child_data
         $timeline_child_datas = \Timeline\Model_TimelineChildData::get4timeline_id($timeline->id);
         $this->assertCount(self::$add_count, $timeline_child_datas);
         $timeline_child_data = \Util_Array::get_last($timeline_child_datas);
         $this->assertEquals('album_image', $timeline_child_data->foreign_table);
         $this->assertEquals($album_image->id, $timeline_child_data->foreign_id);
         $this->assertEquals($timeline_public_flag_expected, $timeline->public_flag);
         $this->assertContains($timeline->sort_datetime, \Util_Date::get_datetime_list($album_image->created_at));
         $this->assertTrue(\Util_Date::check_is_future($timeline->sort_datetime, self::$album->created_at));
         // timeline view cache check
         if (self::$is_check_timeline_view_cache) {
             $this->assertEmpty(\Timeline\Site_Util::get_view_cache($timeline->id));
         }
     }
 }