コード例 #1
0
ファイル: view.raw.php プロジェクト: TFToto/playjoom-builds
 function display($tpl = null)
 {
     $dispatcher = JDispatcher::getInstance();
     // Get data from the model
     $items = $this->get('Items');
     //Get setting values from xml file
     $app = JFactory::getApplication();
     $params = $app->getParams();
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         $dispatcher->trigger('onEventLogging', array(array('method' => __METHOD__ . ":" . __LINE__, 'message' => 'Problem with datadase request: ' . implode("\r\n", $errors), 'priority' => JLog::ERROR, 'section' => 'site')));
         return false;
     }
     //Load playlist helper
     JLoader::import('helpers.playlist', JPATH_SITE . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_playjoom');
     $PlaylistFile = new PlayJoomHelperPlaylist();
     if (JRequest::getVar('attachment_playlist') != '') {
         $listtype = JRequest::getVar('attachment_playlist');
     } else {
         $listtype = $params->get('playlist_type', 'm3u');
     }
     $filename = base64_decode(JRequest::getVar('name'));
     if ($filename != '' && JRequest::getVar('disposition') == 'attachment') {
         $playlistFileName = JApplication::stringURLSafe($filename) . '.' . $listtype;
     } else {
         $playlistFileName = 'playlist.' . $listtype;
     }
     switch ($listtype) {
         case 'pls':
             $PlaylistFile->CreatePLSList($items, false);
             $PlaylistFile->setHeader($playlistFileName, 'application/pls+xml', mb_strlen($PlaylistFile->file(), '8bit'));
             break;
         case 'm3u':
             $PlaylistFile->CreateM3UList($items, false);
             $PlaylistFile->setHeader($playlistFileName, 'audio/x-mpegurl', mb_strlen($PlaylistFile->file(), '8bit'));
             break;
         case 'xspf':
             $PlaylistFile->CreateXSPFList($items, false);
             $PlaylistFile->setHeader($playlistFileName, 'application/xspf+xml', mb_strlen($PlaylistFile->file(), '8bit'));
             break;
         case 'wpl':
             $PlaylistFile->CreateWPLList($items, false);
             $PlaylistFile->setHeader($playlistFileName, 'application/vnd.ms-wpl', mb_strlen($PlaylistFile->file(), '8bit'));
             break;
         case 'plist':
             // Placeholder for Apples plist
             break;
         default:
             $PlaylistFile->CreateM3UList($items, false);
             $PlaylistFile->setHeader($playlistFileName, 'audio/x-mpegurl', mb_strlen($PlaylistFile->file(), '8bit'));
             break;
     }
     $PlaylistFile->send($PlaylistFile->file());
 }