Файловый менеджер - Редактировать - /home/wuectly/www/03cbe/mediajce.php.tar
Назад
home/wuectly/www/plugins/fields/mediajce/mediajce.php 0000604 00000001752 15245551521 0016764 0 ustar 00 <?php /** * @package JCE * @subpackage Fields.MediaJce * * @copyright Copyright (C) 2005 - 2023 Open Source Matters, Inc. All rights reserved. * @copyright Copyright (C) 2020 - 2023 Ryan Demmer. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::registerNamespace('Joomla\\Plugin\\Fields\\MediaJce', JPATH_PLUGINS . '/fields/mediajce/src', false, false, 'psr4'); use Joomla\Component\Fields\Administrator\Plugin\FieldsPlugin; use Joomla\Plugin\Fields\MediaJce\PluginTraits\FormTrait; if (!class_exists('\\Joomla\\Component\\Fields\\Administrator\\Plugin\\FieldsPlugin', false)) { JLoader::import('components.com_fields.libraries.fieldsplugin', JPATH_ADMINISTRATOR); class_alias('FieldsPlugin', '\\Joomla\\Component\\Fields\\Administrator\\Plugin\\FieldsPlugin'); } /** * Fields MediaJce Plugin * * @since 2.6.27 */ class PlgFieldsMediaJce extends FieldsPlugin { use FormTrait; } home/wuectly/www/plugins/fields/mediajce/tmpl/mediajce.php 0000604 00000014101 15245603263 0017731 0 ustar 00 <?php /** * @package JCE * @subpackage Fields.MediaJce * * @copyright Copyright (C) 2005 - 2023 Open Source Matters, Inc. All rights reserved. * @copyright Copyright (C) 2020 - 2024 Ryan Demmer. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Layout\LayoutHelper; use Joomla\Filesystem\File; use Joomla\Filesystem\Path; // load helper require_once JPATH_PLUGINS . '/fields/mediajce/helper/mediahelper.php'; if (empty($field->value)) { return; } // single value, may be subform if (is_string($field->value)) { $field->value = array( 'media_src' => $field->value, 'media_type' => WfMediaHelper::isImage($field->value) ? 'embed' : 'link', ); } // no src value set if (empty($field->value['media_src'])) { return; } $data = array( 'media_src' => '', 'media_text' => (string) $fieldParams->get('media_description', ''), 'media_type' => (string) $fieldParams->get('display_type', 'embed'), 'media_target' => (string) $fieldParams->get('media_target', '_blank'), 'media_class' => (string) $fieldParams->get('media_class', ''), 'media_caption' => '', 'media_supported' => array('img', 'video', 'audio', 'iframe', 'a', 'object'), ); foreach ($field->value as $key => $value) { if (empty($value)) { continue; } $data[$key] = $value; } // convert to object $data = (object) $data; // convert legacy value if (isset($data->src)) { $data->media_src = $data->src; } // add "image" to supported media to allow for "image" and "img" $data->media_supported[] = 'image'; // clean Joomla 4 media stuff if ($pos = strpos($data->media_src, '#')) { $data->media_src = substr($data->media_src, 0, $pos); } // get file extension to determine tag $extension = pathinfo($data->media_src, PATHINFO_EXTENSION); // lowercase $extension = strtolower($extension); // get layout from extension $layout = WfMediaHelper::getLayoutFromExtension($extension); // reset to link if not extended media if ((int) $fieldParams->get('extendedmedia') == 0 && $layout !== 'image') { $layout = 'link'; } // reset layout as link if (!in_array($layout, $data->media_supported) || $data->media_type == 'link') { $layout = 'link'; } $attribs = array(); if ($data->media_class) { $data->media_class = preg_replace('#[^-\w ]#i', '', $data->media_class); $attribs['class'] = trim($data->media_class); } $text = ''; if ($data->media_text) { $text = $data->media_text; // htmlspecialchars encoded in layout } // links if ($layout == 'link') { $attribs['title'] = $text; } // images if ($layout == 'image') { if (isset($data->media_width)) { $attribs['width'] = $data->media_width; } if (isset($data->media_height)) { $attribs['height'] = $data->media_height; } // set lazy loading only if dimensions are set if (!empty($data->media_width) && !empty($data->media_height)) { $attribs['loading'] = 'lazy'; } // set alt text or emty value $attribs['alt'] = $text; } // audio if ($layout == 'audio') { $attribs['controls'] = 'controls'; if ($text) { $attribs['title'] = $text; } } // video if ($layout == 'video') { $attribs['controls'] = 'controls'; $attribs['width'] = isset($data->media_width) ? $data->media_width : ''; $attribs['height'] = isset($data->media_height) ? $data->media_height : ''; if ($text) { $attribs['title'] = $text; } } // object if ($layout == 'object') { $attribs['width'] = isset($data->media_width) ? $data->media_width : '100%'; $attribs['height'] = isset($data->media_height) ? $data->media_height : '100%'; if ($text) { $attribs['title'] = $text; } $attribs['data'] = $data->media_src; $mimetype = WfMediaHelper::getMimeType($extension); if ($mimetype) { $attribs['type'] = $mimetype; } else { $layout = 'iframe'; } } // iframe if ($layout == 'iframe') { $attribs['frameborder'] = 0; $attribs['width'] = isset($data->media_width) ? $data->media_width : '100%'; $attribs['height'] = isset($data->media_height) ? $data->media_height : '100%'; // set lazy loading only if dimensions are set if (!empty($data->media_width) && !empty($data->media_height)) { $attribs['loading'] = 'lazy'; } if ($text) { $attribs['title'] = $text; } } $buffer = ''; // perform pcre replacement of common invalid characters $path = preg_replace('#[\+\\\?\#%&<>"\'=\[\]\{\},;@\^\(\)£€$]#u', '', $data->media_src); // trim $path = trim($path); if ($path) { // clean slashes $path = Path::clean($path); // set text as basename if not an image if ($layout == 'link') { // set default target $attribs['target'] = $data->media_target; // set target as download if ($data->media_target == 'download') { $attribs['download'] = pathinfo($path, PATHINFO_FILENAME); } } if (!isset($attribs['class'])) { $attribs['class'] = ''; } // add media type class $attribs['class'] .= ' mediajce-' . $layout; // trim class $attribs['class'] = trim($attribs['class']); // check for valid path after clean if (is_file(JPATH_SITE . '/' . $path)) { $attribs['src'] = $path; LayoutHelper::$defaultBasePath = JPATH_PLUGINS . '/fields/mediajce/layouts'; $buffer = LayoutHelper::render('plugins.fields.mediajce.' . $layout, $attribs); // render with figure and figcaption if ($data->media_type == 'embed' && $data->media_caption) { $figure = array(); $caption_class = (string) $fieldParams->get('media_caption_class', ''); if ($caption_class) { $caption_class = preg_replace('#[^ \w-]#i', '', $caption_class); $figure['class'] = $caption_class; } $figure['caption'] = $data->media_caption; $figure['html'] = $buffer; $buffer = LayoutHelper::render('plugins.fields.mediajce.figure', $figure); } } } echo $buffer; home/wuectly/www/plugins/fields/mediajce/fields/mediajce.php 0000604 00000011054 15245630031 0020220 0 ustar 00 <?php /** * @package JCE * @subpackage Fields.MediaJce * * @copyright Copyright (C) 2005 - 2023 Open Source Matters, Inc. All rights reserved. * @copyright Copyright (C) 2020 - 2024 Ryan Demmer. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ \defined('_JEXEC') or die; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Form\Field\MediaField; use Joomla\CMS\Form\Form; use Joomla\CMS\Helper\MediaHelper; /** * Provides a modal media selector field for the JCE File Browser * * @since 2.6.17 */ class JFormFieldMediaJce extends MediaField { /** * The form field type. * * @var string */ protected $type = 'MediaJce'; /** * Layout to render * * @var string * @since 3.5 */ protected $layout = 'joomla.form.field.media'; /** * The mediatype for the form field. * * @var string * @since 2.9.37 */ protected $mediatype = 'images'; /** * Method to attach a JForm object to the field. * * @param SimpleXMLElement $element The SimpleXMLElement object representing the `<field>` tag for the form field object. * @param mixed $value The form field value to validate. * @param string $group The field name group control value. This acts as an array container for the field. * For example if the field has name="foo" and the group value is set to "bar" then the * full field name would end up being "bar[foo]". * * @return boolean True on success. * * @see JFormField::setup() */ public function setup(SimpleXMLElement $element, $value, $group = null) { // decode value if it is a string if (is_string($value)) { $json = json_decode($value, true); if ($json) { $value = isset($json['media_src']) ? $json['media_src'] : $value; } } else { $value = (array) $value; $value = isset($value['media_src']) ? $value['media_src'] : ''; } $result = parent::setup($element, $value, $group); if ($result === true) { $this->mediatype = isset($this->element['mediatype']) ? (string) $this->element['mediatype'] : 'images'; if (isset($this->types) && (bool) $this->element['converted'] === false) { if (is_string($this->value)) { $this->value = MediaHelper::getCleanMediaFieldValue($this->value); } } } return $result; } /** * Get the data that is going to be passed to the layout * * @return array */ public function getLayoutData() { // Get the basic field data $data = parent::getLayoutData(); // component must be installed and enabled if (!ComponentHelper::isEnabled('com_jce')) { return $data; } // plugin must be enabled if (!PluginHelper::isEnabled('system', 'jce')) { return $data; } $data['class'] .= ' input-medium wf-media-input'; // not enabled for media field if (!WfBrowserHelper::isMediaFieldEnabled()) { $data['readonly'] = true; $data['link'] = ''; return $data; } $converted = (bool) $this->element['converted']; $config = array( 'element' => $this->id, 'mediatype' => strtolower($this->mediatype), 'converted' => $converted, 'mediafolder' => isset($this->element['media_folder']) ? (string) $this->element['media_folder'] : '', ); // get individual field link $this->link = WfBrowserHelper::getMediaFieldUrl($config); $extraData = array( 'link' => $this->link, 'class' => $data['class'] .= ' wf-media-input-active', ); if ($converted) { $extraData['class'] .= ' wf-media-input-converted';; } // get global field options $options = WfBrowserHelper::getMediaFieldOptions(); if ($options['upload'] == 1) { $extraData['class'] .= ' wf-media-input-upload'; } if ($options['select_button'] == 0) { $extraData['class'] .= ' wf-media-input-no-select-button'; } $extraData['class'] .= ' wf-media-input-core'; return array_merge($data, $extraData); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка