Esempio n. 1
0
 public function onAfterTrackLink(&$item, $params, $TitleName = null)
 {
     $session = JFactory::getSession();
     $app = JFactory::getApplication();
     if ($app->isAdmin() && $this->params->get('plg_playjoom_barplayer_params_basic_view') == 'site' || $app->isSite() && $this->params->get('plg_playjoom_barplayer_params_basic_view') == 'admin') {
         return null;
     } else {
         $rootURL = rtrim(JURI::base(), '/');
         $subpathURL = JURI::base(true);
         if (!empty($subpathURL) && $subpathURL != '/') {
             $rootURL = substr($rootURL, 0, -1 * strlen($subpathURL));
         }
         if (isset($item->id) && isset($item->file)) {
             $html = '';
             if ($app->isAdmin()) {
                 $link = $rootURL . JRoute::_('index.php?option=com_playjoom&view=broadcast&format=raw&tlk=' . hash('sha256', $session->getId() . '+' . PlayJoomHelper::getUserIP() . '+' . $item->id) . '&id=' . $item->id) . '&track.mp3';
                 $track_link = str_replace('/administrator', '', $link);
             } else {
                 $track_link = $rootURL . JRoute::_('index.php?option=com_playjoom&view=broadcast&format=raw&tlk=' . hash('sha256', $session->getId() . '+' . PlayJoomHelper::getUserIP() . '+' . $item->id) . '&id=' . $item->id) . '&track.mp3';
             }
             //$html .= '<div class="ui360" style="margin-top:-0.55em;"><a href="'.JURI::root(false).'index.php?option=com_playjoom&view=broadcast&id='.$item->id.'&'.urlencode($item->file).'"></a></div>';
             $html .= '<div class="ui360" style="margin-top:-0.55em;"><a href="' . $track_link . '"></a></div>';
         } else {
             return null;
         }
         return $html;
     }
 }
Esempio n. 2
0
 public function onPrepareTrackLink(&$item, $params = null, $TitleName = null, $Request = 'site')
 {
     $html = null;
     $session = JFactory::getSession();
     //If the event call comes from the albumviewer, then the $TitleName haven´t null
     if ($TitleName != null) {
         $TrackTitle = $TitleName;
     } else {
         if (isset($item->title)) {
             $TrackTitle = $item->title;
         } else {
             return null;
         }
     }
     if ($Request == 'admin') {
         $html .= '<a href="' . $this->rootURL . JRoute::_('index.php?option=com_playjoom&task=audiotrack.edit&id=' . $item->id) . '">' . $TrackTitle . '</a>';
     } else {
         //$html .= '<a href="'.$this->rootURL.JRoute::_('/components/com_playjoom/broadcasthandler/index.php?id='.$item->id,true).'&track.mp3" title="'.JText::_( 'PLG_PLAYJOOM_TRACKCONTROL_PLAYTITLE' ).'" target="_blank" class="direct_link">'.$TrackTitle.'</a>';
         $html .= '<a href="' . $this->rootURL . JRoute::_('index.php?option=com_playjoom&view=broadcast&format=raw&tlk=' . hash('sha256', $session->getId() . '+' . PlayJoomHelper::getUserIP() . '+' . $item->id) . '&id=' . $item->id, true) . '&track.mp3" title="' . JText::_('PLG_PLAYJOOM_TRACKCONTROL_PLAYTITLE') . '" target="_blank" class="direct_link">' . $TrackTitle . '</a>';
     }
     return $html;
 }
Esempio n. 3
0
 public function onAfterTrackLink(&$item, $params, $TitleName = null)
 {
     $session = JFactory::getSession();
     $app = JFactory::getApplication();
     if ($app->isAdmin() && $this->params->get('plg_playjoom_playbutton_params_basic_view', 'both') == 'site' || $app->isSite() && $this->params->get('plg_playjoom_playbutton_params_basic_view', 'both') == 'admin') {
         return null;
     } else {
         $html = '';
         $rootURL = rtrim(JURI::base(), '/');
         $subpathURL = JURI::base(true);
         if (!empty($subpathURL) && $subpathURL != '/') {
             $rootURL = substr($rootURL, 0, -1 * strlen($subpathURL));
         }
         if ($app->isAdmin()) {
             $link = $rootURL . JRoute::_('index.php?option=com_playjoom&view=broadcast&format=raw&tlk=' . hash('sha256', $session->getId() . '+' . PlayJoomHelper::getUserIP() . '+' . $item->id) . '&id=' . $item->id) . '&track.mp3';
             $track_link = str_replace('/administrator', '', $link);
         } else {
             $track_link = $rootURL . JRoute::_('index.php?option=com_playjoom&view=broadcast&format=raw&tlk=' . hash('sha256', $session->getId() . '+' . PlayJoomHelper::getUserIP() . '+' . $item->id) . '&id=' . $item->id) . '&track.mp3';
         }
         $html .= '<a href="' . $track_link . '" class="sm2_button" style="margin-left:15px;"></a>';
         return $html;
     }
 }
