Файловый менеджер - Редактировать - /home/wuectly/www/plugins/content/sudesign_audio/sudesign_audio.php
Назад
<?php defined('_JEXEC') or die; /** * @package Plugin Content - Simple Audio Shortcode for Joomla! 1.7.x - 3.x - 4.alpha * @author SUDesign * @version 1.5 * @copyright (C) 2016 - SUDesign - All Rights Reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL * @support http://www.sudesign.fr/contact.html **/ class plgContentSudesign_audio extends JPlugin { public function __construct(& $subject, $config) { parent::__construct($subject, $config); } private function str2bool( $str ) { return in_array( strtolower(trim($str)) , array(1,'yes','on', 'true', 'oui') ); } public function onContentPrepare($context, &$row, $params, $page = 0) { if (preg_match_all('/(?P<tag>\[audio(?P<params>[^\]]+)\])/isU',$row->text,$matchs)) { if ($this->params->get('inc_lib') == 1) { $document = JFactory::getDocument(); $v = new Jversion(); if($v->isCompatible('3')) JHtml::_('jquery.framework'); if ($this->params->get('inc_jquery') == 1) $document->addScript(JURI::root().'plugins/content/sudesign_audio/lib/jquery-3.2.1.min.js'); $document->addScript(JURI::root().'plugins/content/sudesign_audio/lib/mediaelement-and-player.min.js'); $document->addStyleSheet(JURI::root().'plugins/content/sudesign_audio/lib/mediaelementplayer.min.css'); $default_width = (int)$this->params->get('default_width') - 183; if( $default_width > 20) $document->addStyleDeclaration('.mejs-controls div.mejs-time-rail{width:'.$default_width.'px;} .mejs-controls .mejs-time-rail .mejs-time-total{width:'.($default_width-10).'px;}'); } foreach($matchs['tag'] as $key => $tag) { $params = array( 'src' => '', 'onError' => 'shortcodeAudioOnerror(event,this)', 'mp3' => '', 'loop' => 'off', 'autoplay' => 'off', 'showvolume'=> 'on', 'controls' => 'controls', 'type' => '', 'background'=> '', 'btcolor' => '', 'preload' => 'none', 'style' => '', 'hidden' => '', ); if (preg_match_all('/(?P<param>[^\s]+)\=\"(?P<value>[^\"]+)\"/isU',$matchs['params'][$key], $attrs)) { foreach($attrs['param'] as $keyp => $param) { $params[$param] = trim($attrs['value'][$keyp]); } } if (!empty($params['mp3'])) { $params['src'] = $params['mp3']; unset($params['mp3']); } if ($this->str2bool($params['hidden'])) $params['style'] = 'display:none;'.$params['style']; $css = array(); $params['class'] = 'style-'.substr(md5(http_build_query($params)), 10); if (!empty($params['background'])) { $css[] = '.'.$params['class'].' .mejs-controls{background:'.$params['background'].'}'; unset($params['background']); } if (!empty($params['btcolor'])) { if ( in_array($params['btcolor'], array('black','red','green','blue'))) $css[] = '.'.$params['class'].' .mejs-button button{background-image:url('.JURI::root().'plugins/content/sudesign_audio/lib/controls-'.$params['btcolor'].'.svg)}'; unset($params['btcolor']); } if (isset($params['txtcolor'])) { $css[] = '.'.$params['class'].' .mejs-controls .mejs-time span{color:'.$params['txtcolor'].'!important}'; unset($params['txtcolor']); } if (!empty($params['showvolume'])) { if(!$this->str2bool($params['showvolume'])) { $css[] = '.'.$params['class'].' .mejs-button.mejs-volume-button{display:none}'; $css[] = '.'.$params['class'].' .mejs-horizontal-volume-slider{display:none!important}'; } unset($params['showvolume']); } if (!empty($params['style'])) { $css[] = '.'.$params['class'].'{'.$params['style'].'}'; } if (empty($params['type']) && !empty($params['src'])) { $ext = strtolower(trim(pathinfo($params['src'], PATHINFO_EXTENSION))); $params['type'] = 'audio/'.$ext; } $attrs = array(); foreach($params as $attr => $value) if (!empty($value)) if (in_array( strtolower(trim($attr)) , array('loop','autoplay'))) $attrs[] = $this->str2bool($value) ? $attr : ''; else $attrs[] = $attr.'="'.($this->str2bool($value) ? 'true': $value).'"'; $fallback = '<a href="'.$params['src'].'" target="_blank">'.parse_url($params['src'],PHP_URL_HOST).'</a>'; $html = '<audio '.implode(' ',$attrs).'>'.$fallback.'</audio>'.(empty($css)?'':'<style type="text/css">'.implode("\n",$css).'</style>'); $row->text = str_replace($tag, $html, $row->text); } $row->text = '<!--[if lt IE 9]><script>document.createElement("audio");</script><![endif]-->'.str_replace('[/audio]','',$row->text); } return true; } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка