| Server IP : 54.36.91.62 / Your IP : 216.73.217.112 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/c/o/o/coopiak/amisdesseniors-fr/plugins/system/jcepro/editor/plugins/mediamanager/ |
Upload File : |
<?php
/**
* @package JCE
* @subpackage Editor
*
* @copyright Copyright (c) 2009-2024 Ryan Demmer. All rights reserved
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Factory;
class WFMediamanagerPluginConfig
{
public static function getConfig(&$settings)
{
$wf = WFApplication::getInstance();
require_once __DIR__ . '/mediamanager.php';
$plugin = new WFMediaManagerPlugin();
$config = array(
'quickmedia' => array(),
);
// ensure the media plugin is added
if (!in_array('media', $settings['plugins'])) {
$settings['plugins'][] = 'media';
}
$allow_iframes = (int) $wf->getParam('media.iframes', 0);
$supported_media = array();
$restricted_media = array();
if ((bool) $plugin->getParam('aggregator.youtube.enable', 1)) {
$supported_media[] = 'youtube';
} else {
$config['quickmedia']['youtube'] = false;
$restricted_media[] = 'youtube';
}
if ((bool) $plugin->getParam('aggregator.vimeo.enable', 1)) {
$supported_media[] = 'vimeo';
} else {
$config['quickmedia']['vimeo'] = false;
$restricted_media[] = 'vimeo';
}
if ((bool) $plugin->getParam('aggregator.dailymotion.enable', 1)) {
$supported_media[] = 'dailymotion';
} else {
$restricted_media[] = 'dailymotion';
}
$custom_embed = Factory::getApplication()->triggerEvent('onWfGetCustomEmbedData');
if (!empty($custom_embed)) {
$config['custom_embed'] = array();
foreach ($custom_embed as $item) {
foreach ($item as $key => $values) {
$config['custom_embed'][$key] = $values;
$supported_media[] = isset($values['src']) ? $values['src'] : $key;
}
}
}
// get the list of filetypes supported
$filetypes = array_values($plugin->getFileTypes());
// only allow a limited set that are support by the <video> and <audio> tags
$filetypes_set = array_intersect($filetypes, array('mp3', 'oga', 'm4a', 'mp4', 'm4v', 'ogg', 'webm', 'ogv'));
if ($plugin->getParam('inline_upload', 1) && $plugin->getParam('upload', 1)) {
$config['upload'] = array(
'max_size' => $plugin->getParam('max_size', 1024),
'filetypes' => array_values($filetypes_set),
'inline' => true,
);
}
// reset quickmedia if disabled
if ($plugin->getParam('quickmedia', 1) == 0) {
$config['quickmedia'] = false;
}
if ($plugin->getParam('basic_dialog', 0) == 1) {
$config['basic_dialog'] = true;
if ($plugin->getParam('basic_dialog_filebrowser', 1) == 1) {
$config['basic_dialog_filebrowser'] = true;
$config['filetypes'] = array_values($filetypes_set);
}
}
$config['attributes'] = $plugin->getDefaultAttributes();
$config['custom_classes'] = $plugin->getParam('custom_classes', array());
$settings['mediamanager'] = $config;
// Media config overrides
$elements = array('video', 'audio', 'source', 'object', 'embed', 'param');
if ($allow_iframes == 1) {
$elements[] = 'iframe';
}
// iframes disabled, enable
if ($allow_iframes == 0) {
// we have iframes to support
if (!empty($supported_media)) {
// iframes are enabled via iframe plugin
if (!isset($settings['media_valid_elements']) || !in_array('iframe', $settings['media_valid_elements'])) {
$elements[] = 'iframe';
}
// if iframes is not loaded, allow for supported media only
if (!in_array('iframe', $settings['plugins'])) {
$allow_iframes = 3;
}
}
}
// iframes are set to local/supported only
if ($allow_iframes > 1) {
unset($settings['iframes_allow_local']);
$settings['iframes_allow_supported'] = true;
// ensure default array
if (empty($settings['iframes_supported_media'])) {
$settings['iframes_supported_media'] = array();
}
// add custom supported_media
$settings['iframes_supported_media'] = array_merge($settings['iframes_supported_media'], $supported_media);
// remove unsupported media
$settings['iframes_supported_media'] = array_diff($settings['iframes_supported_media'], array_values($restricted_media));
// remove duplicates
$settings['iframes_supported_media'] = array_unique(array_filter($settings['iframes_supported_media']));
// get values only
$settings['iframes_supported_media'] = array_values($settings['iframes_supported_media']);
$elements[] = 'iframe';
}
// check if media plugin enabled and has been configured, which would remove these tags from invalid_elements
$isMediaEnabled = empty(array_intersect($settings['invalid_elements'], array('audio', 'video', 'source', 'embed', 'object', 'param')));
// allow all elements
$settings['invalid_elements'] = array_diff($settings['invalid_elements'], array('audio', 'video', 'source', 'embed', 'object', 'param', 'iframe'));
// allow all if not specified or media plugin is not enabled
if (empty($settings['media_valid_elements']) || !$isMediaEnabled) {
$settings['media_valid_elements'] = $elements;
}
if ($isMediaEnabled) {
$settings['media_valid_elements'] = array_values(array_intersect($settings['media_valid_elements'], $elements));
}
// ensure iframes is supported if required
if (in_array('iframe', $elements) && !in_array('iframe', $settings['media_valid_elements'])) {
$settings['media_valid_elements'][] = 'iframe';
}
}
}