Файловый менеджер - Редактировать - /var/www/html/plugins/editors-xtd/image/src/Extension/Image.php
Ðазад
<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.image * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\EditorsXtd\Image\Extension; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Editor\Button\Button; use Joomla\CMS\Event\Editor\EditorButtonsSetupEvent; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Uri\Uri; use Joomla\Event\SubscriberInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Editor Image button * * @since 1.5 */ final class Image extends CMSPlugin implements SubscriberInterface { /** * Returns an array of events this subscriber will listen to. * * @return array * * @since 5.1.0 */ public static function getSubscribedEvents(): array { return ['onEditorButtonsSetup' => 'onEditorButtonsSetup']; } /** * @param EditorButtonsSetupEvent $event * @return void * * @since 5.1.0 */ public function onEditorButtonsSetup(EditorButtonsSetupEvent $event): void { $disabled = $event->getDisabledButtons(); if (\in_array($this->_name, $disabled)) { return; } $button = $this->onDisplay($event->getEditorId(), $event->getAsset(), $event->getAuthor()); if ($button) { $event->getButtonsRegistry()->add($button); } } /** * Display the button. * * @param string $name The name of the button to display. * @param string $asset The name of the asset being edited. * @param integer $author The id of the author owning the asset being edited. * * @return Button|false * * @since 1.5 */ public function onDisplay($name, $asset, $author) { $doc = $this->getApplication()->getDocument(); $user = $this->getApplication()->getIdentity(); $extension = $this->getApplication()->getInput()->get('option'); // For categories we check the extension (ex: component.section) if ($extension === 'com_categories') { $parts = explode('.', $this->getApplication()->getInput()->get('extension', 'com_content')); $extension = $parts[0]; } $asset = $asset !== '' ? $asset : $extension; if ( $user->authorise('core.edit', $asset) || $user->authorise('core.create', $asset) || (\count($user->getAuthorisedCategories($asset, 'core.create')) > 0) || ($user->authorise('core.edit.own', $asset) && $author === $user->id) || (\count($user->getAuthorisedCategories($extension, 'core.edit')) > 0) || (\count($user->getAuthorisedCategories($extension, 'core.edit.own')) > 0 && $author === $user->id) ) { $this->loadLanguage(); /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $doc->getWebAssetManager(); // Register the button assets if (!$wa->assetExists('script', 'editor-button.image')) { $wa->registerStyle('editor-button.image', '', [], [], ['webcomponent.media-select']); $wa->registerScript( 'editor-button.image', 'plg_editors-xtd_image/button-image.js', [], ['type' => 'module'], ['webcomponent.media-select', 'editors', 'joomla.dialog'] ); } $doc->addScriptOptions('media-picker-api', ['apiBaseUrl' => Uri::base(true) . '/index.php?option=com_media&format=json']); if (!$doc->getScriptOptions('media-picker')) { $imagesExt = array_map( 'trim', explode( ',', ComponentHelper::getParams('com_media')->get( 'image_extensions', 'bmp,gif,jpg,jpeg,png,webp' ) ) ); $audiosExt = array_map( 'trim', explode( ',', ComponentHelper::getParams('com_media')->get( 'audio_extensions', 'mp3,m4a,mp4a,ogg' ) ) ); $videosExt = array_map( 'trim', explode( ',', ComponentHelper::getParams('com_media')->get( 'video_extensions', 'mp4,mp4v,mpeg,mov,webm' ) ) ); $documentsExt = array_map( 'trim', explode( ',', ComponentHelper::getParams('com_media')->get( 'doc_extensions', 'doc,odg,odp,ods,odt,pdf,ppt,txt,xcf,xls,csv' ) ) ); $doc->addScriptOptions('media-picker', [ 'images' => $imagesExt, 'audios' => $audiosExt, 'videos' => $videosExt, 'documents' => $documentsExt, ]); } Text::script('JCLOSE'); Text::script('JFIELD_MEDIA_ALT_CHECK_DESC_LABEL'); Text::script('JFIELD_MEDIA_ALT_CHECK_LABEL'); Text::script('JFIELD_MEDIA_ALT_LABEL'); Text::script('JFIELD_MEDIA_CLASS_LABEL'); Text::script('JFIELD_MEDIA_DOWNLOAD_CHECK_DESC_LABEL'); Text::script('JFIELD_MEDIA_DOWNLOAD_CHECK_LABEL'); Text::script('JFIELD_MEDIA_DOWNLOAD_FILE'); Text::script('JFIELD_MEDIA_EMBED_CHECK_DESC_LABEL'); Text::script('JFIELD_MEDIA_EMBED_CHECK_LABEL'); Text::script('JFIELD_MEDIA_FIGURE_CAPTION_LABEL'); Text::script('JFIELD_MEDIA_FIGURE_CLASS_LABEL'); Text::script('JFIELD_MEDIA_HEIGHT_LABEL'); Text::script('JFIELD_MEDIA_LAZY_LABEL'); Text::script('JFIELD_MEDIA_SUMMARY_LABEL'); Text::script('JFIELD_MEDIA_TITLE_LABEL'); Text::script('JFIELD_MEDIA_UNSUPPORTED'); Text::script('JFIELD_MEDIA_WIDTH_LABEL'); Text::script('PLG_IMAGE_BUTTON_INSERT'); $link = 'index.php?option=com_media&view=media&tmpl=component&e_name=' . $name . '&asset=' . $asset . '&mediatypes=0,1,2,3' . '&author=' . $author; return new Button( $this->_name, [ 'action' => 'modal-media', 'text' => Text::_('PLG_IMAGE_BUTTON_IMAGE'), 'name' => $this->_type . '_' . $this->_name, 'icon' => 'pictures', 'link' => $link, 'iconSVG' => '<svg width="24" height="24" viewBox="0 0 512 512"><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48' . ' 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6' . ' 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40' . 'zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4' . '.686-16.971 0L96 304v48z"></path></svg>', ], [ 'popupType' => 'iframe', 'textHeader' => Text::_('PLG_IMAGE_BUTTON_IMAGE'), 'iconHeader' => 'icon-pictures', ] ); } return false; } }
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка