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()); }