Files
idpan.poznan.pl/components/com_jce/editor/libraries/classes/extensions/mediaplayer.php
2026-02-08 21:16:11 +01:00

140 lines
3.4 KiB
PHP

<?php
/**
* @copyright Copyright (c) 2009-2022 Ryan Demmer. All rights reserved
* @license GNU/GPL 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* JCE is free software. 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
*/
defined('JPATH_PLATFORM') or die;
class WFMediaPlayerExtension extends WFExtension
{
protected static $instance;
public function __construct($config = array())
{
$default = array(
'name' => '',
'title' => '',
'params' => array(),
);
$config = array_merge($default, $config);
parent::__construct($config);
}
/**
* Returns a reference to a manager object.
*
* This method must be invoked as:
* <pre> $manager =MediaManager::getInstance();</pre>
*
* @return MediaManager The manager object
*
* @since 1.5
*/
public static function getInstance($name = 'jceplayer')
{
if (!isset(self::$instance)) {
$classname = '';
if ($name && $name != 'none') {
$player = parent::loadExtensions('mediaplayer', $name);
if ($player) {
$classname = 'WFMediaPlayerExtension_'.ucfirst($player->name);
}
}
if ($classname && class_exists($classname)) {
self::$instance = new $classname();
} else {
self::$instance = new self();
}
}
return self::$instance;
}
public function display()
{
parent::display();
$document = WFDocument::getInstance();
if ($this->isEnabled() && $this->get('name')) {
$document->addScript(array(
'mediaplayer/'.$this->get('name').'/js/'.$this->get('name'),
), 'extensions');
$document->addStyleSheet(array(
'mediaplayer/'.$this->get('name').'/css/'.$this->get('name'),
), 'extensions');
$document->addScriptDeclaration('WFExtensions.MediaPlayer.init('.json_encode($this->getProperties()).')');
}
}
public function isEnabled()
{
return false;
}
public function getName()
{
return $this->get('name');
}
public function getTitle()
{
return $this->get('title');
}
public function getParams()
{
return $this->params;
}
public function getParam($param, $default = '')
{
$params = $this->getParams();
return isset($params[$param]) ? $params[$param] : $default;
}
/**
* @param object $player
*
* @return string
*/
public function loadTemplate($tpl = '')
{
$output = '';
if ($this->isEnabled()) {
$path = WF_EDITOR_EXTENSIONS.'/mediaplayer/'.$this->get('name');
$file = 'default.php';
if ($tpl) {
$file = 'default_'.$tpl.'.php';
}
if (file_exists($path.'/tmpl/'.$file)) {
ob_start();
include $path.'/tmpl/'.$file;
$output .= ob_get_contents();
ob_end_clean();
}
}
return $output;
}
}