%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,mail,shell_exec,system,proc_open,popen,ini_alter,dl,proc_close,curl_exec,curl_multi_exec,readfile,parse_ini_file,escapeshellarg,escapeshellcmd,show_source,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,mail,php_uname,phpinfo MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/old/plugins/system/rokbox/ |
Upload File : |
<?php /** * @version $Id: rokbox.php 29730 2015-12-22 18:46:43Z djamil $ * @author RocketTheme http://www.rockettheme.com * @copyright Copyright (C) 2007 - 2018 RocketTheme, LLC * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only */ defined('_JEXEC') or die; /** * Class plgSystemRokBox */ class plgSystemRokBox extends JPlugin { /** * @var string */ protected $_version = '2.0.14'; /** * @var string */ protected $_basepath = '/plugins/system/rokbox/'; /** * @var bool */ protected static $_assetsLoad = false; /** * @param $subject * @param $config */ public function __construct(&$subject, $config) { parent::__construct($subject, $config); } /** * */ public function onAfterDispatch() { if (self::$_assetsLoad) return; $app = JFactory::getApplication(); if ($app->isAdmin()) return; // We want RokBox only on frontend $document = JFactory::getDocument(); $doctype = $document->getType(); if ($doctype !== 'html') return; // Only render for HTML output JHtml::_('behavior.framework', true); $this->compileLess(); $this->compileJS(); $document->addScriptDeclaration("if (typeof RokBoxSettings == 'undefined') RokBoxSettings = {pc: '" . $this->params->get('viewport_pc', 100) . "'};"); self::$_assetsLoad = true; } /** * */ public function onAfterRender() { if (!$this->params->get('backwards_compat', false)) return; $app = JFactory::getApplication(); if ($app->isAdmin()) return; // We want RokBox only on frontend $document = JFactory::getDocument(); $doctype = $document->getType(); if ($doctype == 'html') { $body = JResponse::getBody(); if (!class_exists('phpQuery', false)) { require_once(JPATH_PLUGINS . '/system/rokbox/lib/phpQuery.php'); } //$html = str_get_html($body); $pq = phpQuery::newDocument($body); foreach ($pq->find('a[rel^="rokbox"]') as $element) { $element = pq($element); $title = $element->attr('title'); $rel = $element->attr('rel'); preg_match("/\((.+)\)/", $rel, $album); $album = isset($album[1]) ? $album[1] : false; //preg_match("/\[(\d{1,})\s(\d{1,})\]\[module=(.+)\]/", $rel, $module); preg_match("/\[module=(.+)\]/", $rel, $module); $module = isset($module[1]) ? '#' . $module[1] : false; preg_match("/\[(\d{1,})\s+(\d{1,})\]/", $rel, $size); $size = isset($size[1]) && isset($size[2]) ? $size[1] . ' ' . $size[2] : false; if (strlen($title)) { @list($title, $caption) = explode(' :: ', $title); $caption = '<h4>' . $title . '</h4>' . (isset($caption) && strlen($caption) ? '<span>' . $caption . '</span>' : ''); } $element->removeAttr('rel'); $element->attr('data-rokbox', ''); if ($title) $element->attr('data-rokbox-caption', $caption); if ($album) $element->attr('data-rokbox-album', $album); if ($module) $element->attr('data-rokbox-element', $module); if ($size) $element->attr('data-rokbox-size', $size); } JResponse::setBody($pq->getDocument()->htmlOuter()); //$links = preg_match_all("|<a[^>]+rel\s*=\s*["']([^"']+)["'][^>]*>(.*?)<\/a>|i", $body, matches); //var_dump($this->getAttribute(, $body)); } } /** * */ protected function compileLess() { global $app; $document = JFactory::getDocument(); $assets = JPATH_SITE . $this->_basepath . 'assets'; if ((defined('ROKBOX_DEV') && ROKBOX_DEV) || @file_exists($assets . '/less/lessc.inc.php')) { //define("DEV", true); // to recompile/unify JS @include_once($assets . '/less/lessc.inc.php'); try { $css_file = $assets . '/styles/rokbox.css'; @unlink($css_file); lessc::ccompile($assets . '/less/global.less', $css_file); } catch (exception $e) { JError::raiseError('LESS Compiler', $e->getMessage()); } } $document->addStyleSheet(JURI::root(true) . $this->_basepath . 'assets/styles/rokbox.css'); } /** * */ protected function compileJS() { $document = JFactory::getDocument(); $assets = JPATH_SITE . $this->_basepath . 'assets'; if ((defined('ROKBOX_DEV') && ROKBOX_DEV) || @file_exists($assets . '/less/lessc.inc.php')) { $buffer = ""; $assets = JPATH_SITE . $this->_basepath . 'assets'; $app = $assets . '/application/'; $output = $assets . '/js/'; $files = array( $app . 'moofx', //$app . 'mootools-mobile', $app . 'RokBox.Media', $app . 'RokBox' ); foreach ($files as $file) { $file = $file . '.js'; $content = false; if (file_exists($file)) $content = file_get_contents($file); $buffer .= (!$content) ? "\n\n !!! File not Found: " . $file . " !!! \n\n" : $content; } file_put_contents($output . 'rokbox.js', $buffer); } $document->addScript(JURI::root(true) . $this->_basepath . 'assets/js/rokbox.js'); } /*protected function getAttribute($attrib, $tag = 'a'){ //gets an attribute value from the html tag $regex = '/' . preg_quote($attrib) . '=([\'"])?((?(1).+?|[^\s>]+))(?(1)\1)/is'; if (preg_match($regex, $tag, $match)){ return urldecode($match[2]); } return false; }*/ }