Esempio n. 4
0
    public function onAfterPJContent(&$item, $params, $source = null, $TitleName = null)
    {
        $session = JFactory::getSession();
        $rootURL = rtrim(JURI::base(), '/');
        $subpathURL = JURI::base(true);
        if (!empty($subpathURL) && $subpathURL != '/') {
            $rootURL = substr($rootURL, 0, -1 * strlen($subpathURL));
        }
        //Check for Trackcontrol
        if (JPluginHelper::isEnabled('playjoom', 'trackcontrol') == false) {
            $html = null;
        } else {
            $html = '';
            $html .= '<div class="sm2-bar-ui full-width fixed flat">
					<div class="bd sm2-main-controls">
						<div class="sm2-inline-texture"></div>
						<div class="sm2-inline-gradient"></div>
						<div class="sm2-inline-element sm2-button-element">
							<div class="sm2-button-bd">
								<a href="#play" class="sm2-inline-button play-pause">Play / pause</a>
							</div>
						</div>

						<div class="sm2-inline-element sm2-inline-status">
							<div class="sm2-playlist">
								<div class="sm2-playlist-target">
									<noscript><p>JavaScript is required.</p></noscript>
								</div>
							</div>

							<div class="sm2-progress">
								<div class="sm2-row">
									<div class="sm2-inline-time">0:00</div>
									<div class="sm2-progress-bd">
										<div class="sm2-progress-track">
											<div class="sm2-progress-bar"></div>
											<div class="sm2-progress-ball">
												<div class="icon-overlay">
											</div>
										</div>
									</div>
								</div>
								<div class="sm2-inline-duration">0:00</div>
							</div>
						</div>
					</div>
					<div class="sm2-inline-element sm2-button-element sm2-volume">
						<div class="sm2-button-bd">
							<span class="sm2-inline-button sm2-volume-control volume-shade"></span>
							<a href="#volume" class="sm2-inline-button sm2-volume-control">volume</a>
						</div>
					</div>

					<div class="sm2-inline-element sm2-button-element">
						<div class="sm2-button-bd">
							<a href="#prev" title="Previous" class="sm2-inline-button previous">&lt; previous</a>
						</div>
					</div>

					<div class="sm2-inline-element sm2-button-element">
						<div class="sm2-button-bd">
							<a href="#next" title="Next" class="sm2-inline-button next">&gt; next</a>
						</div>
					</div>


				</div>

				<div class="bd sm2-playlist-drawer sm2-element">
					<div class="sm2-inline-texture">
						<div class="sm2-box-shadow"></div>
					</div>
				<div class="sm2-playlist-wrapper">
					<ul class="sm2-playlist-bd">
				';
            foreach ($item as $i => $playlist_item) {
                if (JFile::exists($playlist_item->pathatlocal . DIRECTORY_SEPARATOR . $playlist_item->file)) {
                    //$html .= '<li><a href="'.$rootURL.JRoute::_('/components/com_playjoom/broadcasthandler/index.php?id='.$playlist_item->id).'&track.mp3"><b>'.$playlist_item->artist.'</b> - '.$playlist_item->title.'</a></li>';
                    $html .= '<li><a href="' . $rootURL . JRoute::_('index.php?option=com_playjoom&view=broadcast&format=raw&tlk=' . hash('sha256', $session->getId() . '+' . PlayJoomHelper::getUserIP() . '+' . $playlist_item->id) . '&id=' . $playlist_item->id) . '&track.mp3"><b>' . $playlist_item->artist . '</b> - ' . $playlist_item->title . '</a></li>';
                }
            }
            $html .= '</ul>
  </div>

 </div>

</div>';
            return $html;
        }
    }
