diff --git a/airtime_mvc/application/controllers/PlaylistController.php b/airtime_mvc/application/controllers/PlaylistController.php index 47dd1fafe..1fb871f60 100644 --- a/airtime_mvc/application/controllers/PlaylistController.php +++ b/airtime_mvc/application/controllers/PlaylistController.php @@ -22,6 +22,8 @@ class PlaylistController extends Zend_Controller_Action ->addActionContext('set-playlist-description', 'json') ->addActionContext('playlist-preview', 'json') ->addActionContext('get-playlist', 'json') + ->addActionContext('smart-playlist-criteria-save', 'json') + ->addActionContext('smart-playlist-generate', 'json') ->initContext(); $this->pl_sess = new Zend_Session_Namespace(UI_PLAYLIST_SESSNAME); @@ -438,5 +440,19 @@ class PlaylistController extends Zend_Controller_Action $this->playlistUnknownError($e); } } + + public function smartPlaylistCriteriaSaveAction() + { + $request = $this->getRequest(); + $params = $request->getPost(); + Application_Model_Playlist::saveSmartPlaylistCriteria($param['data']); + } + + public function smartPlaylistGenerateAction() + { + $request = $this->getRequest(); + $params = $request->getPost(); + Application_Model_Playlist::generateSmartPlaylist($params['data']); + } } diff --git a/airtime_mvc/application/models/Playlist.php b/airtime_mvc/application/models/Playlist.php index 86985b1b3..6465e50d3 100644 --- a/airtime_mvc/application/models/Playlist.php +++ b/airtime_mvc/application/models/Playlist.php @@ -806,6 +806,53 @@ class Application_Model_Playlist { { CcPlaylistQuery::create()->findPKs($p_ids)->delete(); } + + + // smart playlist functions start + /** + * Saves smart playlist criteria + * @param array $p_criteria + */ + public static function saveSmartPlaylistCriteria($p_criteria) + { + $data = self::organizeSmartPlyalistCriteria($p_criteria); + } + + /** + * Get smart playlist criteria + * @param array $p_playlistId + */ + public static function getSmartPlaylistCriteria($p_playlistId) + { + + } + + /** + * generate list of tracks. This function saves creiteria and generate + * tracks. + * @param array $p_criteria + */ + public static function generateSmartPlaylist($p_criteria) + { + self::saveSmartPlaylistCriteria($p_criteria); + } + + public static function organizeSmartPlyalistCriteria($p_criteria) + { + $fieldNames = array('sp_criteria', 'sp_criteria_modifier', 'sp_criteria_value'); + $output = array(); + foreach ($p_criteria as $ele) { + $index = strrpos($ele['name'], '_'); + $fieldName = substr($ele['name'], 0, $index); + if (in_array($fieldName, $fieldNames)) { + $rowNum = intval(substr($ele['name'], $index+1)); + $output['criteria'][$rowNum][$fieldName] = $ele['value']; + }else{ + $output['etc'][$ele['name']] = $ele['value']; + } + } + } + // smart playlist functions end } // class Playlist