Example #1
0
 public function actionView()
 {
     $id = (int) Yii::app()->request->getParam('id', 0);
     $playUrl = Yii::app()->request->getParam('url', null);
     $lyric = (int) Yii::app()->request->getParam('lyric', 0);
     $song = WapSongModel::model()->available()->findByPk($id);
     $isDeactive = false;
     if (!$song || $song->status == SongModel::DELETED) {
         $this->forward("/site/error", true);
     } elseif ($song->status == SongModel::DEACTIVE) {
         $isDeactive = true;
     }
     $artistId = SongArtistModel::model()->getArtistBySong($id, 'id');
     if ($artistId) {
         $artistId = $artistId[0];
     } else {
         $artistId = 0;
     }
     $genreId = SongGenreModel::model()->getCatBySong($song->id, false, true);
     if ($genreId) {
         $genreId = $genreId[0];
     } else {
         $genreId = 0;
     }
     //--- Check quyền nghe bài hát này
     $userType = "GUEST";
     if (Yii::app()->user->getState('msisdn')) {
         $userType = "MEMBER";
     }
     if (!empty($this->userSub)) {
         if (isset($this->userSub->package) && !empty($this->userSub->package)) {
             $package = $this->userSub->package->code;
         }
         $package = strtoupper($package);
         $userType = "SUB_" . $package;
     }
     $per = ContentLimitModel::getPermision($song->id, "song", $userType, "WAP");
     //---End check quyền nghe bài hát này
     $count = WapSongModel::model()->countSongsSameSinger($song->id, $artistId);
     $pager = new CPagination($count);
     $limit = Yii::app()->params['numberPerPage'];
     if ($this->layout == 'application.views.wap.layouts.main') {
         $limit = Yii::app()->params['numberSongPerPageWap'];
     }
     $pager->setPageSize($limit);
     $songArtist = WapSongModel::model()->getSongsSameSinger($song->id, $artistId, $pager->getOffset(), $pager->getLimit());
     $callBackLink = Yii::app()->createUrl("song/artist", array('song_id' => $song->id, 'artist_id' => $artistId));
     // check like
     $like = null;
     $favourite = Yii::app()->request->getParam('favourite', null);
     $user_id = Yii::app()->user->id;
     $phone = yii::app()->user->getState('msisdn');
     $artist_name = Common::makeFriendlyUrl($song->artist_name);
     $back_url = Yii::app()->params['base_url'] . Yii::app()->createUrl('song/view', array('id' => $song->id, 'url_key' => Common::makeFriendlyUrl($song->name), 'artist' => $artist_name));
     if (isset($favourite) && $favourite == 1) {
         //yeu thich video
         if (!empty($phone)) {
             $fav = WapFavouriteSongModel::model()->favouriteSong($id, $phone, $phone);
         } else {
             $this->redirect($this->createUrl("/account/login", array('back_url' => $back_url)));
         }
     } elseif (isset($favourite) && $favourite == 0) {
         if (!empty($user_id)) {
             $res = WapFavouriteSongModel::model()->deleteAll("song_id={$id} AND msisdn={$phone}");
         } else {
             $this->redirect($this->createUrl("/account/login", array('back_url' => $back_url)));
         }
     }
     if ($phone) {
         $like = WapFavouriteSongModel::model()->findByAttributes(array('song_id' => $song->id, 'msisdn' => $phone));
     }
     // Get Song Meta Data
     $Artist = ArtistModel::model()->findByPk($song->song_artist[0]->artist_id);
     $this->url = URLHelper::buildFriendlyURL("song", $song->id, $song->url_key);
     $this->itemName = $song->name;
     $this->artist = $Artist ? $Artist->name : 'Music';
     $this->thumb = ArtistModel::model()->getAvatarUrl($song->song_artist[0]->artist_id, 's1');
     $userSub = $this->userSub;
     $this->render('view', compact('song', 'songArtist', 'pager', 'callBackLink', 'artistId', 'genreId', 'like', 'per', 'lyric', 'playUrl', 'isDeactive'));
 }
 public function actionDislike()
 {
     $this->layout = false;
     $type = htmlspecialchars(Yii::app()->request->getparam('type', 'song'));
     $id = (int) Yii::app()->request->getparam('id', 0);
     $phone = Formatter::formatPhone(Yii::app()->user->getState('msisdn'));
     if (empty($phone)) {
         echo 'phone_not_detect';
         Yii::app()->end();
     }
     $criteria = new CDbCriteria();
     $criteria->condition = "phone=:phone";
     $criteria->params = array(':phone' => $phone);
     switch ($type) {
         case 'video':
             $videoModelDel = WapFavouriteVideoModel::model()->deleteAll("video_id={$id} AND msisdn={$phone}");
             if ($videoModelDel) {
                 echo 'deleted success';
             } else {
                 echo 'deleted fail';
             }
             break;
         case 'videoPlaylist':
             $videoModelDel = FavouriteVideoPlaylistModel::model()->deleteAll("video_playlist_id={$id} AND msisdn={$phone}");
             if ($videoModelDel) {
                 echo 'deleted success';
             } else {
                 echo 'deleted fail';
             }
             break;
         case 'album':
             $albumModelDel = FavouriteAlbumModel::model()->deleteAll("album_id={$id} AND msisdn={$phone}");
             if ($albumModelDel) {
                 echo 'deleted success';
             } else {
                 echo 'deleted fail';
             }
             break;
         default:
             //song
             $songModelDel = WapFavouriteSongModel::model()->deleteAll("song_id={$id} AND msisdn={$phone}");
             if ($songModelDel) {
                 echo 'deleted success';
             } else {
                 echo 'deleted fail';
             }
             break;
     }
     Yii::app()->end();
 }
 public function actionList()
 {
     if (empty($this->userPhone)) {
         $this->redirect('/account/login');
         Yii::app()->end();
     }
     $limit = 5;
     $pageSize = 5;
     $listfavourite = array();
     $offset = 0;
     $listfavourite['song'] = WapFavouriteSongModel::model()->findAllByPhone($this->userPhone, $pageSize, $offset);
     $listfavourite['album'] = WapFavouriteAlbumModel::model()->findAllByPhone($this->userPhone, $pageSize, $offset);
     $listfavourite['video'] = WapFavouriteVideoModel::model()->findAllByPhone($this->userPhone, $limit, $offset);
     $listfavourite['videoplaylist'] = FavouriteVideoPlaylistModel::model()->findAllByPhone($this->userPhone, $limit, $offset);
     $this->render('list', array('listfavourite' => $listfavourite));
 }