File Manager

Current Directory: /home/astoriaah/www/components/com_jce/editor/tiny_mce/plugins/imgmanager_ext
Viewing File: /home/astoriaah/www/components/com_jce/editor/tiny_mce/plugins/imgmanager_ext/imgmanager_ext.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; // set as an extension parent if (!defined('_WF_EXT')) { define('_WF_EXT', 1); } require_once WF_EDITOR_LIBRARIES . '/classes/manager.php'; require_once WF_EDITOR_LIBRARIES . '/classes/extensions/popups.php'; class WFImgManagerExtPlugin extends WFMediaManager { public $_filetypes = 'jpg,jpeg,png,apng,gif,webp,avif'; protected $name = 'imgmanager_ext'; public function __construct($config = array()) { $config = array( 'can_edit_images' => 1, 'show_view_mode' => 1, 'colorpicker' => true, ); parent::__construct($config); $app = JFactory::getApplication(); $request = WFRequest::getInstance(); if ($app->input->getCmd('dialog', 'plugin') === 'plugin') { $this->addFileBrowserEvent('onUpload', array($this, 'onUpload')); } $request->setRequest(array($this, 'getImageProperties')); } /** * Display the plugin. */ public function display() { $slot = JFactory::getApplication()->input->getCmd('slot', 'plugin'); if ($slot === 'editor') { return parent::display(); } if ($this->getParam('imgmanager_ext.insert_multiple', 1)) { $this->addFileBrowserButton('file', 'insert_multiple', array('action' => 'selectMultiple', 'title' => JText::_('WF_BUTTON_INSERT_MULTIPLE'), 'multiple' => true, 'single' => false, 'icon' => 'multiple-images')); } parent::display(); $document = WFDocument::getInstance(); // create new tabs instance $tabs = WFTabs::getInstance(array( 'base_path' => WF_EDITOR_PLUGINS . '/imgmanager', )); // Add tabs $tabs->addTab('image', 1, array('plugin' => $this)); if ($this->allowEvents()) { $tabs->addTab('rollover', $this->getParam('tabs_rollover', 1)); } $tabs->addTab('advanced', $this->getParam('tabs_advanced', 1)); $document->addScript(array('imgmanager'), 'plugins'); $document->addStyleSheet(array('imgmanager'), 'plugins'); $document->addScriptDeclaration('ImageManagerDialog.settings=' . json_encode($this->getSettings()) . ';'); // Load Popups instance $popups = WFPopupsExtension::getInstance(array( // map src value to popup link href 'map' => array('href' => 'popup_src'), // set text to false 'text' => false, // set url to true 'url' => true, // default popup option 'default' => $this->getParam('imgmanager_ext.popups.default', ''), )); $popups->display(); if ($this->getParam('tabs_responsive', 1)) { $tabs->addTemplatePath(WF_EDITOR_PLUGINS . '/imgmanager_ext/tmpl'); // Add tabs $tabs->addTab('responsive', 1, array('plugin' => $this)); } } public function onUpload($file, $relative = '') { parent::onUpload($file, $relative); $app = JFactory::getApplication(); if ($app->input->getInt('inline', 0) === 1) { $result = array( 'file' => $relative, 'name' => WFUtility::mb_basename($file), ); if ($this->getParam('imgmanager_ext.always_include_dimensions', 1)) { $dim = @getimagesize($file); if ($dim) { $result['width'] = $dim[0]; $result['height'] = $dim[1]; } } // exif description $description = $this->getImageDescription($file); if ($description) { $result['alt'] = $description; } return array_merge($result, array('attributes' => $this->getDefaultAttributes())); } return array(); } private function getThumbnailOptions() { $options = array(); $values = array( 'thumbnail_width' => 120, 'thumbnail_height' => 90, 'thumbnail_quality' => 80, ); $states = array( 'upload_thumbnail' => 1, 'upload_thumbnail_state' => 0, 'upload_thumbnail_crop' => 0, ); foreach ($values as $key => $default) { $fallback = $this->getParam('editor.upload_' . $key, '', '$'); $value = $this->getParam('imgmanager_ext.' . $key, '', '$'); // indicates an unset value, so use the global value or default if ($value === '$') { $value = $fallback === '$' ? $default : $fallback; } $options['upload_' . $key] = $value; } // unset thumbnail width and height if both are empty, use global values if ($options['upload_thumbnail_width'] === '' && $options['upload_thumbnail_height'] === '') { unset($options['upload_thumbnail_width']); unset($options['upload_thumbnail_height']); } foreach ($states as $key => $default) { $value = $this->getParam('editor.' . $key, $default); $options[$key] = $this->getParam('imgmanager_ext.' . $key, ''); // if the value is empty (unset), use the global value or default if ($options[$key] === '') { $options[$key] = $value; } } return $options; } public function getDefaultAttributes() { $attribs = parent::getDefaultAttributes(); unset($attribs['always_include_dimensions']); return $attribs; } public function getImageProperties() { return $this->getDefaultAttributes(); } public function getSettings($settings = array()) { $settings = array( 'attributes' => array( 'dimensions' => $this->getParam('imgmanager_ext.attributes_dimensions', 1), 'align' => $this->getParam('imgmanager_ext.attributes_align', 1), 'margin' => $this->getParam('imgmanager_ext.attributes_margin', 1), 'border' => $this->getParam('imgmanager_ext.attributes_border', 1), ), 'always_include_dimensions' => (bool) $this->getParam('imgmanager_ext.always_include_dimensions', 1) ); return parent::getSettings($settings); } protected function getFileBrowserConfig($config = array()) { $config = $this->getThumbnailOptions(); return parent::getFileBrowserConfig($config); } }