Esempio n. 5
0
 /**
  * Method for to check if the requested track has a valid open session
  *
  * @param string $tlk hash of current session ID, track ID and user IP address.
  *
  * @return boolean
  */
 public function checkValidSession($user_id, $pk)
 {
     $dispatcher = JDispatcher::getInstance();
     $db = $this->getDbo();
     $query = $db->getQuery(true);
     $query->from('#__session as s');
     $query->select('s.session_id, s.userid');
     $query->where('s.userid=' . (int) $user_id);
     $db->setQuery($query);
     $Valid_Sessions = $db->loadObjectList();
     if (count($Valid_Sessions) >= 1) {
         foreach ($Valid_Sessions as $Valid_Session) {
             $session_form_db = hash('sha256', $Valid_Session->session_id . '+' . PlayJoomHelper::getUserIP() . '+' . $pk);
             $session_form_post = JFactory::getApplication()->input->get('tlk');
             if ($session_form_db != $session_form_post) {
                 $dispatcher->trigger('onEventLogging', array(array('method' => __METHOD__ . ":" . __LINE__, 'message' => 'Access denied! No valid session found for this request.', 'priority' => JLog::WARNING, 'section' => 'site')));
                 $valid_session = false;
             } else {
                 return true;
             }
         }
     } else {
         $dispatcher->trigger('onEventLogging', array(array('method' => __METHOD__ . ":" . __LINE__, 'message' => 'Access denied! No valid session found for this request.', 'priority' => JLog::WARNING, 'section' => 'site')));
         $valid_session = false;
     }
     return $valid_session;
 }
Esempio n. 6
0
 /**
  * Method for to create a wpl playlist into a array
  *
  * @param array $items
  */
 public function CreateWPLList($items, $archiv = null)
 {
     $PJContent = null;
     $session = JFactory::getSession();
     $dispatcher = JDispatcher::getInstance();
     $Entriecounter = count($items);
     $filecounter = 0;
     $PJContent = null;
     $PJContent .= '<?wpl version="1.0"?>' . "\r\n";
     $PJContent .= '<smil>' . "\r\n";
     $PJContent .= '<head>' . "\r\n";
     $PJContent .= '<meta name="Generator" content="PlayJoom Audio Server"/>' . "\r\n";
     $PJContent .= '<meta name="ItemCount" content="' . $Entriecounter . '"/>' . "\r\n";
     $PJContent .= '<title>Playlist</title>' . "\r\n";
     $PJContent .= '</head>' . "\r\n";
     $PJContent .= '<body>' . "\r\n";
     $PJContent .= '<seq>' . "\r\n";
     foreach ($items as $i => $item) {
         if (JFile::exists($item->pathatlocal . DIRECTORY_SEPARATOR . $item->file)) {
             $filecounter = $filecounter + 1;
             if ($archiv == true) {
                 if (JRequest::getVar('source') == 'album') {
                     $PJContent .= '<media src="' . $item->tracknumber . ' - ' . JApplication::stringURLSafe($item->title) . '.' . PlayJoomHelper::getFileExtension($item->mediatype) . '"/>' . "\r\n";
                 } else {
                     $PJContent .= '<media src="' . $i + 1 . '-' . JApplication::stringURLSafe($item->artist) . '-' . JApplication::stringURLSafe($item->title) . '.' . PlayJoomHelper::getFileExtension($item->mediatype) . '"/>' . "\r\n";
                 }
             } else {
                 $PJContent .= '<media src="' . SERVER_REF . "?option=com_playjoom&view=broadcast&format=raw&tlk=" . hash('sha256', $session->getId() . "+" . PlayJoomHelper::getUserIP() . "+" . $item->id) . "&id=" . $item->id . '"/>' . "\r\n";
             }
         } else {
             $dispatcher->trigger('onEventLogging', array(array('method' => __METHOD__ . ":" . __LINE__, 'message' => 'Track ' . $item->title . ' isn´t available!', 'priority' => JLog::WARNING, 'section' => 'site')));
         }
     }
     $PJContent .= '</seq>' . "\r\n";
     $PJContent .= '</body>' . "\r\n";
     $PJContent .= '</smil>' . "\r\n";
     $dispatcher->trigger('onEventLogging', array(array('method' => __METHOD__ . ":" . __LINE__, 'message' => 'Done to write playlist file.', 'priority' => JLog::INFO, 'section' => 'site')));
     $this->data[] = $PJContent;
 }