コード例 #1
0
ファイル: PlaylistController.php プロジェクト: gpmcadam/bloon
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $playlist = Playlist::find($request->input('id'));
     if ($request->input('img') && $request->input('type')) {
         $type = $request->input('type');
         $img = $request->input('img');
         $palette = null;
         // try {
         $ext = 'jpg';
         $loadFunc = 'loadJpeg';
         if ($type === 'image/png') {
             $ext = 'png';
             $loadFunc = 'loadPng';
         } elseif ($type === 'image/gif') {
             $ext = 'gif';
             $loadFunc = 'loadGif';
         }
         $imgBlob = file_get_contents($img);
         $imgFile = storage_path('../public/img/playlists/' . sha1($imgBlob) . '.' . $ext);
         file_put_contents($imgFile, $imgBlob);
         $colorExtractor = new ColorExtractor();
         $palette = $colorExtractor->{$loadFunc}($imgFile)->extract(3);
         // choose two colors from the palette as the fg and bg
         $playlist->bg = $palette[2];
         $playlist->fg = $palette[0];
         $playlist->img = basename($imgFile);
         // } catch(Exception $ex) {}
     }
     $playlist->save();
     return response()->json(['playlist' => $playlist]);
 }
コード例 #2
0
 public function run()
 {
     DB::table('playlist_user')->delete();
     $user = \App\User::find(1);
     $user->playlists()->attach(\App\Playlist::find(1));
     $user->playlists()->attach(\App\Playlist::find(2));
     $user->playlists()->attach(\App\Playlist::find(3));
 }
コード例 #3
0
 public function run()
 {
     DB::table('card_playlist')->delete();
     $playlist = \App\Playlist::find(1);
     $playlist->cards()->attach(\App\Card::find(1));
     $playlist->cards()->attach(\App\Card::find(2));
     $playlist->cards()->attach(\App\Card::find(3));
     $playlist->cards()->attach(\App\Card::find(4));
     $playlist->cards()->attach(\App\Card::find(5));
     $playlist = \App\Playlist::find(2);
     $playlist->cards()->attach(\App\Card::find(2));
     $playlist->cards()->attach(\App\Card::find(3));
     $playlist->cards()->attach(\App\Card::find(5));
     $playlist = \App\Playlist::find(3);
     $playlist->cards()->attach(\App\Card::find(1));
     $playlist->cards()->attach(\App\Card::find(2));
     $playlist->cards()->attach(\App\Card::find(4));
 }
コード例 #4
0
 public function getList($id)
 {
     $playlist = \App\Playlist::find($id);
     $cards = $playlist->cards;
     return json_encode($cards);
 }
コード例 #5
0
 public function editPlaylist($id, Request $request)
 {
     $playlist = Playlist::find($id);
     $pName = $playlist->playlist_name;
     $userID = Auth::user()['id'];
     $playlistTrackIDs = DB::select('SELECT track_id FROM playlist_songs where playlist_id = ?', [$id]);
     $userTracks = DB::select('SELECT * FROM music where band_id = ?', [$userID]);
     $tracksData = array();
     foreach ($userTracks as $track) {
         $inArray = false;
         foreach ($playlistTrackIDs as $trackID) {
             if ($track->id == $trackID->track_id) {
                 $inArray = true;
             }
         }
         if ($inArray) {
             $tracksData[$track->id . "_on"] = $track;
         } else {
             $tracksData[$track->id . "_off"] = $track;
         }
     }
     $tracksData = $tracksData;
     return view('editplaylist', ['playlistName' => $pName, 'playlistID' => $id, 'data' => $tracksData, 'page_name' => 'editplaylist']);
 }
コード例 #6
0
 /**
  * AJAX Only Method
  * Updates the indexes of a selected playlist and the effected playlist
  * that has been jumped over. If the request was not made by a AJAX request
  * HTTP 401 will be returned.
  * @param Illuminate\Http\Request $request
  * @param int $playlistID  ID of the playlist to modify
  * @return Illuminate\Http\Response
  */
 public function updateIndexes(Request $request, $playlistID)
 {
     if ($request->ajax() == false) {
         abort(401, 'Unauthorized');
     }
     // Get ids from request
     $selectedID = $request->input('itemID');
     $effectedID = $request->input('effectedID');
     $playlist = Playlist::find($playlistID);
     // Can't find the playlist don't continue
     if (isset($playlist) == false) {
         abort(404);
     }
     foreach ($playlist->Adverts as $advert) {
         if ($advert->id == $selectedID) {
             $advert->pivot->advert_index = $request->input('newIndex');
             $advert->pivot->save();
         } else {
             if ($advert->id == $effectedID) {
                 $advert->pivot->advert_index = $request->input('effectedIndex');
                 $advert->pivot->save();
             }
         }
     }
     return response('Success', 200);
 }
コード例 #7
0
 public function exportForm($playlist_id, $orderBy = 'videos.artist', $order = 'asc')
 {
     $playlist = Playlist::find($playlist_id);
     $videos = PlaylistVideo::where('playlist_id', $playlist->id)->with('likes', 'video')->where('validation', '1');
     if ($orderBy == 'score') {
         $order = $order == 'asc' ? 'desc' : 'asc';
     } else {
         $videos = $videos->select('playlist_video.*');
         $videos = $videos->join('videos', 'playlist_video.video_id', '=', 'videos.id');
     }
     $videos = $videos->orderBy($orderBy, $order)->paginate(25);
     return view('playlists.export', compact('playlist', 'videos'));
 }