File Manager

Current Directory: /home/astoriaah/www/plugins/system/jcemediabox
Viewing File: /home/astoriaah/www/plugins/system/jcemediabox/jcemediabox.php
<?php /** * @package JCE MediaBox * @copyright Copyright (C) 2006-2017 Ryan Demmer. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL 3, see LICENCE * This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * * Light Theme inspired by Slimbox by Christophe Beyls * @ http://www.digitalia.be * * Shadow Theme inspired by ShadowBox * @ http://mjijackson.com/shadowbox/ * * Squeeze theme inspired by Squeezebox by Harald Kirschner * @ http://digitarald.de/project/squeezebox/ * */ defined('_JEXEC') or die('Restricted access'); jimport('joomla.plugin.plugin'); /** * JCE MediaBox Plugin * * @package JCE MediaBox * @subpackage System */ class plgSystemJCEMediabox extends JPlugin { /** * Create a list of translated labels for popup window * @return Key : Value labels string */ protected function getLabels() { JPlugin::loadLanguage('plg_system_jcemediabox', JPATH_ADMINISTRATOR); $words = array('close', 'next', 'previous', 'cancel', 'numbers', 'numbers_count'); $v = array(); foreach ($words as $word) { $v[$word] = htmlspecialchars(JText::_('PLG_SYSTEM_JCEMEDIABOX_LABEL_' . strtoupper($word))); } return $v; } private function getAssetPath($relative) { $path = __DIR__ . '/' . $relative; $hash = md5_file($path); return JURI::base(true) . '/plugins/system/jcemediabox/' . $relative . '?' . $hash; } /** * OnAfterRoute function * @return Boolean true */ public function onAfterDispatch() { $app = JFactory::getApplication(); // only in "site" if ($app->getClientId() !== 0) { return; } $document = JFactory::getDocument(); $docType = $document->getType(); // only in html pages if ($docType != 'html') { return; } $db = JFactory::getDBO(); // Causes issue in Safari?? $pop = $app->input->getInt('pop'); $print = $app->input->getInt('print'); $task = $app->input->getCmd('task'); $tmpl = $app->input->getWord('tmpl'); // don't load mediabox on certain pages if ($pop || $print || $tmpl == 'component' || $task == 'new' || $task == 'edit') { return; } $params = $this->params; $components = $params->get('components'); if (!empty($components)) { if (is_string($components)) { $components = explode(',', $components); } $option = $app->input->get('option', ''); foreach ($components as $component) { if ($option === 'com_' . $component || $option === $component) { return; } } } // get active menu $menus = $app->getMenu(); $menu = $menus->getActive(); // get menu items from parameter $menuitems = (array) $params->get('menu'); // is there a menu assignment? if (!empty($menuitems) && !empty($menuitems[0])) { if ($menu && !in_array($menu->id, (array) $menuitems)) { return; } } // get excluded menu items from parameter $menuitems_exclude = (array) $params->get('menu_exclude'); // is there a menu exclusion? if (!empty($menuitems_exclude) && !empty($menuitems_exclude[0])) { if ($menu && in_array($menu->id, (array) $menuitems_exclude)) { return; } } $theme = $params->get('theme', 'standard'); if ($params->get('dynamic_themes', 0)) { $theme = $app->input->getWord('theme', $theme); } $config = array( 'base' => JURI::base(true) . '/', 'theme' => $theme, 'mediafallback' => (int) $params->get('mediafallback', 0), 'mediaselector' => $params->get('mediaselector', 'audio,video'), 'width' => $params->get('width', ''), 'height' => $params->get('height', ''), 'lightbox' => (int) $params->get('lightbox', 0), 'shadowbox' => (int) $params->get('shadowbox', 0), 'icons' => (int) $params->get('icons', 1), 'overlay' => (int) $params->get('overlay', 1), 'overlay_opacity' => (float) $params->get('overlayopacity'), 'overlay_color' => $params->get('overlaycolor', ''), 'transition_speed' => (int) $params->get('transition_speed', $params->get('scalespeed', 300)), 'close' => (int) $params->get('close', 2), 'scrolling' => (string) $params->get('scrolling', 'fixed'), 'labels' => $this->getLabels(), ); if ($this->params->get('jquery', 1)) { // Include jQuery JHtml::_('jquery.framework'); } $document->addScript($this->getAssetPath('js/jcemediabox.min.js')); $document->addStyleSheet($this->getAssetPath('css/jcemediabox.min.css')); $document->addScriptDeclaration('jQuery(document).ready(function(){WFMediaBox.init(' . json_encode($config) . ');});'); return true; } }