Spade

Mini Shell

Directory:~$ /home/lmsyaran/public_html/joomla4/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/public_html/joomla4/com_media.zip

PK���[��b�hh
access.xmlnu�[���<?xml version="1.0"
encoding="utf-8" ?>
<access component="com_media">
	<section name="component">
		<action name="core.admin" title="JACTION_ADMIN"
description="JACTION_ADMIN_COMPONENT_DESC" />
		<action name="core.options"
title="JACTION_OPTIONS"
description="JACTION_OPTIONS_COMPONENT_DESC" />
		<action name="core.manage" title="JACTION_MANAGE"
description="JACTION_MANAGE_COMPONENT_DESC" />
		<action name="core.create" title="JACTION_CREATE"
description="JACTION_CREATE_COMPONENT_DESC" />
		<action name="core.delete" title="JACTION_DELETE"
description="JACTION_DELETE_COMPONENT_DESC" />
	</section>
</access>
PK���[p�ѵKK
config.xmlnu�[���<?xml version="1.0"
encoding="utf-8"?>
<config>
	<fieldset 
		name="component"
		label="COM_MEDIA_FIELDSET_OPTIONS_LABEL">
		<field
			name="upload_extensions"
			type="text"
			label="COM_MEDIA_FIELD_LEGAL_EXTENSIONS_LABEL"
			description="COM_MEDIA_FIELD_LEGAL_EXTENSIONS_DESC"
			size="50"
			default="bmp,csv,doc,gif,ico,jpg,jpeg,odg,odp,ods,odt,pdf,png,ppt,txt,xcf,xls,BMP,CSV,DOC,GIF,ICO,JPG,JPEG,ODG,ODP,ODS,ODT,PDF,PNG,PPT,TXT,XCF,XLS"
		/>

		<field
			name="upload_maxsize"
			type="number"
			label="COM_MEDIA_FIELD_MAXIMUM_SIZE_LABEL"
			description="COM_MEDIA_FIELD_MAXIMUM_SIZE_DESC" 
			validate="number"
			min="0"
			size="50"
			default="10"
		/>

		<field
			name="spacer1" 
			type="spacer" 
			label="COM_MEDIA_FOLDERS_PATH_LABEL"
			class="text"
		/>

		<field
			name="file_path"
			type="text"
			label="COM_MEDIA_FIELD_PATH_FILE_FOLDER_LABEL"
			description="COM_MEDIA_FIELD_PATH_FILE_FOLDER_DESC" 
			size="50"
			default="images"
			validate="filePath"
		/>

		<field
			name="image_path"
			type="text"
			label="COM_MEDIA_FIELD_PATH_IMAGE_FOLDER_LABEL"
			description="COM_MEDIA_FIELD_PATH_IMAGE_FOLDER_DESC"
			size="50"
			default="images"
			validate="filePath"
		/>

		<field
			name="restrict_uploads"
			type="radio"
			label="COM_MEDIA_FIELD_RESTRICT_UPLOADS_LABEL"
			description="COM_MEDIA_FIELD_RESTRICT_UPLOADS_DESC"
			class="btn-group btn-group-yesno"
			default="1"
			>
			<option value="1">JYES</option>
			<option value="0">JNO</option>
		</field>

		<field
			name="check_mime"
			type="radio"
			label="COM_MEDIA_FIELD_CHECK_MIME_LABEL"
			description="COM_MEDIA_FIELD_CHECK_MIME_DESC"
			class="btn-group btn-group-yesno"
			default="1"
			showon="restrict_uploads:1"
			>
			<option value="1">JYES</option>
			<option value="0">JNO</option>
		</field>

		<field
			name="image_extensions"
			type="text"
			label="COM_MEDIA_FIELD_LEGAL_IMAGE_EXTENSIONS_LABEL"
			description="COM_MEDIA_FIELD_LEGAL_IMAGE_EXTENSIONS_DESC"
			size="50"
			default="bmp,gif,jpg,png"
			showon="restrict_uploads:1"
		/>

		<field
			name="ignore_extensions"
			type="text"
			label="COM_MEDIA_FIELD_IGNORED_EXTENSIONS_LABEL"
			description="COM_MEDIA_FIELD_IGNORED_EXTENSIONS_DESC" 
			size="50"
		/>

		<field
			name="upload_mime"
			type="text"
			label="COM_MEDIA_FIELD_LEGAL_MIME_TYPES_LABEL"
			description="COM_MEDIA_FIELD_LEGAL_MIME_TYPES_DESC"
			size="50"
			default="image/jpeg,image/gif,image/png,image/bmp,application/msword,application/excel,application/pdf,application/powerpoint,text/plain,application/x-zip"
			showon="restrict_uploads:1"
		/>

		<field
			name="upload_mime_illegal"
			type="text"
			label="COM_MEDIA_FIELD_ILLEGAL_MIME_TYPES_LABEL"
			description="COM_MEDIA_FIELD_ILLEGAL_MIME_TYPES_DESC"
			size="50"
			default="text/html"
			showon="restrict_uploads:1"
		/>
	</fieldset>

	<fieldset
		name="permissions"
		label="JCONFIG_PERMISSIONS_LABEL"
		description="JCONFIG_PERMISSIONS_DESC"
		>

		<field
			name="rules"
			type="rules"
			label="JCONFIG_PERMISSIONS_LABEL"
			filter="rules"
			validate="rules"
			component="com_media"
			section="component"
		 />
	</fieldset>
</config>
PK���[�3��}}controller.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Media Manager Component Controller
 *
 * @since  1.5
 */
class MediaController extends JControllerLegacy
{
	/**
	 * Method to display a view.
	 *
	 * @param   boolean  $cachable   If true, the view output will be cached
	 * @param   array    $urlparams  An array of safe URL parameters and their
variable types, for valid values see {@link JFilterInput::clean()}.
	 *
	 * @return  JController		This object to support chaining.
	 *
	 * @since   1.5
	 */
	public function display($cachable = false, $urlparams = false)
	{
		JPluginHelper::importPlugin('content');

		$vType    = JFactory::getDocument()->getType();
		$vName    = $this->input->get('view', 'media');

		switch ($vName)
		{
			case 'images':
				$vLayout = $this->input->get('layout',
'default', 'string');
				$mName   = 'manager';

				break;

			case 'imagesList':
				$mName   = 'list';
				$vLayout = $this->input->get('layout',
'default', 'string');

				break;

			case 'mediaList':
				$app     = JFactory::getApplication();
				$mName   = 'list';
				$vLayout =
$app->getUserStateFromRequest('media.list.layout',
'layout', 'thumbs', 'word');

				break;

			case 'media':
			default:
				$vName   = 'media';
				$vLayout = $this->input->get('layout',
'default', 'string');
				$mName   = 'manager';

				break;
		}

		// Get/Create the view
		$view = $this->getView($vName, $vType, '',
array('base_path' => JPATH_COMPONENT_ADMINISTRATOR));

		// Get/Create the model
		if ($model = $this->getModel($mName))
		{
			// Push the model into the view (as default)
			$view->setModel($model, true);
		}

		// Set the layout
		$view->setLayout($vLayout);

		// Display the view
		$view->display();

		return $this;
	}

	/**
	 * Validate FTP credentials
	 *
	 * @return  void
	 *
	 * @since   1.5
	 */
	public function ftpValidate()
	{
		// Set FTP credentials, if given
		JClientHelper::setCredentialsFromRequest('ftp');
	}
}
PK���[�ZT�ttcontrollers/file.json.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');

/**
 * File Media Controller
 *
 * @since  1.6
 */
class MediaControllerFile extends JControllerLegacy
{
	/**
	 * Upload a file
	 *
	 * @return  void
	 *
	 * @since   1.5
	 */
	public function upload()
	{
		$params = JComponentHelper::getParams('com_media');

		// Check for request forgeries
		if (!JSession::checkToken('request'))
		{
			$response = array(
				'status'  => '0',
				'message' => JText::_('JINVALID_TOKEN'),
				'error'   => JText::_('JINVALID_TOKEN')
			);
			echo json_encode($response);

			return;
		}

		// Get the user
		$user  = JFactory::getUser();
		JLog::addLogger(array('text_file' =>
'upload.error.php'), JLog::ALL, array('upload'));

		// Get some data from the request
		$file   = $this->input->files->get('Filedata',
'', 'array');
		$folder = $this->input->get('folder', '',
'path');

		// Instantiate the media helper
		$mediaHelper = new JHelperMedia;

		if ($_SERVER['CONTENT_LENGTH'] >
($params->get('upload_maxsize', 0) * 1024 * 1024)
			|| $_SERVER['CONTENT_LENGTH'] >
$mediaHelper->toBytes(ini_get('upload_max_filesize'))
			|| $_SERVER['CONTENT_LENGTH'] >
$mediaHelper->toBytes(ini_get('post_max_size'))
			|| $_SERVER['CONTENT_LENGTH'] >
$mediaHelper->toBytes(ini_get('memory_limit')))
		{
			$response = array(
				'status'  => '0',
				'message' =>
JText::_('COM_MEDIA_ERROR_WARNFILETOOLARGE'),
				'error'   =>
JText::_('COM_MEDIA_ERROR_WARNFILETOOLARGE')
			);
			echo json_encode($response);

			return;
		}

		// Set FTP credentials, if given
		JClientHelper::setCredentialsFromRequest('ftp');

		if (isset($file['name']))
		{
			// Make the filename safe
			$file['name'] = JFile::makeSafe($file['name']);

			// We need a URL safe name
			$fileparts = pathinfo(COM_MEDIA_BASE . '/' . $folder .
'/' . $file['name']);

			// Transform filename to punycode
			$fileparts['filename'] =
JStringPunycode::toPunycode($fileparts['filename']);
			$tempExt = !empty($fileparts['extension']) ?
strtolower($fileparts['extension']) : '';

			// Transform filename to punycode, then neglect other than
non-alphanumeric characters & underscores. Also transform extension to
lowercase
			$safeFileName = preg_replace(array("/[\\s]/",
'/[^a-zA-Z0-9_\-]/'), array('_', ''),
$fileparts['filename']) . '.' . $tempExt;

			// Create filepath with safe-filename
			$files['final'] = $fileparts['dirname'] .
DIRECTORY_SEPARATOR . $safeFileName;
			$file['name']   = $safeFileName;

			$filepath = JPath::clean($files['final']);

			if (!$mediaHelper->canUpload($file, 'com_media')
				|| strpos(realpath($fileparts['dirname']),
JPath::clean(realpath(COM_MEDIA_BASE))) !== 0)
			{
				try
				{
					JLog::add('Invalid: ' . $filepath, JLog::INFO,
'upload');
				}
				catch (RuntimeException $exception)
				{
					// Informational log only
				}

				$response = array(
					'status'  => '0',
					'message' =>
JText::_('COM_MEDIA_ERROR_UNABLE_TO_UPLOAD_FILE'),
					'error'   =>
JText::_('COM_MEDIA_ERROR_UNABLE_TO_UPLOAD_FILE')
				);

				echo json_encode($response);

				return;
			}

			// Trigger the onContentBeforeSave event.
			JPluginHelper::importPlugin('content');
			$dispatcher  = JEventDispatcher::getInstance();
			$object_file = new JObject($file);
			$object_file->filepath = $filepath;
			$result = $dispatcher->trigger('onContentBeforeSave',
array('com_media.file', &$object_file, true));

			if (in_array(false, $result, true))
			{
				// There are some errors in the plugins
				try
				{
					JLog::add(
						'Errors before save: ' . $object_file->filepath . '
: ' . implode(', ', $object_file->getErrors()),
						JLog::INFO,
						'upload'
					);
				}
				catch (RuntimeException $exception)
				{
					// Informational log only
				}

				$response = array(
					'status'  => '0',
					'message' =>
JText::plural('COM_MEDIA_ERROR_BEFORE_SAVE', count($errors =
$object_file->getErrors()), implode('<br />', $errors)),
					'error'   =>
JText::plural('COM_MEDIA_ERROR_BEFORE_SAVE', count($errors =
$object_file->getErrors()), implode('<br />', $errors))
				);

				echo json_encode($response);

				return;
			}

			if (JFile::exists($object_file->filepath))
			{
				// File exists
				try
				{
					JLog::add('File exists: ' . $object_file->filepath .
' by user_id ' . $user->id, JLog::INFO, 'upload');
				}
				catch (RuntimeException $exception)
				{
					// Informational log only
				}

				$response = array(
					'status'   => '0',
					'message'  =>
JText::_('COM_MEDIA_ERROR_FILE_EXISTS'),
					'error'    =>
JText::_('COM_MEDIA_ERROR_FILE_EXISTS'),
					'location' => str_replace(JPATH_ROOT, '', 
$filepath)
				);

				echo json_encode($response);

				return;
			}
			elseif (!$user->authorise('core.create',
'com_media'))
			{
				// File does not exist and user is not authorised to create
				try
				{
					JLog::add('Create not permitted: ' .
$object_file->filepath . ' by user_id ' . $user->id,
JLog::INFO, 'upload');
				}
				catch (RuntimeException $exception)
				{
					// Informational log only
				}

				$response = array(
					'status'  => '0',
					'error'   =>
JText::_('COM_MEDIA_ERROR_CREATE_NOT_PERMITTED'),
					'message' =>
JText::_('COM_MEDIA_ERROR_CREATE_NOT_PERMITTED')
				);

				echo json_encode($response);

				return;
			}

			if (!JFile::upload($object_file->tmp_name,
$object_file->filepath))
			{
				// Error in upload
				try
				{
					JLog::add('Error on upload: ' . $object_file->filepath,
JLog::INFO, 'upload');
				}
				catch (RuntimeException $exception)
				{
					// Informational log only
				}

				$response = array(
					'status'  => '0',
					'message' =>
JText::_('COM_MEDIA_ERROR_UNABLE_TO_UPLOAD_FILE'),
					'error'   =>
JText::_('COM_MEDIA_ERROR_UNABLE_TO_UPLOAD_FILE')
				);

				echo json_encode($response);

				return;
			}
			else
			{
				// Trigger the onContentAfterSave event.
				$dispatcher->trigger('onContentAfterSave',
array('com_media.file', &$object_file, true));

				try
				{
					JLog::add($folder, JLog::INFO, 'upload');
				}
				catch (RuntimeException $exception)
				{
					// Informational log only
				}

				$returnUrl = str_replace(JPATH_ROOT, '', 
$object_file->filepath);

				$response = array(
					'status'   => '1',
					'message'  =>
JText::sprintf('COM_MEDIA_UPLOAD_COMPLETE', $returnUrl),
					'error'    =>
JText::sprintf('COM_MEDIA_UPLOAD_COMPLETE', $returnUrl),
					'location' => str_replace('\\', '/',
$returnUrl)
				);

				echo json_encode($response);

				return;
			}
		}
		else
		{
			$response = array(
				'status'  => '0',
				'error'   =>
JText::_('COM_MEDIA_ERROR_BAD_REQUEST'),
				'message' =>
JText::_('COM_MEDIA_ERROR_BAD_REQUEST')
			);

			echo json_encode($response);

			return;
		}
	}
}
PK���[O�Ǯ))controllers/file.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');

/**
 * Media File Controller
 *
 * @since  1.5
 */
class MediaControllerFile extends JControllerLegacy
{
	/**
	 * The folder we are uploading into
	 *
	 * @var   string
	 */
	protected $folder = '';

	/**
	 * Upload one or more files
	 *
	 * @return  boolean
	 *
	 * @since   1.5
	 */
	public function upload()
	{
		// Check for request forgeries
		$this->checkToken('request');

		$params = JComponentHelper::getParams('com_media');

		// Get some data from the request
		$files        = $this->input->files->get('Filedata',
array(), 'array');
		$return       =
JFactory::getSession()->get('com_media.return_url');
		$this->folder = $this->input->get('folder',
'', 'path');

		// Instantiate the media helper
		$mediaHelper = new JHelperMedia;

		// Don't redirect to an external URL.
		if (!JUri::isInternal($return))
		{
			$return = '';
		}

		// Set the redirect
		if ($return)
		{
			$this->setRedirect($return . '&folder=' .
$this->folder);
		}
		else
		{
			$this->setRedirect('index.php?option=com_media&folder='
. $this->folder);
		}

		// First check against unfiltered input.
		if (!$this->input->files->get('Filedata', null,
'RAW'))
		{
			// Total length of post back data in bytes.
			$contentLength =
$this->input->server->get('CONTENT_LENGTH', 0,
'INT');

			// Maximum allowed size of post back data in MB.
			$postMaxSize =
$mediaHelper->toBytes(ini_get('post_max_size'));

			// Maximum allowed size of script execution in MB.
			$memoryLimit =
$mediaHelper->toBytes(ini_get('memory_limit'));

			// Check for the total size of post back data.
			if (($postMaxSize > 0 && $contentLength > $postMaxSize)
				|| ($memoryLimit != -1 && $contentLength > $memoryLimit))
			{
				// Files are too large.
				JError::raiseWarning(100,
JText::_('COM_MEDIA_ERROR_WARNUPLOADTOOLARGE'));

				return false;
			}

			// No files were provided.
			$this->setMessage(JText::_('COM_MEDIA_ERROR_UPLOAD_INPUT'),
'warning');

			return false;
		}

		if (!$files)
		{
			// Files were provided but are unsafe to upload.
			$this->setMessage(JText::_('COM_MEDIA_ERROR_WARNFILENOTSAFE'),
'error');

			return false;
		}

		// Authorize the user
		if (!$this->authoriseUser('create'))
		{
			return false;
		}

		$uploadMaxSize = $params->get('upload_maxsize', 0) * 1024 *
1024;
		$uploadMaxFileSize =
$mediaHelper->toBytes(ini_get('upload_max_filesize'));

		// Perform basic checks on file info before attempting anything
		foreach ($files as &$file)
		{
			// Make the filename safe
			$file['name'] = JFile::makeSafe($file['name']);

			// We need a url safe name
			$fileparts = pathinfo(COM_MEDIA_BASE . '/' . $this->folder
. '/' . $file['name']);

			if (strpos(realpath($fileparts['dirname']),
JPath::clean(realpath(COM_MEDIA_BASE))) !== 0)
			{
				JError::raiseWarning(100,
JText::_('COM_MEDIA_ERROR_WARNINVALID_FOLDER'));

				return false;
			}

			// Transform filename to punycode, check extension and transform it to
lowercase
			$fileparts['filename'] =
JStringPunycode::toPunycode($fileparts['filename']);
			$tempExt = !empty($fileparts['extension']) ?
strtolower($fileparts['extension']) : '';

			// Neglect other than non-alphanumeric characters, hyphens &
underscores.
			$safeFileName = preg_replace(array("/[\\s]/",
'/[^a-zA-Z0-9_\-]/'), array('_', ''),
$fileparts['filename']) . '.' . $tempExt;

			$file['name'] = $safeFileName;

			$file['filepath'] = JPath::clean(implode(DIRECTORY_SEPARATOR,
array(COM_MEDIA_BASE, $this->folder, $file['name'])));

			if (($file['error'] == 1)
				|| ($uploadMaxSize > 0 && $file['size'] >
$uploadMaxSize)
				|| ($uploadMaxFileSize > 0 && $file['size'] >
$uploadMaxFileSize))
			{
				// File size exceed either 'upload_max_filesize' or
'upload_maxsize'.
				JError::raiseWarning(100,
JText::_('COM_MEDIA_ERROR_WARNFILETOOLARGE'));

				return false;
			}

			if (JFile::exists($file['filepath']))
			{
				// A file with this name already exists
				JError::raiseWarning(100,
JText::_('COM_MEDIA_ERROR_FILE_EXISTS'));

				return false;
			}

			if (!isset($file['name']))
			{
				// No filename (after the name was cleaned by JFile::makeSafe)
				$this->setRedirect('index.php',
JText::_('COM_MEDIA_INVALID_REQUEST'), 'error');

				return false;
			}
		}

		// Set FTP credentials, if given
		JClientHelper::setCredentialsFromRequest('ftp');
		JPluginHelper::importPlugin('content');
		$dispatcher = JEventDispatcher::getInstance();

		foreach ($files as &$file)
		{
			// The request is valid
			$err = null;

			if (!MediaHelper::canUpload($file, $err))
			{
				// The file can't be uploaded
				return false;
			}

			// Trigger the onContentBeforeSave event.
			$object_file = new JObject($file);
			$result = $dispatcher->trigger('onContentBeforeSave',
array('com_media.file', &$object_file, true));

			if (in_array(false, $result, true))
			{
				// There are some errors in the plugins
				JError::raiseWarning(100,
JText::plural('COM_MEDIA_ERROR_BEFORE_SAVE', count($errors =
$object_file->getErrors()), implode('<br />',
$errors)));

				return false;
			}

			if (!JFile::upload($object_file->tmp_name,
$object_file->filepath))
			{
				// Error in upload
				JError::raiseWarning(100,
JText::_('COM_MEDIA_ERROR_UNABLE_TO_UPLOAD_FILE'));

				return false;
			}

			// Trigger the onContentAfterSave event.
			$dispatcher->trigger('onContentAfterSave',
array('com_media.file', &$object_file, true));
			$this->setMessage(JText::sprintf('COM_MEDIA_UPLOAD_COMPLETE',
substr($object_file->filepath, strlen(COM_MEDIA_BASE))));
		}

		return true;
	}

	/**
	 * Check that the user is authorized to perform this action
	 *
	 * @param   string  $action  - the action to be performed (create or
delete)
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function authoriseUser($action)
	{
		if (!JFactory::getUser()->authorise('core.' .
strtolower($action), 'com_media'))
		{
			// User is not authorised
			JError::raiseWarning(403, JText::_('JLIB_APPLICATION_ERROR_' .
strtoupper($action) . '_NOT_PERMITTED'));

			return false;
		}

		return true;
	}

	/**
	 * Deletes paths from the current path
	 *
	 * @return  boolean
	 *
	 * @since   1.5
	 */
	public function delete()
	{
		$this->checkToken('request');

		$user = JFactory::getUser();

		// Get some data from the request
		$tmpl   = $this->input->get('tmpl');
		$paths  = $this->input->get('rm', array(),
'array');
		$folder = $this->input->get('folder', '',
'path');

		$redirect = 'index.php?option=com_media&folder=' . $folder;

		if ($tmpl == 'component')
		{
			// We are inside the iframe
			$redirect .= '&view=mediaList&tmpl=component';
		}

		$this->setRedirect($redirect);

		// Just return if there's nothing to do
		if (empty($paths))
		{
			$this->setMessage(JText::_('JERROR_NO_ITEMS_SELECTED'),
'error');

			return true;
		}

		if (!$user->authorise('core.delete', 'com_media'))
		{
			// User is not authorised to delete
			JError::raiseWarning(403,
JText::_('JLIB_APPLICATION_ERROR_DELETE_NOT_PERMITTED'));

			return false;
		}

		// Need this to enqueue messages.
		$app = JFactory::getApplication();

		// Set FTP credentials, if given
		JClientHelper::setCredentialsFromRequest('ftp');

		JPluginHelper::importPlugin('content');
		$dispatcher = JEventDispatcher::getInstance();

		$ret = true;

		$safePaths = array_intersect($paths, array_map(array('JFile',
'makeSafe'), $paths));

		foreach ($safePaths as $key => $path)
		{
			$fullPath = implode(DIRECTORY_SEPARATOR, array(COM_MEDIA_BASE, $folder,
$path));

			if (strpos(realpath($fullPath), JPath::clean(realpath(COM_MEDIA_BASE)))
!== 0)
			{
				unset($safePaths[$key]);
			}
		}

		$unsafePaths = array_diff($paths, $safePaths);

		foreach ($unsafePaths as $path)
		{
			$path = JPath::clean(implode(DIRECTORY_SEPARATOR, array($folder,
$path)));
			$path = htmlspecialchars($path, ENT_COMPAT, 'UTF-8');
			$app->enqueueMessage(JText::sprintf('COM_MEDIA_ERROR_UNABLE_TO_DELETE_FILE_WARNFILENAME',
$path), 'error');
		}

		foreach ($safePaths as $path)
		{
			$fullPath = JPath::clean(implode(DIRECTORY_SEPARATOR,
array(COM_MEDIA_BASE, $folder, $path)));
			$object_file = new JObject(array('filepath' => $fullPath));

			if (is_file($object_file->filepath))
			{
				// Trigger the onContentBeforeDelete event.
				$result = $dispatcher->trigger('onContentBeforeDelete',
array('com_media.file', &$object_file));

				if (in_array(false, $result, true))
				{
					// There are some errors in the plugins
					$errors = $object_file->getErrors();
					JError::raiseWarning(100,
JText::plural('COM_MEDIA_ERROR_BEFORE_DELETE', count($errors),
implode('<br />', $errors)));

					continue;
				}

				$ret &= JFile::delete($object_file->filepath);

				// Trigger the onContentAfterDelete event.
				$dispatcher->trigger('onContentAfterDelete',
array('com_media.file', &$object_file));
				$app->enqueueMessage(JText::sprintf('COM_MEDIA_DELETE_COMPLETE',
substr($object_file->filepath, strlen(COM_MEDIA_BASE))));
			}
			elseif (is_dir($object_file->filepath))
			{
				$contents = JFolder::files($object_file->filepath, '.',
true, false, array('.svn', 'CVS',
'.DS_Store', '__MACOSX', 'index.html'));

				if (!empty($contents))
				{
					// This makes no sense...
					$folderPath = substr($object_file->filepath,
strlen(COM_MEDIA_BASE));
					JError::raiseWarning(100,
JText::sprintf('COM_MEDIA_ERROR_UNABLE_TO_DELETE_FOLDER_NOT_EMPTY',
$folderPath));

					continue;
				}

				// Trigger the onContentBeforeDelete event.
				$result = $dispatcher->trigger('onContentBeforeDelete',
array('com_media.folder', &$object_file));

				if (in_array(false, $result, true))
				{
					// There are some errors in the plugins
					$errors = $object_file->getErrors();
					JError::raiseWarning(100,
JText::plural('COM_MEDIA_ERROR_BEFORE_DELETE', count($errors),
implode('<br />', $errors)));

					continue;
				}

				$ret &= !JFolder::delete($object_file->filepath);

				// Trigger the onContentAfterDelete event.
				$dispatcher->trigger('onContentAfterDelete',
array('com_media.folder', &$object_file));
				$app->enqueueMessage(JText::sprintf('COM_MEDIA_DELETE_COMPLETE',
substr($object_file->filepath, strlen(COM_MEDIA_BASE))));
			}
		}

		return $ret;
	}
}
PK���[N����controllers/folder.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');

/**
 * Folder Media Controller
 *
 * @since  1.5
 */
class MediaControllerFolder extends JControllerLegacy
{
	/**
	 * Deletes paths from the current path
	 *
	 * @return  boolean
	 *
	 * @since   1.5
	 */
	public function delete()
	{
		$this->checkToken('request');

		$user = JFactory::getUser();

		// Get some data from the request
		$tmpl   = $this->input->get('tmpl');
		$paths  = $this->input->get('rm', array(),
'array');
		$folder = $this->input->get('folder', '',
'path');

		$redirect = 'index.php?option=com_media&folder=' . $folder;

		if ($tmpl == 'component')
		{
			// We are inside the iframe
			$redirect .= '&view=mediaList&tmpl=component';
		}

		$this->setRedirect($redirect);

		// Just return if there's nothing to do
		if (empty($paths))
		{
			$this->setMessage(JText::_('JERROR_NO_ITEMS_SELECTED'),
'error');

			return true;
		}

		if (!$user->authorise('core.delete', 'com_media'))
		{
			// User is not authorised to delete
			JError::raiseWarning(403,
JText::_('JLIB_APPLICATION_ERROR_DELETE_NOT_PERMITTED'));

			return false;
		}

		// Need this to enqueue messages.
		$app = JFactory::getApplication();

		// Set FTP credentials, if given
		JClientHelper::setCredentialsFromRequest('ftp');

		JPluginHelper::importPlugin('content');
		$dispatcher = JEventDispatcher::getInstance();

		$ret = true;

		$safePaths = array_intersect($paths, array_map(array('JFile',
'makeSafe'), $paths));
		$unsafePaths = array_diff($paths, $safePaths);

		foreach ($unsafePaths as $path)
		{
			$path = JPath::clean(implode(DIRECTORY_SEPARATOR, array($folder,
$path)));
			$path = htmlspecialchars($path, ENT_COMPAT, 'UTF-8');
			$app->enqueueMessage(JText::sprintf('COM_MEDIA_ERROR_UNABLE_TO_DELETE_FILE_WARNFILENAME',
$path), 'error');
		}

		foreach ($safePaths as $path)
		{
			$fullPath = JPath::clean(implode(DIRECTORY_SEPARATOR,
array(COM_MEDIA_BASE, $folder, $path)));

			if (strpos(realpath($fullPath), JPath::clean(realpath(COM_MEDIA_BASE)))
!== 0)
			{
				JError::raiseWarning(100,
JText::_('COM_MEDIA_ERROR_WARNINVALID_FOLDER'));

				continue;
			}

			$object_file = new JObject(array('filepath' => $fullPath));

			if (is_file($object_file->filepath))
			{
				// Trigger the onContentBeforeDelete event.
				$result = $dispatcher->trigger('onContentBeforeDelete',
array('com_media.file', &$object_file));

				if (in_array(false, $result, true))
				{
					// There are some errors in the plugins
					$errors = $object_file->getErrors();
					JError::raiseWarning(100,
JText::plural('COM_MEDIA_ERROR_BEFORE_DELETE', count($errors),
implode('<br />', $errors)));

					continue;
				}

				$ret &= JFile::delete($object_file->filepath);

				// Trigger the onContentAfterDelete event.
				$dispatcher->trigger('onContentAfterDelete',
array('com_media.file', &$object_file));
				$app->enqueueMessage(JText::sprintf('COM_MEDIA_DELETE_COMPLETE',
substr($object_file->filepath, strlen(COM_MEDIA_BASE))));
			}
			elseif (is_dir($object_file->filepath))
			{
				$contents = JFolder::files($object_file->filepath, '.',
true, false, array('.svn', 'CVS',
'.DS_Store', '__MACOSX', 'index.html'));

				if (!empty($contents))
				{
					// This makes no sense...
					$folderPath = substr($object_file->filepath,
strlen(COM_MEDIA_BASE));
					JError::raiseWarning(100,
JText::sprintf('COM_MEDIA_ERROR_UNABLE_TO_DELETE_FOLDER_NOT_EMPTY',
$folderPath));

					continue;
				}

				// Trigger the onContentBeforeDelete event.
				$result = $dispatcher->trigger('onContentBeforeDelete',
array('com_media.folder', &$object_file));

				if (in_array(false, $result, true))
				{
					// There are some errors in the plugins
					$errors = $object_file->getErrors();
					JError::raiseWarning(100,
JText::plural('COM_MEDIA_ERROR_BEFORE_DELETE', count($errors),
implode('<br />', $errors)));

					continue;
				}

				$ret &= !JFolder::delete($object_file->filepath);

				// Trigger the onContentAfterDelete event.
				$dispatcher->trigger('onContentAfterDelete',
array('com_media.folder', &$object_file));
				$app->enqueueMessage(JText::sprintf('COM_MEDIA_DELETE_COMPLETE',
substr($object_file->filepath, strlen(COM_MEDIA_BASE))));
			}
		}

		return $ret;
	}

	/**
	 * Create a folder
	 *
	 * @return  boolean
	 *
	 * @since   1.5
	 */
	public function create()
	{
		// Check for request forgeries
		$this->checkToken();

		$user  = JFactory::getUser();

		$folder      = $this->input->get('foldername',
'');
		$folderCheck = (string) $this->input->get('foldername',
null, 'raw');
		$parent      = $this->input->get('folderbase',
'', 'path');

		$this->setRedirect('index.php?option=com_media&folder='
. $parent . '&tmpl=' .
$this->input->get('tmpl', 'index'));

		if (strlen($folder) > 0)
		{
			if (!$user->authorise('core.create',
'com_media'))
			{
				// User is not authorised to create
				JError::raiseWarning(403,
JText::_('COM_MEDIA_ERROR_CREATE_NOT_PERMITTED'));

				return false;
			}

			// Set FTP credentials, if given
			JClientHelper::setCredentialsFromRequest('ftp');

			$this->input->set('folder', $parent);

			if (($folderCheck !== null) && ($folder !== $folderCheck))
			{
				$app = JFactory::getApplication();
				$app->enqueueMessage(JText::_('COM_MEDIA_ERROR_UNABLE_TO_CREATE_FOLDER_WARNDIRNAME'),
'warning');

				return false;
			}

			$path = JPath::clean(COM_MEDIA_BASE . '/' . $parent .
'/' . $folder);

			if (strpos(realpath(COM_MEDIA_BASE . '/' . $parent),
JPath::clean(realpath(COM_MEDIA_BASE))) !== 0)
			{
				$app = JFactory::getApplication();
				$app->enqueueMessage(JText::_('COM_MEDIA_ERROR_WARNINVALID_FOLDER'),
'error');

				return false;
			}

			if (!is_dir($path) && !is_file($path))
			{
				// Trigger the onContentBeforeSave event.
				$object_file = new JObject(array('filepath' => $path));
				JPluginHelper::importPlugin('content');
				$dispatcher = JEventDispatcher::getInstance();
				$result     = $dispatcher->trigger('onContentBeforeSave',
array('com_media.folder', &$object_file, true));

				if (in_array(false, $result, true))
				{
					// There are some errors in the plugins
					JError::raiseWarning(100,
JText::plural('COM_MEDIA_ERROR_BEFORE_SAVE', count($errors =
$object_file->getErrors()), implode('<br />',
$errors)));

					return false;
				}

				if (JFolder::create($object_file->filepath))
				{
					$data = "<html>\n<body
bgcolor=\"#FFFFFF\">\n</body>\n</html>";
					JFile::write($object_file->filepath . '/index.html',
$data);

					// Trigger the onContentAfterSave event.
					$dispatcher->trigger('onContentAfterSave',
array('com_media.folder', &$object_file, true));
					$this->setMessage(JText::sprintf('COM_MEDIA_CREATE_COMPLETE',
substr($object_file->filepath, strlen(COM_MEDIA_BASE))));
				}
			}

			$this->input->set('folder', ($parent) ? $parent .
'/' . $folder : $folder);
		}
		else
		{
			// File name is of zero length (null).
			JError::raiseWarning(100,
JText::_('COM_MEDIA_ERROR_UNABLE_TO_CREATE_FOLDER_WARNDIRNAME'));

			return false;
		}

		return true;
	}
}
PK���[tL�99helpers/media.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Media helper class.
 *
 * @since       1.6
 * @deprecated  4.0  Use JHelperMedia instead
 */
abstract class MediaHelper
{
	/**
	 * Checks if the file is an image
	 *
	 * @param   string  $fileName  The filename
	 *
	 * @return  boolean
	 *
	 * @since   1.5
	 * @deprecated  4.0  Use JHelperMedia::isImage instead
	 */
	public static function isImage($fileName)
	{
		try
		{
			JLog::add(
				sprintf('%s() is deprecated. Use JHelperMedia::isImage()
instead.', __METHOD__),
				JLog::WARNING,
				'deprecated'
			);
		}
		catch (RuntimeException $exception)
		{
			// Informational log only
		}

		$mediaHelper = new JHelperMedia;

		return $mediaHelper->isImage($fileName);
	}

	/**
	 * Gets the file extension for the purpose of using an icon.
	 *
	 * @param   string  $fileName  The filename
	 *
	 * @return  string  File extension
	 *
	 * @since   1.5
	 * @deprecated  4.0  Use JHelperMedia::getTypeIcon instead
	 */
	public static function getTypeIcon($fileName)
	{
		try
		{
			JLog::add(
				sprintf('%s() is deprecated. Use JHelperMedia::getTypeIcon()
instead.', __METHOD__),
				JLog::WARNING,
				'deprecated'
			);
		}
		catch (RuntimeException $exception)
		{
			// Informational log only
		}

		$mediaHelper = new JHelperMedia;

		return $mediaHelper->getTypeIcon($fileName);
	}

	/**
	 * Checks if the file can be uploaded
	 *
	 * @param   array   $file   File information
	 * @param   string  $error  An error message to be returned
	 *
	 * @return  boolean
	 *
	 * @since   1.5
	 * @deprecated  4.0  Use JHelperMedia::canUpload instead
	 */
	public static function canUpload($file, $error = '')
	{
		try
		{
			JLog::add(
				sprintf('%s() is deprecated. Use JHelperMedia::canUpload()
instead.', __METHOD__),
				JLog::WARNING,
				'deprecated'
			);
		}
		catch (RuntimeException $exception)
		{
			// Informational log only
		}

		$mediaHelper = new JHelperMedia;

		return $mediaHelper->canUpload($file, 'com_media');
	}

	/**
	 * Method to parse a file size
	 *
	 * @param   integer  $size  The file size in bytes
	 *
	 * @return  string  The converted file size
	 *
	 * @since   1.6
	 * @deprecated  4.0  Use JHtml::_('number.bytes') instead
	 */
	public static function parseSize($size)
	{
		try
		{
			JLog::add(
				sprintf("%s() is deprecated. Use
JHtml::_('number.bytes') instead.", __METHOD__),
				JLog::WARNING,
				'deprecated'
			);
		}
		catch (RuntimeException $exception)
		{
			// Informational log only
		}

		return JHtml::_('number.bytes', $size);
	}

	/**
	 * Calculate the size of a resized image
	 *
	 * @param   integer  $width   Image width
	 * @param   integer  $height  Image height
	 * @param   integer  $target  Target size
	 *
	 * @return  array  The new width and height
	 *
	 * @since   3.2
	 * @deprecated  4.0  Use JHelperMedia::imageResize instead
	 */
	public static function imageResize($width, $height, $target)
	{
		try
		{
			JLog::add(
				sprintf('%s() is deprecated. Use JHelperMedia::imageResize()
instead.', __METHOD__),
				JLog::WARNING,
				'deprecated'
			);
		}
		catch (RuntimeException $exception)
		{
			// Informational log only
		}

		$mediaHelper = new JHelperMedia;

		return $mediaHelper->imageResize($width, $height, $target);
	}

	/**
	 * Counts the files and directories in a directory that are not php or
html files.
	 *
	 * @param   string  $dir  Directory name
	 *
	 * @return  array  The number of files and directories in the given
directory
	 *
	 * @since   1.5
	 * @deprecated  4.0  Use JHelperMedia::countFiles instead
	 */
	public static function countFiles($dir)
	{
		try
		{
			JLog::add(
				sprintf('%s() is deprecated. Use JHelperMedia::countFiles()
instead.', __METHOD__),
				JLog::WARNING,
				'deprecated'
			);
		}
		catch (RuntimeException $exception)
		{
			// Informational log only
		}

		$mediaHelper = new JHelperMedia;

		return $mediaHelper->countFiles($dir);
	}
}
PK���[傦��layouts/toolbar/deletemedia.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

$title = JText::_('JTOOLBAR_DELETE');
JText::script('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST');
?>
<script type="text/javascript">
(function($){
	// if any media is selected then only allow to submit otherwise show
message
	deleteMedia = function(){
		if (
$('#folderframe').contents().find('input:checked[name="rm[]"]').length
== 0){
			alert(Joomla.JText._('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST'));
			return false;
		}

	MediaManager.submit('folder.delete');
	};

})(jQuery);
</script>

<button onclick="deleteMedia()" class="btn
btn-small">
	<span class="icon-remove" title="<?php echo $title;
?>"></span> <?php echo $title; ?>
</button>
PK���[�
i���layouts/toolbar/newfolder.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

$title = JText::_('COM_MEDIA_CREATE_NEW_FOLDER');
?>
<button data-toggle="collapse"
data-target="#collapseFolder" class="btn btn-small">
	<span class="icon-folder" title="<?php echo $title;
?>"></span> <?php echo $title; ?>
</button>
PK���[��vlayouts/toolbar/uploadmedia.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

$title = JText::_('JTOOLBAR_UPLOAD');
?>
<button data-toggle="collapse"
data-target="#collapseUpload" class="btn btn-small
btn-success">
	<span class="icon-plus icon-white" title="<?php echo
$title; ?>"></span> <?php echo $title; ?>
</button>
PK���[A��	media.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

$input  = JFactory::getApplication()->input;
$user   = JFactory::getUser();
$asset  = $input->get('asset');
$author = $input->get('author');

// Access check.
if (!$user->authorise('core.manage', 'com_media')
&& (!$asset || (!$user->authorise('core.edit', $asset)
	&& !$user->authorise('core.create', $asset)
	&& count($user->getAuthorisedCategories($asset,
'core.create')) == 0)
	&& !($user->id == $author &&
$user->authorise('core.edit.own', $asset))))
{
	throw new
JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'),
403);
}

$params = JComponentHelper::getParams('com_media');

// Load the helper class
JLoader::register('MediaHelper', JPATH_ADMINISTRATOR .
'/components/com_media/helpers/media.php');

// Set the path definitions
$popup_upload = $input->get('pop_up', null);
$path         = 'file_path';
$view         = $input->get('view');

if (substr(strtolower($view), 0, 6) == 'images' || $popup_upload
== 1)
{
	$path = 'image_path';
}

define('COM_MEDIA_BASE', JPATH_ROOT . '/' .
$params->get($path, 'images'));
define('COM_MEDIA_BASEURL', JUri::root() . $params->get($path,
'images'));

$controller = JControllerLegacy::getInstance('Media',
array('base_path' => JPATH_COMPONENT_ADMINISTRATOR));
$controller->execute($input->get('task'));
$controller->redirect();
PK���[�c�+��	media.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="component" version="3.1"
method="upgrade">
	<name>com_media</name>
	<author>Joomla! Project</author>
	<creationDate>April 2006</creationDate>
	<copyright>(C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>COM_MEDIA_XML_DESCRIPTION</description>
	<files folder="site">
		<filename>controller.php</filename>
		<filename>media.php</filename>
		<folder>helpers</folder>
	</files>
	<languages folder="site">
		<language
tag="en-GB">language/en-GB.com_media.ini</language>
	</languages>
	<administration>
		<files folder="admin">
			<filename>config.xml</filename>
			<filename>controller.php</filename>
			<filename>media.php</filename>
			<folder>controllers</folder>
			<folder>helpers</folder>
			<folder>layouts</folder>
			<folder>models</folder>
			<folder>views</folder>
		</files>
		<languages folder="admin">
			<language
tag="en-GB">language/en-GB.com_media.ini</language>
			<language
tag="en-GB">language/en-GB.com_media.sys.ini</language>
		</languages>
	</administration>
</extension>

PK���[�-%��models/list.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.file');

/**
 * Media Component List Model
 *
 * @since  1.5
 */
class MediaModelList extends JModelLegacy
{
	/**
	 * Method to get model state variables
	 *
	 * @param   string  $property  Optional parameter name
	 * @param   mixed   $default   Optional default value
	 *
	 * @return  object  The property where specified, the state object where
omitted
	 *
	 * @since   1.5
	 */
	public function getState($property = null, $default = null)
	{
		static $set;

		if (!$set)
		{
			$input  = JFactory::getApplication()->input;
			$folder = $input->get('folder', '',
'path');
			$this->setState('folder', $folder);

			$parent = str_replace("\\", '/', dirname($folder));
			$parent = ($parent == '.') ? null : $parent;
			$this->setState('parent', $parent);
			$set = true;
		}

		return parent::getState($property, $default);
	}

	/**
	 * Get the images on the current folder
	 *
	 * @return  array
	 *
	 * @since   1.5
	 */
	public function getImages()
	{
		$list = $this->getList();

		return $list['images'];
	}

	/**
	 * Get the folders on the current folder
	 *
	 * @return  array
	 *
	 * @since   1.5
	 */
	public function getFolders()
	{
		$list = $this->getList();

		return $list['folders'];
	}

	/**
	 * Get the documents on the current folder
	 *
	 * @return  array
	 *
	 * @since   1.5
	 */
	public function getDocuments()
	{
		$list = $this->getList();

		return $list['docs'];
	}

	/**
	 * Build imagelist
	 *
	 * @return  array
	 *
	 * @since 1.5
	 */
	public function getList()
	{
		static $list;

		// Only process the list once per request
		if (is_array($list))
		{
			return $list;
		}

		// Get current path from request
		$current = (string) $this->getState('folder');

		$basePath  = COM_MEDIA_BASE . ((strlen($current) > 0) ? '/'
. $current : '');
		$mediaBase = str_replace(DIRECTORY_SEPARATOR, '/',
COM_MEDIA_BASE . '/');

		// Reset base path
		if (strpos(realpath($basePath), JPath::clean(realpath(COM_MEDIA_BASE)))
!== 0)
		{
			$basePath = COM_MEDIA_BASE;
		}

		$images  = array ();
		$folders = array ();
		$docs    = array ();
		$videos  = array ();

		$fileList   = false;
		$folderList = false;

		if (file_exists($basePath))
		{
			// Get the list of files and folders from the given folder
			$fileList   = JFolder::files($basePath);
			$folderList = JFolder::folders($basePath);
		}

		// Iterate over the files if they exist
		if ($fileList !== false)
		{
			$tmpBaseObject = new JObject;

			foreach ($fileList as $file)
			{
				if (is_file($basePath . '/' . $file) && substr($file,
0, 1) != '.' && strtolower($file) !==
'index.html')
				{
					$tmp = clone $tmpBaseObject;
					$tmp->name = $file;
					$tmp->title = $file;
					$tmp->path = str_replace(DIRECTORY_SEPARATOR, '/',
JPath::clean($basePath . '/' . $file));
					$tmp->path_relative = str_replace($mediaBase, '',
$tmp->path);
					$tmp->size = filesize($tmp->path);

					$ext = strtolower(JFile::getExt($file));

					switch ($ext)
					{
						// Image
						case 'jpg':
						case 'png':
						case 'gif':
						case 'xcf':
						case 'odg':
						case 'bmp':
						case 'jpeg':
						case 'ico':
							$info = @getimagesize($tmp->path);
							$tmp->width  = @$info[0];
							$tmp->height = @$info[1];
							$tmp->type   = @$info[2];
							$tmp->mime   = @$info['mime'];

							if (($info[0] > 60) || ($info[1] > 60))
							{
								$dimensions = MediaHelper::imageResize($info[0], $info[1], 60);
								$tmp->width_60 = $dimensions[0];
								$tmp->height_60 = $dimensions[1];
							}
							else
							{
								$tmp->width_60 = $tmp->width;
								$tmp->height_60 = $tmp->height;
							}

							if (($info[0] > 16) || ($info[1] > 16))
							{
								$dimensions = MediaHelper::imageResize($info[0], $info[1], 16);
								$tmp->width_16 = $dimensions[0];
								$tmp->height_16 = $dimensions[1];
							}
							else
							{
								$tmp->width_16 = $tmp->width;
								$tmp->height_16 = $tmp->height;
							}

							$images[] = $tmp;
							break;

						// Video
						case 'mp4':
							$tmp->icon_32 = 'media/mime-icon-32/' . $ext .
'.png';
							$tmp->icon_16 = 'media/mime-icon-16/' . $ext .
'.png';
							$videos[] = $tmp;
							break;

						// Non-image document
						default:
							$tmp->icon_32 = 'media/mime-icon-32/' . $ext .
'.png';
							$tmp->icon_16 = 'media/mime-icon-16/' . $ext .
'.png';
							$docs[] = $tmp;
							break;
					}
				}
			}
		}

		// Iterate over the folders if they exist
		if ($folderList !== false)
		{
			$tmpBaseObject = new JObject;

			foreach ($folderList as $folder)
			{
				$tmp = clone $tmpBaseObject;
				$tmp->name = basename($folder);
				$tmp->path = str_replace(DIRECTORY_SEPARATOR, '/',
JPath::clean($basePath . '/' . $folder));
				$tmp->path_relative = str_replace($mediaBase, '',
$tmp->path);
				$count = MediaHelper::countFiles($tmp->path);
				$tmp->files = $count[0];
				$tmp->folders = $count[1];

				$folders[] = $tmp;
			}
		}

		$list = array('folders' => $folders, 'docs' =>
$docs, 'images' => $images, 'videos' => $videos);

		return $list;
	}

	/**
	 * Get the videos on the current folder
	 *
	 * @return  array
	 *
	 * @since   3.5
	 */
	public function getVideos()
	{
		$list = $this->getList();

		return $list['videos'];
	}
}
PK���[�>�models/manager.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Media Component Manager Model
 *
 * @since  1.5
 */
class MediaModelManager extends JModelLegacy
{
	/**
	 * Method to get model state variables
	 *
	 * @param   string  $property  Optional parameter name
	 * @param   mixed   $default   Optional default value
	 *
	 * @return  object  The property where specified, the state object where
omitted
	 *
	 * @since   1.5
	 */
	public function getState($property = null, $default = null)
	{
		static $set;

		if (!$set)
		{
			$input = JFactory::getApplication()->input;

			$folder = $input->get('folder', '',
'path');
			$this->setState('folder', $folder);

			$fieldid = $input->get('fieldid', '');
			$this->setState('field.id', $fieldid);

			$parent = str_replace("\\", '/', dirname($folder));
			$parent = ($parent == '.') ? null : $parent;
			$this->setState('parent', $parent);
			$set = true;
		}

		return parent::getState($property, $default);
	}

	/**
	 * Get a select field with a list of available folders
	 *
	 * @param   string  $base  The image directory to display
	 *
	 * @return  html
	 *
	 * @since 1.5
	 */
	public function getFolderList($base = null)
	{
		// Get some paths from the request
		if (empty($base))
		{
			$base = COM_MEDIA_BASE;
		}

		// Corrections for windows paths
		$base = str_replace(DIRECTORY_SEPARATOR, '/', $base);
		$com_media_base_uni = str_replace(DIRECTORY_SEPARATOR, '/',
COM_MEDIA_BASE);

		// Get the list of folders
		jimport('joomla.filesystem.folder');
		$folders = JFolder::folders($base, '.', true, true);

		$document = JFactory::getDocument();
		$document->setTitle(JText::_('COM_MEDIA_INSERT_IMAGE'));

		// Build the array of select options for the folder list
		$options[] = JHtml::_('select.option', '',
'/');

		foreach ($folders as $folder)
		{
			$folder    = str_replace($com_media_base_uni, '',
str_replace(DIRECTORY_SEPARATOR, '/', $folder));
			$value     = substr($folder, 1);
			$text      = str_replace(DIRECTORY_SEPARATOR, '/', $folder);
			$options[] = JHtml::_('select.option', $value, $text);
		}

		// Sort the folder list array
		if (is_array($options))
		{
			sort($options);
		}

		// Get asset and author id (use integer filter)
		$input = JFactory::getApplication()->input;
		$asset = $input->get('asset', 0, 'integer');

		// For new items the asset is a string. JAccess always checks type first
		// so both string and integer are supported.
		if ($asset == 0)
		{
			$asset =
htmlspecialchars(json_encode(trim($input->get('asset', 0,
'cmd'))), ENT_COMPAT, 'UTF-8');
		}

		$author = $input->get('author', 0, 'integer');

		// Create the dropdown folder select list
		$attribs = 'size="1"
onchange="ImageManager.setFolder(this.options[this.selectedIndex].value,
' . $asset . ', ' . $author . ')" ';
		$list = JHtml::_('select.genericlist', $options,
'folderlist', $attribs, 'value', 'text',
$base);

		return $list;
	}

	/**
	 * Get the folder tree
	 *
	 * @param   mixed  $base  Base folder | null for using base media folder
	 *
	 * @return  array
	 *
	 * @since   1.5
	 */
	public function getFolderTree($base = null)
	{
		// Get some paths from the request
		if (empty($base))
		{
			$base = COM_MEDIA_BASE;
		}

		$mediaBase = str_replace(DIRECTORY_SEPARATOR, '/',
COM_MEDIA_BASE . '/');

		// Get the list of folders
		jimport('joomla.filesystem.folder');
		$folders = JFolder::folders($base, '.', true, true);

		$tree = array();

		foreach ($folders as $folder)
		{
			$folder   = str_replace(DIRECTORY_SEPARATOR, '/', $folder);
			$name     = substr($folder, strrpos($folder, '/') + 1);
			$relative = str_replace($mediaBase, '', $folder);
			$absolute = $folder;
			$path     = explode('/', $relative);
			$node     = (object) array('name' => $name,
'relative' => $relative, 'absolute' =>
$absolute);
			$tmp      = &$tree;

			for ($i = 0, $n = count($path); $i < $n; $i++)
			{
				if (!isset($tmp['children']))
				{
					$tmp['children'] = array();
				}

				if ($i == $n - 1)
				{
					// We need to place the node
					$tmp['children'][$relative] = array('data' =>
$node, 'children' => array());

					break;
				}

				if (array_key_exists($key = implode('/', array_slice($path,
0, $i + 1)), $tmp['children']))
				{
					$tmp = &$tmp['children'][$key];
				}
			}
		}

		$tree['data'] = (object) array('name' =>
JText::_('COM_MEDIA_MEDIA'), 'relative' =>
'', 'absolute' => $base);

		return $tree;
	}
}
PK���[-Auw w
views/images/tmpl/default.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

$user       = JFactory::getUser();
$input      = JFactory::getApplication()->input;
$params     = JComponentHelper::getParams('com_media');
$lang       = JFactory::getLanguage();
$onClick    = '';
$fieldInput = $this->state->get('field.id');
$isMoo      = $input->getInt('ismoo', 1);
$author     = $input->getCmd('author');
$asset      = $input->getCmd('asset');

JHtml::_('formbehavior.chosen', 'select');

// Load tooltip instance without HTML support because we have a HTML tag in
the tip
JHtml::_('bootstrap.tooltip', '.noHtmlTip',
array('html' => false));

// Include jQuery
JHtml::_('behavior.core');
JHtml::_('jquery.framework');
JHtml::_('script', 'media/popup-imagemanager.min.js',
array('version' => 'auto', 'relative'
=> true));
JHtml::_('stylesheet', 'media/popup-imagemanager.css',
array('version' => 'auto', 'relative'
=> true));

if ($lang->isRtl())
{
	JHtml::_('stylesheet',
'media/popup-imagemanager_rtl.css', array('version'
=> 'auto', 'relative' => true));
}

JFactory::getDocument()->addScriptOptions(
	'mediamanager', array(
		'base'   => $params->get('image_path',
'images') . '/',
		'asset'  => $asset,
		'author' => $author
	)
);

/**
 * Mootools compatibility
 *
 * There is an extra option passed in the URL for the iframe &ismoo=0
for the bootstrap fields.
 * By default the value will be 1 or defaults to mootools behaviour
 *
 * This should be removed when mootools won't be shipped by Joomla.
 */
if (!empty($fieldInput)) // Media Form Field
{
	if ($isMoo)
	{
		$onClick =
"window.parent.jInsertFieldValue(document.getElementById('f_url').value,
'" . $fieldInput .
"');window.parent.jModalClose();window.parent.jQuery('.modal.in').modal('hide');";
	}
}
else // XTD Image plugin
{
	$onClick = 'ImageManager.onok();window.parent.jModalClose();';
}
?>
<div class="container-popup">

	<form action="index.php?option=com_media&amp;asset=<?php
echo $asset; ?>&amp;author=<?php echo $author; ?>"
class="form-horizontal" id="imageForm"
method="post" enctype="multipart/form-data">

		<div id="messages" style="display: none;">
			<span id="message"></span><?php echo
JHtml::_('image', 'media/dots.gif', '...',
array('width' => 22, 'height' => 12), true);
?>
		</div>

		<div class="well">
			<div class="row-fluid">
				<div class="span8 control-group">
					<div class="control-label">
						<label for="folder"><?php echo
JText::_('COM_MEDIA_DIRECTORY'); ?></label>
					</div>
					<div class="controls">
						<?php echo $this->folderList; ?>
						<button class="btn" type="button"
id="upbutton" title="<?php echo
JText::_('COM_MEDIA_DIRECTORY_UP'); ?>"><?php echo
JText::_('COM_MEDIA_UP'); ?></button>
					</div>
				</div>
				<div class="span4 control-group">
					<div class="pull-right">
						<button class="btn btn-success button-save-selected"
type="button" <?php if (!empty($onClick)) :
							// This is for Mootools compatibility ?>onclick="<?php
echo $onClick; ?>"<?php endif; ?>
data-dismiss="modal"><?php echo
JText::_('COM_MEDIA_INSERT'); ?></button>
						<button class="btn button-cancel"
type="button"
onclick="window.parent.jQuery('.modal.in').modal('hide');<?php
if (!empty($onClick)) :
							// This is for Mootools compatibility
?>parent.jModalClose();<?php endif ?>"
data-dismiss="modal"><?php echo
JText::_('JCANCEL'); ?></button>
					</div>
				</div>
			</div>
		</div>

		<iframe id="imageframe" name="imageframe"
src="index.php?option=com_media&amp;view=imagesList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($this->state->folder); ?>&amp;asset=<?php
echo $asset; ?>&amp;author=<?php echo $author;
?>"></iframe>

		<div class="well">
			<div class="row-fluid">
				<div class="span12 control-group">
					<div class="control-label">
						<label for="f_url"><?php echo
JText::_('COM_MEDIA_IMAGE_URL'); ?></label>
					</div>
					<div class="controls">
						<input type="text" id="f_url"
value="" />
					</div>
				</div>
			</div>
		</div>

		<?php if (!$this->state->get('field.id')) : ?>
			<div class="well">
				<div class="row-fluid">
					<div class="span6 control-group">
						<div class="control-label">
							<label title="<?php echo
JText::_('COM_MEDIA_ALIGN_DESC'); ?>"
class="noHtmlTip" for="f_align"><?php echo
JText::_('COM_MEDIA_ALIGN'); ?></label>
						</div>
						<div class="controls">
							<select size="1" id="f_align">
								<option value=""
selected="selected"><?php echo
JText::_('COM_MEDIA_NOT_SET'); ?></option>
								<option value="left"><?php echo
JText::_('JGLOBAL_LEFT'); ?></option>
								<option value="center"><?php echo
JText::_('JGLOBAL_CENTER'); ?></option>
								<option value="right"><?php echo
JText::_('JGLOBAL_RIGHT'); ?></option>
							</select>
						</div>
					</div>
				</div>
				<div class="row-fluid">
					<div class="span6 control-group">
						<div class="control-label">
							<label for="f_alt"><?php echo
JText::_('COM_MEDIA_IMAGE_DESCRIPTION'); ?></label>
						</div>
						<div class="controls">
							<input type="text" id="f_alt"
value="" />
						</div>
					</div>
					<div class="span6 control-group">
						<div class="control-label">
							<label for="f_title"><?php echo
JText::_('COM_MEDIA_TITLE'); ?></label>
						</div>
						<div class="controls">
							<input type="text" id="f_title"
value="" />
						</div>
					</div>
				</div>
				<div class="row-fluid">
					<div class="span6 control-group">
						<div class="control-label">
							<label for="f_caption"><?php echo
JText::_('COM_MEDIA_CAPTION'); ?></label>
						</div>
						<div class="controls">
							<input type="text" id="f_caption"
value="" />
						</div>
					</div>
					<div class="span6 control-group">
						<div class="control-label">
							<label title="<?php echo
JText::_('COM_MEDIA_CAPTION_CLASS_DESC'); ?>"
class="noHtmlTip" for="f_caption_class"><?php
echo JText::_('COM_MEDIA_CAPTION_CLASS_LABEL');
?></label>
						</div>
						<div class="controls">
							<input type="text" list="d_caption_class"
id="f_caption_class" value="" />
							<datalist id="d_caption_class">
								<option value="text-left">
								<option value="text-center">
								<option value="text-right">
							</datalist>
						</div>
					</div>
				</div>
			<input type="hidden" id="dirPath"
name="dirPath" />
			<input type="hidden" id="f_file"
name="f_file" />
			<input type="hidden" id="tmpl"
name="component" />
		</div>
		<?php endif; ?>
	</form>

	<?php if ($user->authorise('core.create',
'com_media')) : ?>
		<form action="<?php echo JUri::base();
?>index.php?option=com_media&amp;task=file.upload&amp;tmpl=component&amp;<?php
echo $this->session->getName() . '=' .
$this->session->getId(); ?>&amp;<?php echo
JSession::getFormToken(); ?>=1&amp;asset=<?php echo $asset;
?>&amp;author=<?php echo $author; ?>&amp;view=images"
id="uploadForm" class="form-horizontal"
name="uploadForm" method="post"
enctype="multipart/form-data">
			<div id="uploadform" class="well">
				<fieldset id="upload-noflash"
class="actions">
					<div class="control-group">
						<div class="control-label">
							<label for="upload-file"
class="control-label"><?php echo
JText::_('COM_MEDIA_UPLOAD_FILE'); ?></label>
						</div>
						<div class="controls">
							<input required type="file" id="upload-file"
name="Filedata[]" multiple /><button class="btn
btn-primary" id="upload-submit"><span
class="icon-upload icon-white"></span> <?php echo
JText::_('COM_MEDIA_START_UPLOAD'); ?></button>
							<p class="help-block">
								<?php $cMax    = (int)
$this->config->get('upload_maxsize'); ?>
								<?php $maxSize = JUtility::getMaxUploadSize($cMax .
'MB'); ?>
								<?php echo
JText::sprintf('JGLOBAL_MAXIMUM_UPLOAD_SIZE_LIMIT',
JHtml::_('number.bytes', $maxSize)); ?>
							</p>
						</div>
					</div>
				</fieldset>
				<?php
JFactory::getSession()->set('com_media.return_url',
'index.php?option=com_media&view=images&tmpl=component&fieldid='
. $input->getCmd('fieldid', '') .
'&e_name=' . $input->getCmd('e_name') .
'&asset=' . $asset . '&author=' . $author);
?>
			</div>
		</form>
	<?php endif; ?>
</div>
PK���[�-���views/images/view.html.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * HTML View class for the Media component
 *
 * @since  1.0
 */
class MediaViewImages extends JViewLegacy
{
	/**
	 * Execute and display a template script.
	 *
	 * @param   string  $tpl  The name of the template file to parse;
automatically searches through the template paths.
	 *
	 * @return  mixed  A string if successful, otherwise an Error object.
	 *
	 * @since   1.0
	 */
	public function display($tpl = null)
	{
		$config = JComponentHelper::getParams('com_media');

		/*
		 * Display form for FTP credentials?
		 * Don't set them here, as there are other functions called before
this one if there is any file write operation
		 */
		$ftp = !JClientHelper::hasCredentials('ftp');

		$this->session     = JFactory::getSession();
		$this->config      = $config;
		$this->state       = $this->get('state');
		$this->folderList  = $this->get('folderList');
		$this->require_ftp = $ftp;

		parent::display($tpl);
	}
}
PK���[ӏV�==!views/imageslist/tmpl/default.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

$lang = JFactory::getLanguage();

JHtml::_('stylesheet', 'media/popup-imagelist.css',
array('version' => 'auto', 'relative'
=> true));

if ($lang->isRtl())
{
	JHtml::_('stylesheet',
'media/popup-imagelist_rtl.css', array('version' =>
'auto', 'relative' => true));
}

JFactory::getDocument()->addScriptDeclaration('var ImageManager =
window.parent.ImageManager;');

if ($lang->isRtl())
{
	JFactory::getDocument()->addStyleDeclaration(
		'
			@media (max-width: 767px) {
				li.imgOutline.thumbnail.height-80.width-80.center {
					float: right;
				}
			}
		'
	);
}
else
{
	JFactory::getDocument()->addStyleDeclaration(
		'
			@media (max-width: 767px) {
				li.imgOutline.thumbnail.height-80.width-80.center {
					float: left;
				}
			}
		'
	);
}
?>
<?php if (count($this->images) > 0 || count($this->folders)
> 0) : ?>
	<ul class="manager thumbnails thumbnails-media">
		<?php for ($i = 0, $n = count($this->folders); $i < $n; $i++) :
			$this->setFolder($i);
			echo $this->loadTemplate('folder');
		endfor; ?>

		<?php for ($i = 0, $n = count($this->images); $i < $n; $i++) :
			$this->setImage($i);
			echo $this->loadTemplate('image');
		endfor; ?>
	</ul>
<?php else : ?>
	<div id="media-noimages">
		<div class="alert alert-info"><?php echo
JText::_('COM_MEDIA_NO_IMAGES_FOUND'); ?></div>
	</div>
<?php endif; ?>
PK���[ġ��ff(views/imageslist/tmpl/default_folder.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

$input = JFactory::getApplication()->input;
?>
<li class="imgOutline thumbnail height-80 width-80 center">
	<a
href="index.php?option=com_media&amp;view=imagesList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($this->_tmp_folder->path_relative);
?>&amp;asset=<?php echo $input->getCmd('asset');
?>&amp;author=<?php echo $input->getCmd('author');
?>" target="imageframe">
		<div class="height-50">
			<span class="icon-folder-2"></span>
		</div>
		<div class="small">
			<?php echo JHtml::_('string.truncate',
$this->escape($this->_tmp_folder->name), 10, false); ?>
		</div>
	</a>
</li>
PK���[zh�DD'views/imageslist/tmpl/default_image.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Registry\Registry;

$params     = new Registry;
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->trigger('onContentBeforeDisplay',
array('com_media.file', &$this->_tmp_img, &$params,
0));
?>

<li class="imgOutline thumbnail height-80 width-80 center">
	<a class="img-preview"
href="javascript:ImageManager.populateFields('<?php echo
$this->escape($this->_tmp_img->path_relative); ?>')"
title="<?php echo $this->escape($this->_tmp_img->name);
?>" >
		<div class="height-50">
			<?php echo JHtml::_('image', $this->baseURL .
'/' . $this->escape($this->_tmp_img->path_relative),
JText::sprintf('COM_MEDIA_IMAGE_TITLE',
$this->escape($this->_tmp_img->title),
JHtml::_('number.bytes', $this->_tmp_img->size)),
array('width' => $this->_tmp_img->width_60,
'height' => $this->_tmp_img->height_60)); ?>
		</div>
		<div class="small">
			<?php echo JHtml::_('string.truncate',
$this->escape($this->_tmp_img->name), 10, false); ?>
		</div>
	</a>
</li>
<?php
$dispatcher->trigger('onContentAfterDisplay',
array('com_media.file', &$this->_tmp_img, &$params,
0));
PK���[�j����views/imageslist/view.html.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * HTML View class for the Media component
 *
 * @since  1.0
 */
class MediaViewImagesList extends JViewLegacy
{
	/**
	 * Execute and display a template script.
	 *
	 * @param   string  $tpl  The name of the template file to parse;
automatically searches through the template paths.
	 *
	 * @return  mixed  A string if successful, otherwise an Error object.
	 *
	 * @since   1.0
	 */
	public function display($tpl = null)
	{
		// Do not allow cache
		JFactory::getApplication()->allowCache(false);

		$images  = $this->get('images');
		$folders = $this->get('folders');
		$state   = $this->get('state');

		$this->baseURL = COM_MEDIA_BASEURL;
		$this->images  = &$images;
		$this->folders = &$folders;
		$this->state   = &$state;

		parent::display($tpl);
	}

	/**
	 * Set the active folder
	 *
	 * @param   integer  $index  Folder position
	 *
	 * @return  void
	 *
	 * @since   1.0
	 */
	public function setFolder($index = 0)
	{
		if (isset($this->folders[$index]))
		{
			$this->_tmp_folder = &$this->folders[$index];
		}
		else
		{
			$this->_tmp_folder = new JObject;
		}
	}

	/**
	 * Set the active image
	 *
	 * @param   integer  $index  Image position
	 *
	 * @return  void
	 *
	 * @since   1.0
	 */
	public function setImage($index = 0)
	{
		if (isset($this->images[$index]))
		{
			$this->_tmp_img = &$this->images[$index];
		}
		else
		{
			$this->_tmp_img = new JObject;
		}
	}
}
PK���[
���views/media/tmpl/default.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

$user  = JFactory::getUser();
$input = JFactory::getApplication()->input;
$lang  = JFactory::getLanguage();
$style =
JFactory::getApplication()->getUserStateFromRequest('media.list.layout',
'layout', 'thumbs', 'word');

if (DIRECTORY_SEPARATOR == '\\')
{
	$base = str_replace(DIRECTORY_SEPARATOR, "\\\\",
COM_MEDIA_BASE);
}
else
{
	$base = COM_MEDIA_BASE;
}

JFactory::getDocument()->addScriptDeclaration(
	"
		var basepath = '" . $base . "';
		var viewstyle = '" . $style . "';
	"
);

JHtml::_('behavior.keepalive');
JHtml::_('bootstrap.framework');
JHtml::_('script', 'media/mediamanager.min.js',
array('version' => 'auto', 'relative'
=> true));
JHtml::_('script', 'media/mediaelement-and-player.js',
array('version' => 'auto', 'relative'
=> true));
JHtml::_('stylesheet', 'media/mediaelementplayer.css',
array('version' => 'auto', 'relative'
=> true));
JHtml::_('stylesheet', 'system/mootree.css',
array('version' => 'auto', 'relative'
=> true));

if ($lang->isRtl())
{
	JHtml::_('stylesheet', 'system/mootree_rtl.css',
array('version' => 'auto', 'relative'
=> true));
}
?>
<div class="row-fluid">
	<!-- Begin Sidebar -->
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
		<div class="j-toggle-sidebar-header">
		<h3><?php echo JText::_('COM_MEDIA_FOLDERS'); ?>
</h3>
		</div>
		<div id="treeview" class="sidebar">
			<div id="media-tree_tree" class="tree-holder">
				<?php echo $this->loadTemplate('folders'); ?>
			</div>
		</div>
	</div>
	<!-- End Sidebar -->

	<!-- Begin Content -->
	<div id="j-main-container" class="span10">
		<?php echo $this->loadTemplate('navigation'); ?>
		<?php if (($user->authorise('core.create',
'com_media')) and $this->require_ftp) : ?>
			<form
action="index.php?option=com_media&amp;task=ftpValidate"
name="ftpForm" id="ftpForm" method="post">
				<fieldset title="<?php echo
JText::_('COM_MEDIA_DESCFTPTITLE'); ?>">
					<legend><?php echo
JText::_('COM_MEDIA_DESCFTPTITLE'); ?></legend>
					<?php echo JText::_('COM_MEDIA_DESCFTP'); ?>
					<label for="username"><?php echo
JText::_('JGLOBAL_USERNAME'); ?></label>
					<input type="text" id="username"
name="username" size="70" value="" />

					<label for="password"><?php echo
JText::_('JGLOBAL_PASSWORD'); ?></label>
					<input type="password" id="password"
name="password" size="70" value="" />
				</fieldset>
			</form>
		<?php endif; ?>

		<form action="index.php?option=com_media"
name="adminForm" id="mediamanager-form"
method="post" enctype="multipart/form-data" >
			<input type="hidden" name="task"
value="" />
			<input type="hidden" name="cb1"
id="cb1" value="0" />
			<input class="update-folder" type="hidden"
name="folder" id="folder" value="<?php echo
$this->escape($this->state->folder); ?>" />
		</form>

		<?php if ($user->authorise('core.create',
'com_media')) : ?>
		<!-- File Upload Form -->
		<div id="collapseUpload" class="collapse">
			<form action="<?php echo JUri::base();
?>index.php?option=com_media&amp;task=file.upload&amp;tmpl=component&amp;<?php
echo $this->session->getName() . '=' .
$this->session->getId(); ?>&amp;<?php echo
JSession::getFormToken(); ?>=1&amp;format=html"
id="uploadForm" class="form-inline"
name="uploadForm" method="post"
enctype="multipart/form-data">
				<div id="uploadform" class="uploadform">
					<fieldset id="upload-noflash"
class="actions">
							<label for="upload-file"
class="control-label"><?php echo
JText::_('COM_MEDIA_UPLOAD_FILE'); ?></label>
								<input required type="file" id="upload-file"
name="Filedata[]" multiple /> <button class="btn
btn-primary" id="upload-submit"><span
class="icon-upload icon-white"></span> <?php echo
JText::_('COM_MEDIA_START_UPLOAD'); ?></button>
							<p class="help-block">
								<?php $cMax    = (int)
$this->config->get('upload_maxsize'); ?>
								<?php $maxSize = JUtility::getMaxUploadSize($cMax .
'MB'); ?>
								<?php echo
JText::sprintf('JGLOBAL_MAXIMUM_UPLOAD_SIZE_LIMIT',
JHtml::_('number.bytes', $maxSize)); ?>
							</p>
					</fieldset>
					<input class="update-folder" type="hidden"
name="folder" id="folder" value="<?php echo
$this->escape($this->state->folder); ?>" />
					<?php
JFactory::getSession()->set('com_media.return_url',
'index.php?option=com_media'); ?>
				</div>
			</form>
		</div>
		<div id="collapseFolder" class="collapse">
			<form
action="index.php?option=com_media&amp;task=folder.create&amp;tmpl=<?php
echo $input->getCmd('tmpl', 'index'); ?>"
name="folderForm" id="folderForm"
class="form-inline" method="post">
					<div class="path">
						<input type="text" id="folderpath"
readonly="readonly" class="update-folder" />
						<input required type="text" id="foldername"
name="foldername" />
						<input class="update-folder" type="hidden"
name="folderbase" id="folderbase" value="<?php
echo $this->escape($this->state->folder); ?>" />
						<button type="submit" class="btn"><span
class="icon-folder-open"></span> <?php echo
JText::_('COM_MEDIA_CREATE_FOLDER'); ?></button>
					</div>
					<?php echo JHtml::_('form.token'); ?>
			</form>
		</div>
		<?php endif; ?>

		<form
action="index.php?option=com_media&amp;task=folder.create&amp;tmpl=<?php
echo $input->getCmd('tmpl', 'index'); ?>"
name="folderForm" id="folderForm"
method="post">
			<div id="folderview">
				<div class="view">
					<iframe class="thumbnail"
src="index.php?option=com_media&amp;view=mediaList&amp;tmpl=component&amp;folder=<?php
echo $this->escape($this->state->folder); ?>"
id="folderframe" name="folderframe"
width="100%" height="500px" marginwidth="0"
marginheight="0" scrolling="auto"></iframe>
				</div>
				<?php echo JHtml::_('form.token'); ?>
			</div>
		</form>
	</div>
<?php // Pre render all the bootstrap modals on the parent window

echo JHtml::_(
	'bootstrap.renderModal',
	'imagePreview',
	array(
		'title'  => JText::_('COM_MEDIA_PREVIEW'),
		'footer' => '<button type="button"
class="btn" data-dismiss="modal">'
			. JText::_('JLIB_HTML_BEHAVIOR_CLOSE') .
'</button>',
	),
	'<div id="image"
style="text-align:center;"><img
id="imagePreviewSrc" src="../media/jui/img/alpha.png"
alt="preview" style="max-width:100%;
max-height:300px;"/></div>'
);

echo JHtml::_(
	'bootstrap.renderModal',
	'videoPreview',
	array(
		'title'  => JText::_('COM_MEDIA_PREVIEW'),
		'footer' => '<button type="button"
class="btn" data-dismiss="modal">'
			. JText::_('JLIB_HTML_BEHAVIOR_CLOSE') .
'</button>',
	),
	'<div id="videoPlayer" style="z-index:
-100;"><video id="mejsPlayer" style="height:
250px;"/></div>'
);
?>
	<!-- End Content -->
</div>
PK���[�$��views/media/tmpl/default.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
	<layout title="COM_MEDIA_MEDIA_VIEW_DEFAULT_TITLE">
		<message>
			<![CDATA[COM_MEDIA_MEDIA_VIEW_DEFAULT_DESC]]>
		</message>
	</layout>
</metadata>
PK���[��C�>>$views/media/tmpl/default_folders.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

// Set up the sanitised target for the ul
$ulTarget = str_replace('/', '-',
$this->folders['data']->relative);

?>
<ul class="nav nav-list" id="collapseFolder-<?php echo
$ulTarget; ?>">
<?php if (isset($this->folders['children'])) :
	foreach ($this->folders['children'] as $folder) :
	// Get a sanitised name for the target
	$target = str_replace('/', '-',
$folder['data']->relative); ?>
	<li id="<?php echo $target; ?>"
class="folder">
		<a
href="index.php?option=com_media&amp;view=mediaList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($folder['data']->relative); ?>"
target="folderframe" class="folder-url" >
			<span class="icon-folder"></span>
			<?php echo $this->escape($folder['data']->name);
?>
		</a>
		<?php echo $this->getFolderLevel($folder); ?>
	</li>
<?php endforeach;
endif; ?>
</ul>
PK���[9.���'views/media/tmpl/default_navigation.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;
$app   = JFactory::getApplication();
$style = $app->getUserStateFromRequest('media.list.layout',
'layout', 'thumbs', 'word');
?>

<div class="media btn-group ventral-space">
	<a href="#" id="thumbs"
onclick="MediaManager.setViewType('thumbs')"
class="btn <?php echo ($style == 'thumbs') ?
'active' : ''; ?>">
	<span class="icon-grid-view-2"></span> <?php echo
JText::_('COM_MEDIA_THUMBNAIL_VIEW'); ?></a>
	<a href="#" id="details"
onclick="MediaManager.setViewType('details')"
class="btn <?php echo ($style == 'details') ?
'active' : ''; ?>">
	<span class="icon-list-view"></span> <?php echo
JText::_('COM_MEDIA_DETAIL_VIEW'); ?></a>
</div>
PK���[#��
�
views/media/view.html.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * HTML View class for the Media component
 *
 * @since  1.0
 */
class MediaViewMedia extends JViewLegacy
{
	/**
	 * Execute and display a template script.
	 *
	 * @param   string  $tpl  The name of the template file to parse;
automatically searches through the template paths.
	 *
	 * @return  mixed  A string if successful, otherwise an Error object.
	 *
	 * @since   1.0
	 */
	public function display($tpl = null)
	{
		$app    = JFactory::getApplication();
		$config = JComponentHelper::getParams('com_media');

		if (!$app->isClient('administrator'))
		{
			return
$app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'),
'warning');
		}

		/*
		 * Display form for FTP credentials?
		 * Don't set them here, as there are other functions called before
this one if there is any file write operation
		 */
		$ftp = !JClientHelper::hasCredentials('ftp');

		$session           = JFactory::getSession();
		$state             = $this->get('state');
		$this->session     = $session;
		$this->config      = &$config;
		$this->state       = &$state;
		$this->require_ftp = $ftp;
		$this->folders_id  = ' id="media-tree"';
		$this->folders     = $this->get('folderTree');

		$this->sidebar = JHtmlSidebar::render();

		// Set the toolbar
		$this->addToolbar();

		parent::display($tpl);
	}

	/**
	 * Add the page title and toolbar.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function addToolbar()
	{
		// Get the toolbar object instance
		$bar  = JToolbar::getInstance('toolbar');
		$user = JFactory::getUser();

		// Set the titlebar text
		JToolbarHelper::title(JText::_('COM_MEDIA'), 'images
mediamanager');

		// Add an upload button
		if ($user->authorise('core.create', 'com_media'))
		{
			// Instantiate a new JLayoutFile instance and render the layout
			$layout = new JLayoutFile('toolbar.uploadmedia');

			$bar->appendButton('Custom', $layout->render(array()),
'upload');
			JToolbarHelper::divider();
		}

		// Add a create folder button
		if ($user->authorise('core.create', 'com_media'))
		{
			// Instantiate a new JLayoutFile instance and render the layout
			$layout = new JLayoutFile('toolbar.newfolder');

			$bar->appendButton('Custom', $layout->render(array()),
'create');
			JToolbarHelper::divider();
		}

		// Add a delete button
		if ($user->authorise('core.delete', 'com_media'))
		{
			// Instantiate a new JLayoutFile instance and render the layout
			$layout = new JLayoutFile('toolbar.deletemedia');

			$bar->appendButton('Custom', $layout->render(array()),
'delete');
			JToolbarHelper::divider();
		}

		// Add a preferences button
		if ($user->authorise('core.admin', 'com_media') ||
$user->authorise('core.options', 'com_media'))
		{
			JToolbarHelper::preferences('com_media');
			JToolbarHelper::divider();
		}

		JToolbarHelper::help('JHELP_CONTENT_MEDIA_MANAGER');
	}

	/**
	 * Display a folder level
	 *
	 * @param   array  $folder  Array with folder data
	 *
	 * @return  string
	 *
	 * @since   1.0
	 */
	protected function getFolderLevel($folder)
	{
		$this->folders_id = null;
		$txt              = null;

		if (isset($folder['children']) &&
count($folder['children']))
		{
			$tmp           = $this->folders;
			$this->folders = $folder;
			$txt           = $this->loadTemplate('folders');
			$this->folders = $tmp;
		}

		return $txt;
	}
}
PK���[F��
views/medialist/tmpl/default.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;
PK���[Zi��
views/medialist/tmpl/details.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;
$params = JComponentHelper::getParams('com_media');
$path   = 'file_path';

JHtml::_('jquery.framework');
JHtml::_('behavior.core');

$doc = JFactory::getDocument();

// Need to override this core function because we use a different form id
$doc->addScriptDeclaration(
	"
		Joomla.isChecked = function( isitchecked, form ) {
			if ( typeof form  === 'undefined' ) {
				form = document.getElementById( 'mediamanager-form' );
			}

			form.boxchecked.value += isitchecked ? 1 : -1;

			// If we don't have a checkall-toggle, done.
			if ( !form.elements[ 'checkall-toggle' ] ) return;

			// Toggle main toggle checkbox depending on checkbox selection
			var c = true,
				i, e, n;

			for ( i = 0, n = form.elements.length; i < n; i++ ) {
				e = form.elements[ i ];

				if ( e.type == 'checkbox' && e.name !=
'checkall-toggle' && !e.checked ) {
					c = false;
					break;
				}
			}

			form.elements[ 'checkall-toggle' ].checked = c;
		};
	"
);

$doc->addScriptDeclaration(
	"
		jQuery(document).ready(function($){
			window.parent.document.updateUploader();
			$('.img-preview, .preview').each(function(index, value) {
				$(this).on('click', function(e) {
					window.parent.jQuery('#imagePreviewSrc').attr('src',
$(this).attr('href'));
					window.parent.jQuery('#imagePreview').modal('show');
					return false;
				});
			});
			$('.video-preview').each(function(index, value) {
				$(this).unbind('click');
				$(this).on('click', function(e) {
					e.preventDefault();
					window.parent.jQuery('#videoPreview').modal('show');

					var elementInitialised =
window.parent.jQuery('#mejsPlayer').attr('src');

					if (!elementInitialised)
					{
						window.parent.jQuery('#mejsPlayer').attr('src',
$(this).attr('href'));
						window.parent.jQuery('#mejsPlayer').mediaelementplayer();
					}

					window.parent.jQuery('#mejsPlayer')[0].player.media.setSrc($(this).attr('href'));

					return false;
				});
			});
		});
	"
);
?>
<form target="_parent"
action="index.php?option=com_media&amp;tmpl=index&amp;folder=<?php
echo rawurlencode($this->state->folder); ?>"
method="post" id="mediamanager-form"
name="mediamanager-form">
	<div class="muted">
		<p>
			<span class="icon-folder"></span>
			<?php
				echo $params->get($path, 'images'),
					($this->escape($this->state->folder) != '') ?
'/' . $this->escape($this->state->folder) :
'';
			?>
		</p>
	</div>

	<div class="manager">
		<table class="table table-striped table-condensed">
		<thead>
			<tr>
				<?php if ($this->canDelete) : ?>
					<th width="1%">
						<?php echo JHtml::_('grid.checkall'); ?>
					</th>
				<?php endif; ?>
				<th width="1%"><?php echo
JText::_('JGLOBAL_PREVIEW'); ?></th>
				<th><?php echo JText::_('COM_MEDIA_NAME');
?></th>
				<th width="15%"><?php echo
JText::_('COM_MEDIA_PIXEL_DIMENSIONS'); ?></th>
				<th width="8%"><?php echo
JText::_('COM_MEDIA_FILESIZE'); ?></th>

				<?php if ($this->canDelete) : ?>
					<th width="8%">
						<?php echo JText::_('JACTION_DELETE'); ?>
					</th>
				<?php endif; ?>
			</tr>
		</thead>
		<tbody>
			<?php
				echo $this->loadTemplate('up'),
					$this->loadTemplate('folders'),
					$this->loadTemplate('docs'),
					$this->loadTemplate('videos'),
					$this->loadTemplate('imgs');
			?>
		</tbody>
		</table>
	</div>

	<input type="hidden" name="task"
value="list" />
	<input type="hidden" name="username"
value="" />
	<input type="hidden" name="password"
value="" />
	<input type="hidden" name="boxchecked"
value="" />
	<?php echo JHtml::_('form.token'); ?>
</form>
PK���[ݍ���$views/medialist/tmpl/details_doc.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */
defined('_JEXEC') or die;

use Joomla\Registry\Registry;

JHtml::_('bootstrap.tooltip');

$user       = JFactory::getUser();
$params     = new Registry;
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->trigger('onContentBeforeDisplay',
array('com_media.file', &$this->_tmp_doc, &$params,
0));
?>

<tr>
	<td>
		<a  title="<?php echo
$this->escape($this->_tmp_doc->name); ?>">
			<?php  echo JHtml::_('image',
$this->_tmp_doc->icon_16,
$this->escape($this->_tmp_doc->title), null, true, true) ?
JHtml::_('image', $this->_tmp_doc->icon_16,
$this->_tmp_doc->title, array('width' => 16,
'height' => 16), true) : JHtml::_('image',
'media/con_info.png',
$this->escape($this->_tmp_doc->title), array('width'
=> 16, 'height' => 16), true);?> </a>
	</td>
	<td class="description"  title="<?php echo
$this->escape($this->_tmp_doc->name); ?>">
		<?php echo $this->escape($this->_tmp_doc->title); ?>
	</td>
	<td>&#160;

	</td>
	<td class="filesize">
		<?php echo JHtml::_('number.bytes',
$this->_tmp_doc->size); ?>
	</td>
<?php if ($user->authorise('core.delete',
'com_media')):?>
	<td>
		<a class="delete-item" target="_top"
href="index.php?option=com_media&amp;task=file.delete&amp;tmpl=index&amp;<?php
echo JSession::getFormToken(); ?>=1&amp;folder=<?php echo
rawurlencode($this->state->folder); ?>&amp;rm[]=<?php echo
$this->escape($this->_tmp_doc->name); ?>"
rel="<?php echo $this->escape($this->_tmp_doc->name);
?>"><span class="icon-remove hasTooltip"
title="<?php echo JHtml::_('tooltipText',
'JACTION_DELETE');?>"></span></a>
		<input type="checkbox" name="rm[]"
value="<?php echo $this->escape($this->_tmp_doc->name);
?>" />
	</td>
<?php endif;?>
</tr>
<?php $dispatcher->trigger('onContentAfterDisplay',
array('com_media.file', &$this->_tmp_doc, &$params,
0));
PK���[m��y��%views/medialist/tmpl/details_docs.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */
defined('_JEXEC') or die;

use Joomla\Registry\Registry;

JHtml::_('bootstrap.tooltip');

$params     = new Registry;
$dispatcher = JEventDispatcher::getInstance();
?>

<?php foreach ($this->documents as $i => $doc) : ?>
	<?php $dispatcher->trigger('onContentBeforeDisplay',
array('com_media.file', &$doc, &$params, 0)); ?>
	<tr>
		<?php if ($this->canDelete) : ?>
			<td>
				<?php echo JHtml::_('grid.id', $i,
$this->escape($doc->name), false, 'rm',
'cb-document'); ?>
			</td>
		<?php endif; ?>

		<td>
			<a title="<?php echo $this->escape($doc->name);
?>">
				<?php echo JHtml::_('image', $doc->icon_16,
$this->escape($doc->title), null, true, true) ?
JHtml::_('image', $doc->icon_16,
$this->escape($doc->title), array('width' => 16,
'height' => 16), true) : JHtml::_('image',
'media/con_info.png', $this->escape($doc->title),
array('width' => 16, 'height' => 16), true);
?>
			</a>
		</td>

		<td class="description"  title="<?php echo
$this->escape($doc->name); ?>">
			<?php echo $this->escape($doc->title); ?>
		</td>

		<td>&#160;</td>

		<td class="filesize">
			<?php echo JHtml::_('number.bytes', $doc->size); ?>
		</td>

		<?php if ($this->canDelete) : ?>
			<td>
				<a class="delete-item" target="_top"
href="index.php?option=com_media&amp;task=file.delete&amp;tmpl=index&amp;<?php
echo JSession::getFormToken(); ?>=1&amp;folder=<?php echo
rawurlencode($this->state->folder); ?>&amp;rm[]=<?php echo
$this->escape($doc->name); ?>" rel="<?php echo
$this->escape($doc->name); ?>">
					<span class="icon-remove hasTooltip" title="<?php
echo JHtml::tooltipText('JACTION_DELETE');
?>"></span>
				</a>
			</td>
		<?php endif; ?>

	</tr>
	<?php $dispatcher->trigger('onContentAfterDisplay',
array('com_media.file', &$doc, &$params, 0)); ?>
<?php endforeach; ?>
PK���[�5T..'views/medialist/tmpl/details_folder.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */
defined('_JEXEC') or die;

$user = JFactory::getUser();

JHtml::_('bootstrap.tooltip');
?>
<tr>
	<td class="imgTotal">
		<a
href="index.php?option=com_media&amp;view=mediaList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($this->_tmp_folder->path_relative); ?>"
target="folderframe">
			<span class="icon-folder-2"></span></a>
	</td>
	<td class="description">
		<a
href="index.php?option=com_media&amp;view=mediaList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($this->_tmp_folder->path_relative); ?>"
target="folderframe"><?php echo
$this->escape($this->_tmp_folder->name); ?></a>
	</td>
	<td>&#160;

	</td>
	<td>&#160;

	</td>
	<?php if ($user->authorise('core.delete',
'com_media')):?>
		<td>
			<a class="delete-item" target="_top"
href="index.php?option=com_media&amp;task=folder.delete&amp;tmpl=index&amp;folder=<?php
echo rawurlencode($this->state->folder); ?>&amp;<?php echo
JSession::getFormToken(); ?>=1&amp;rm[]=<?php echo
$this->_tmp_folder->name; ?>" rel="<?php echo
$this->_tmp_folder->name; ?>' :: <?php echo
$this->_tmp_folder->files + $this->_tmp_folder->folders;
?>"><span class="icon-remove hasTooltip"
title="<?php echo JHtml::_('tooltipText',
'JACTION_DELETE');?>"></span></a>
			<input type="checkbox" name="rm[]"
value="<?php echo $this->_tmp_folder->name; ?>" />
		</td>
	<?php endif;?>
</tr>
PK���[蠃aCC(views/medialist/tmpl/details_folders.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */
defined('_JEXEC') or die;

JHtml::_('bootstrap.tooltip');
?>

<?php foreach ($this->folders as $i => $folder) : ?>
	<?php $link =
'index.php?option=com_media&amp;view=mediaList&amp;tmpl=component&amp;folder='
. rawurlencode($folder->path_relative); ?>
	<tr>
		<?php if ($this->canDelete) : ?>
			<td>
				<?php echo JHtml::_('grid.id', $i,
$this->escape($folder->name), false, 'rm',
'cb-folder'); ?>
			</td>
		<?php endif; ?>
		<td class="imgTotal">
			<a href="<?php echo $link; ?>"
target="folderframe"><span
class="icon-folder-2"></span></a>
		</td>

		<td class="description">
			<a href="<?php echo $link; ?>"
target="folderframe"><?php echo
$this->escape($folder->name); ?></a>
		</td>

		<td>&#160;</td>

		<td>&#160;</td>

		<?php if ($this->canDelete) : ?>
			<td>
				<a class="delete-item" target="_top"
href="index.php?option=com_media&amp;task=folder.delete&amp;tmpl=index&amp;folder=<?php
echo rawurlencode($this->state->folder); ?>&amp;<?php echo
JSession::getFormToken(); ?>=1&amp;rm[]=<?php echo
$this->escape($folder->name); ?>" rel="<?php echo
$this->escape($folder->name); ?> :: <?php echo
$this->escape($folder->files) +
$this->escape($folder->folders); ?>">
					<span class="icon-remove hasTooltip" title="<?php
echo JHtml::tooltipText('JACTION_DELETE');
?>"></span>
				</a>
			</td>
		<?php endif; ?>
	</tr>
<?php endforeach; ?>
PK���[ͥ��B	B	$views/medialist/tmpl/details_img.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Registry\Registry;

JHtml::_('bootstrap.tooltip');

$user       = JFactory::getUser();
$params     = new Registry;
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->trigger('onContentBeforeDisplay',
array('com_media.file', &$this->_tmp_img, &$params,
0));
?>

<tr>
	<td>
		<a class="img-preview" href="<?php echo
COM_MEDIA_BASEURL . '/' . str_replace('%2F',
'/', rawurlencode($this->_tmp_img->path_relative));
?>" title="<?php echo
$this->escape($this->_tmp_img->name); ?>"><?php echo
JHtml::_('image', COM_MEDIA_BASEURL . '/' .
$this->escape($this->_tmp_img->path_relative),
JText::sprintf('COM_MEDIA_IMAGE_TITLE',
$this->_tmp_img->title, JHtml::_('number.bytes',
$this->_tmp_img->size)), array('width' =>
$this->_tmp_img->width_16, 'height' =>
$this->_tmp_img->height_16)); ?></a>
	</td>
	<td class="description">
		<a href="<?php echo COM_MEDIA_BASEURL . '/' .
str_replace('%2F', '/',
rawurlencode($this->_tmp_img->path_relative)); ?>"
title="<?php echo $this->escape($this->_tmp_img->name);
?>" class="preview"><?php echo
$this->escape($this->_tmp_img->title); ?></a>
	</td>
	<td class="dimensions">
		<?php echo JText::sprintf('COM_MEDIA_IMAGE_DIMENSIONS',
$this->_tmp_img->width, $this->_tmp_img->height); ?>
	</td>
	<td class="filesize">
		<?php echo JHtml::_('number.bytes',
$this->_tmp_img->size); ?>
	</td>
	<?php if ($user->authorise('core.delete',
'com_media')):?>
		<td>
			<a class="delete-item" target="_top"
href="index.php?option=com_media&amp;task=file.delete&amp;tmpl=index&amp;<?php
echo JSession::getFormToken(); ?>=1&amp;folder=<?php echo
rawurlencode($this->state->folder); ?>&amp;rm[]=<?php echo
$this->escape($this->_tmp_img->name); ?>"
rel="<?php echo $this->escape($this->_tmp_img->name);
?>"><span class="icon-remove hasTooltip"
title="<?php echo JHtml::_('tooltipText',
'JACTION_DELETE');?>"></span></a>
			<input type="checkbox" name="rm[]"
value="<?php echo $this->escape($this->_tmp_img->name);
?>" />
		</td>
	<?php endif;?>
</tr>
<?php $dispatcher->trigger('onContentAfterDisplay',
array('com_media.file', &$this->_tmp_img, &$params,
0));
PK���[W��i	i	%views/medialist/tmpl/details_imgs.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Registry\Registry;

JHtml::_('bootstrap.tooltip');

$user       = JFactory::getUser();
$params     = new Registry;
$dispatcher = JEventDispatcher::getInstance();
?>

<?php foreach ($this->images as $i => $image) : ?>
	<?php $dispatcher->trigger('onContentBeforeDisplay',
array('com_media.file', &$image, &$params, 0)); ?>
	<tr>
		<?php if ($this->canDelete) : ?>
			<td>
				<?php echo JHtml::_('grid.id', $i,
$this->escape($image->name), false, 'rm',
'cb-image'); ?>
			</td>
		<?php endif; ?>

		<td>
			<a class="img-preview" href="<?php echo
COM_MEDIA_BASEURL . '/' . str_replace('%2F',
'/', rawurlencode($image->path_relative)); ?>"
title="<?php echo $this->escape($image->name);
?>">
				<?php echo JHtml::_('image', COM_MEDIA_BASEURL .
'/' . $this->escape($image->path_relative),
JText::sprintf('COM_MEDIA_IMAGE_TITLE',
$this->escape($image->title), JHtml::_('number.bytes',
$image->size)), array('width' => $image->width_16,
'height' => $image->height_16)); ?>
			</a>
		</td>

		<td class="description">
			<a href="<?php echo  COM_MEDIA_BASEURL . '/' .
str_replace('%2F', '/',
rawurlencode($image->path_relative)); ?>" title="<?php
echo $this->escape($image->name); ?>"
class="preview">
				<?php echo $this->escape($image->title); ?>
			</a>
		</td>

		<td class="dimensions">
			<?php echo JText::sprintf('COM_MEDIA_IMAGE_DIMENSIONS',
$image->width, $image->height); ?>
		</td>

		<td class="filesize">
			<?php echo JHtml::_('number.bytes', $image->size); ?>
		</td>

		<?php if ($this->canDelete) : ?>
			<td>
				<a class="delete-item" target="_top"
href="index.php?option=com_media&amp;task=file.delete&amp;tmpl=index&amp;<?php
echo JSession::getFormToken(); ?>=1&amp;folder=<?php echo
rawurlencode($this->state->folder); ?>&amp;rm[]=<?php echo
$this->escape($image->name); ?>" rel="<?php echo
$this->escape($image->name); ?>">
					<span class="icon-remove hasTooltip" title="<?php
echo JHtml::tooltipText('JACTION_DELETE');
?>"></span>
				</a>
			</td>
		<?php endif; ?>
	</tr>
	<?php $dispatcher->trigger('onContentAfterDisplay',
array('com_media.file', &$image, &$params, 0)); ?>
<?php endforeach; ?>
PK���[5��=��#views/medialist/tmpl/details_up.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

$user = JFactory::getUser();
?>
<?php if ($this->state->folder != '') : ?>
<tr>
	<?php if ($this->canDelete) : ?>
		<td>&#160;</td>
	<?php endif; ?>
	<td class="imgTotal">
		<a
href="index.php?option=com_media&amp;view=mediaList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($this->state->parent); ?>"
target="folderframe">
			<span class="icon-arrow-up"></span></a>
	</td>
	<td class="description">
		<a
href="index.php?option=com_media&amp;view=mediaList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($this->state->parent); ?>"
target="folderframe">..</a>
	</td>
	<td>&#160;</td>
	<td>&#160;</td>
	<?php if ($user->authorise('core.delete',
'com_media')) : ?>
		<td>&#160;</td>
	<?php endif; ?>
</tr>
<?php endif; ?>
PK���[�8h3	3	&views/medialist/tmpl/details_video.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Registry\Registry;

JHtml::_('bootstrap.tooltip');

$user       = JFactory::getUser();
$params     = new Registry;
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->trigger('onContentBeforeDisplay',
array('com_media.file', &$this->_tmp_video, &$params,
0));

JFactory::getDocument()->addScriptDeclaration("
jQuery(document).ready(function($){
	window.parent.jQuery('#videoPreview').on('hidden',
function () {
		window.parent.jQuery('#mejsPlayer')[0].player.pause();
	});
});
");
?>

<tr>
	<td>
		<a class="video-preview" href="<?php echo
COM_MEDIA_BASEURL . '/' .
rawurlencode($this->_tmp_video->name); ?>"
title="<?php echo $this->escape($this->_tmp_video->title);
?>"><?php JHtml::_('image',
$this->_tmp_video->icon_16,
$this->escape($this->_tmp_video->title), null, true);
?></a>
	</td>
	<td class="description">
		<a class="video-preview" href="<?php echo
COM_MEDIA_BASEURL . '/' .
rawurlencode($this->_tmp_video->name); ?>"
title="<?php echo $this->escape($this->_tmp_video->name);
?>">
			<?php echo JHtml::_('string.truncate',
$this->escape($this->_tmp_video->name), 10, false); ?>
		</a>
	</td>
	<td class="dimensions">
		<?php // Can we figure out the dimensions of the video? ?>
	</td>
	<td class="filesize">
		<?php echo JHtml::_('number.bytes',
$this->_tmp_video->size); ?>
	</td>
	<?php if ($user->authorise('core.delete',
'com_media')):?>
		<td>
			<a class="delete-item" target="_top"
href="index.php?option=com_media&amp;task=file.delete&amp;tmpl=index&amp;<?php
echo JSession::getFormToken(); ?>=1&amp;folder=<?php echo
rawurlencode($this->state->folder); ?>&amp;rm[]=<?php echo
$this->escape($this->_tmp_video->name); ?>"
rel="<?php echo $this->escape($this->_tmp_video->name);
?>"><span class="icon-remove hasTooltip"
title="<?php echo JHtml::_('tooltipText',
'JACTION_DELETE');?>"></span></a>
			<input type="checkbox" name="rm[]"
value="<?php echo $this->escape($this->_tmp_video->name);
?>" />
		</td>
	<?php endif;?>
</tr>

<?php
$dispatcher->trigger('onContentAfterDisplay',
array('com_media.file', &$this->_tmp_video, &$params,
0));
PK���[�
�		'views/medialist/tmpl/details_videos.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Registry\Registry;

JHtml::_('bootstrap.tooltip');

$params     = new Registry;
$dispatcher = JEventDispatcher::getInstance();

JFactory::getDocument()->addScriptDeclaration("
jQuery(document).ready(function($){
	window.parent.jQuery('#videoPreview').on('hidden',
function () {
		window.parent.jQuery('#mejsPlayer')[0].player.pause();
	});
});
");
?>

<?php foreach ($this->videos as $i => $video) : ?>
	<?php $dispatcher->trigger('onContentBeforeDisplay',
array('com_media.file', &$video, &$params, 0)); ?>
	<tr>
		<?php if ($this->canDelete) : ?>
			<td>
				<?php echo JHtml::_('grid.id', $i,
$this->escape($video->name), false, 'rm',
'cb-video'); ?>
			</td>
		<?php endif; ?>

		<td>
			<a class="video-preview" href="<?php echo
COM_MEDIA_BASEURL, '/', rawurlencode($video->name);
?>" title="<?php echo $this->escape($video->title);
?>">
				<?php echo JHtml::_('image', $video->icon_16,
$this->escape($video->title), null, true); ?>
			</a>
		</td>

		<td class="description">
			<a class="video-preview" href="<?php echo
COM_MEDIA_BASEURL, '/', rawurlencode($video->name);
?>" title="<?php echo $this->escape($video->name);
?>">
				<?php echo $this->escape($video->name); ?>
			</a>
		</td>

		<td class="dimensions">
			<?php // Can we figure out the dimensions of the video? ?>
		</td>

		<td class="filesize">
			<?php echo JHtml::_('number.bytes', $video->size); ?>
		</td>

		<?php if ($this->canDelete) : ?>
			<td>
				<a class="delete-item" target="_top"
href="index.php?option=com_media&amp;task=file.delete&amp;tmpl=index&amp;<?php
echo JSession::getFormToken(); ?>=1&amp;folder=<?php echo
rawurlencode($this->state->folder); ?>&amp;rm[]=<?php echo
$this->escape($video->name); ?>" rel="<?php echo
$this->escape($video->name); ?>">
					<span class="icon-remove hasTooltip" title="<?php
echo JHtml::tooltipText('JACTION_DELETE');
?>"></span>
				</a>
			</td>
		<?php endif; ?>
	</tr>

	<?php $dispatcher->trigger('onContentAfterDisplay',
array('com_media.file', &$video, &$params, 0)); ?>
<?php endforeach; ?>
PK���[=�����views/medialist/tmpl/thumbs.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;
$params = JComponentHelper::getParams('com_media');
$path   = 'file_path';

JHtml::_('jquery.framework');
JHtml::_('behavior.core');

$doc = JFactory::getDocument();

// Need to override this core function because we use a different form id
$doc->addScriptDeclaration(
	"
		Joomla.isChecked = function( isitchecked, form ) {
			if ( typeof form  === 'undefined' ) {
				form = document.getElementById( 'mediamanager-form' );
			}

			form.boxchecked.value += isitchecked ? 1 : -1;

			// If we don't have a checkall-toggle, done.
			if ( !form.elements[ 'checkall-toggle' ] ) return;

			// Toggle main toggle checkbox depending on checkbox selection
			var c = true,
				i, e, n;

			for ( i = 0, n = form.elements.length; i < n; i++ ) {
				e = form.elements[ i ];

				if ( e.type == 'checkbox' && e.name !=
'checkall-toggle' && !e.checked ) {
					c = false;
					break;
				}
			}

			form.elements[ 'checkall-toggle' ].checked = c;
		};
	"
);

$doc->addScriptDeclaration(
	"
		jQuery(document).ready(function($){
			window.parent.document.updateUploader();
			$('.img-preview, .preview').each(function(index, value) {
				$(this).on('click', function(e) {
					window.parent.jQuery('#imagePreviewSrc').attr('src',
$(this).attr('href'));
					window.parent.jQuery('#imagePreview').modal('show');
					return false;
				});
			});
			$('.video-preview').each(function(index, value) {
				$(this).unbind('click');
				$(this).on('click', function(e) {
					e.preventDefault();
					window.parent.jQuery('#videoPreview').modal('show');

					var elementInitialised =
window.parent.jQuery('#mejsPlayer').attr('src');

					if (!elementInitialised)
					{
						window.parent.jQuery('#mejsPlayer').attr('src',
$(this).attr('href'));
						window.parent.jQuery('#mejsPlayer').mediaelementplayer();
					}

					window.parent.jQuery('#mejsPlayer')[0].player.media.setSrc($(this).attr('href'));

					return false;
				});
			});
		});
	"
);
?>
<form target="_parent"
action="index.php?option=com_media&amp;tmpl=index&amp;folder=<?php
echo rawurlencode($this->state->folder); ?>"
method="post" id="mediamanager-form"
name="mediamanager-form">
	<div class="muted breadcrumbs">
		<p>
			<span class="icon-folder"></span>
			<?php
				echo $params->get($path, 'images'),
					($this->escape($this->state->folder) != '') ?
'/' . $this->escape($this->state->folder) :
'';
			?>
		</p>
	</div>

	<div>
		<label class="checkbox btn">
			<?php echo JHtml::_('grid.checkall'); ?>
			<?php echo JText::_('JGLOBAL_CHECK_ALL'); ?>
		</label>
	</div>

	<ul class="manager thumbnails thumbnails-media">
		<?php
			echo $this->loadTemplate('up'),
				$this->loadTemplate('folders'),
				$this->loadTemplate('docs'),
				$this->loadTemplate('videos'),
				$this->loadTemplate('imgs');
		?>

		<input type="hidden" name="task"
value="" />
		<input type="hidden" name="username"
value="" />
		<input type="hidden" name="password"
value="" />
		<input type="hidden" name="boxchecked"
value="" />
		<?php echo JHtml::_('form.token'); ?>
	</ul>
</form>
PK���[c�roo$views/medialist/tmpl/thumbs_docs.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Registry\Registry;

$params     = new Registry;
$dispatcher = JEventDispatcher::getInstance();
?>

<?php foreach ($this->documents as $i => $doc) : ?>
	<?php $dispatcher->trigger('onContentBeforeDisplay',
array('com_media.file', &$doc, &$params, 0)); ?>
	<li class="imgOutline thumbnail height-80 width-80
center">
		<?php if ($this->canDelete) : ?>
			<a class="close delete-item" target="_top"
href="index.php?option=com_media&amp;task=file.delete&amp;tmpl=index&amp;<?php
echo JSession::getFormToken(); ?>=1&amp;folder=<?php echo
rawurlencode($this->state->folder); ?>&amp;rm[]=<?php echo
$this->escape($doc->name); ?>" rel="<?php echo
$this->escape($doc->name); ?>" title="<?php echo
JText::_('JACTION_DELETE'); ?>">&#215;</a>
			<div class="pull-left">
				<?php echo JHtml::_('grid.id', $i,
$this->escape($doc->name), false, 'rm',
'cb-document'); ?>
			</div>
			<div class="clearfix"></div>
		<?php endif; ?>

		<div class="height-50">
			<a style="display: block; width: 100%; height: 100%"
title="<?php echo $this->escape($doc->name); ?>" >
				<?php echo JHtml::_('image', $doc->icon_32,
$this->escape($doc->name), null, true, true) ?
JHtml::_('image', $doc->icon_32,
$this->escape($doc->title), null, true) : JHtml::_('image',
'media/con_info.png', $this->escape($doc->name), null,
true); ?>
			</a>
		</div>

		<div class="small" title="<?php echo
$this->escape($doc->name); ?>" >
			<?php echo JHtml::_('string.truncate',
$this->escape($doc->name), 10, false); ?>
		</div>
	</li>
	<?php $dispatcher->trigger('onContentAfterDisplay',
array('com_media.file', &$doc, &$params, 0)); ?>
<?php endforeach; ?>
PK���[�
�ss'views/medialist/tmpl/thumbs_folders.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

?>
<?php foreach ($this->folders as $i => $folder) : ?>
	<li class="imgOutline thumbnail height-80 width-80
center">
		<?php if ($this->canDelete) : ?>
			<a class="close delete-item" target="_top"
href="index.php?option=com_media&amp;task=folder.delete&amp;tmpl=index&amp;<?php
echo JSession::getFormToken(); ?>=1&amp;folder=<?php echo
rawurlencode($this->state->folder); ?>&amp;rm[]=<?php echo
$this->escape($folder->name); ?>" rel="<?php echo
$this->escape($folder->name); ?> :: <?php echo
$this->escape($folder->files) +
$this->escape($folder->folders); ?>" title="<?php
echo JText::_('JACTION_DELETE');
?>">&#215;</a>
			<div class="pull-left">
				<?php echo JHtml::_('grid.id', $i,
$this->escape($folder->name), false, 'rm',
'cb-folder'); ?>
			</div>
			<div class="clearfix"></div>
		<?php endif; ?>

		<div class="height-50">
			<a
href="index.php?option=com_media&amp;view=mediaList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($folder->path_relative); ?>"
target="folderframe">
				<span class="icon-folder-2"></span>
			</a>
		</div>

		<div class="small">
			<a
href="index.php?option=com_media&amp;view=mediaList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($folder->path_relative); ?>"
target="folderframe">
				<?php echo JHtml::_('string.truncate',
$this->escape($folder->name), 10, false); ?>
			</a>
		</div>
	</li>
<?php endforeach; ?>
PK���[M�ɨ;;$views/medialist/tmpl/thumbs_imgs.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Registry\Registry;

$params     = new Registry;
$dispatcher = JEventDispatcher::getInstance();
?>

<?php foreach ($this->images as $i => $img) : ?>
	<?php $dispatcher->trigger('onContentBeforeDisplay',
array('com_media.file', &$img, &$params, 0)); ?>
	<li class="imgOutline thumbnail height-80 width-80
center">
		<?php if ($this->canDelete) : ?>
			<a class="close delete-item" target="_top"
			href="index.php?option=com_media&amp;task=file.delete&amp;tmpl=index&amp;<?php
echo JSession::getFormToken(); ?>=1&amp;folder=<?php echo
rawurlencode($this->state->folder); ?>&amp;rm[]=<?php echo
$this->escape($img->name); ?>"
			rel="<?php echo $this->escape($img->name); ?>"
title="<?php echo JText::_('JACTION_DELETE');
?>">&#215;</a>
			<div class="pull-left">
				<?php echo JHtml::_('grid.id', $i,
$this->escape($img->name), false, 'rm',
'cb-image'); ?>
			</div>
			<div class="clearfix"></div>
		<?php endif; ?>

		<div class="height-50">
			<a class="img-preview" href="<?php echo
COM_MEDIA_BASEURL . '/' . str_replace('%2F',
'/', rawurlencode($img->path_relative)); ?>"
title="<?php echo $this->escape($img->name); ?>" >
				<?php echo JHtml::_('image', COM_MEDIA_BASEURL .
'/' . $this->escape($img->path_relative),
JText::sprintf('COM_MEDIA_IMAGE_TITLE',
$this->escape($img->title), JHtml::_('number.bytes',
$img->size)), array('width' => $img->width_60,
'height' => $img->height_60)); ?>
			</a>
		</div>

		<div class="small">
			<a href="<?php echo COM_MEDIA_BASEURL, '/',
rawurlencode($img->path_relative); ?>" title="<?php echo
$this->escape($img->name); ?>" class="preview">
				<?php echo JHtml::_('string.truncate',
$this->escape($img->name), 10, false); ?>
			</a>
		</div>
	</li>
	<?php $dispatcher->trigger('onContentAfterDisplay',
array('com_media.file', &$img, &$params, 0)); ?>
<?php endforeach; ?>
PK���[�v�]��"views/medialist/tmpl/thumbs_up.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;
?>
<?php if ($this->state->folder != '') : ?>
<li class="imgOutline thumbnail height-80 width-80 center">
	<div class="imgTotal">
		<div class="imgBorder">
			<a class="btn"
href="index.php?option=com_media&amp;view=mediaList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($this->state->parent); ?>"
target="folderframe">
				<span class="icon-arrow-up"></span></a>
		</div>
	</div>
	<div class="controls">
		<span>&#160;</span>
	</div>
	<div class="imginfoBorder">
		<a
href="index.php?option=com_media&amp;view=mediaList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($this->state->parent); ?>"
target="folderframe">..</a>
	</div>
</li>
<?php endif; ?>
PK���[]��&views/medialist/tmpl/thumbs_videos.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Registry\Registry;

$params     = new Registry;
$dispatcher = JEventDispatcher::getInstance();

JFactory::getDocument()->addScriptDeclaration("
jQuery(document).ready(function($){
	window.parent.jQuery('#videoPreview').on('hidden',
function () {
		window.parent.jQuery('#mejsPlayer')[0].player.pause();
	});
});
");
?>
<?php foreach ($this->videos as $i => $video) : ?>
	<?php $dispatcher->trigger('onContentBeforeDisplay',
array('com_media.file', &$video, &$params, 0)); ?>
	<li class="imgOutline thumbnail height-80 width-80
center">
		<?php if ($this->canDelete) : ?>
			<a class="close delete-item" target="_top"
href="index.php?option=com_media&amp;task=file.delete&amp;tmpl=index&amp;<?php
echo JSession::getFormToken(); ?>=1&amp;folder=<?php echo
rawurlencode($this->state->folder); ?>&amp;rm[]=<?php echo
$this->escape($video->name); ?>" rel="<?php echo
$this->escape($video->name); ?>" title="<?php echo
JText::_('JACTION_DELETE'); ?>">&#215;</a>
			<div class="pull-left">
				<?php echo JHtml::_('grid.id', $i,
$this->escape($video->name), false, 'rm',
'cb-video'); ?>
			</div>
			<div class="clearfix"></div>
		<?php endif; ?>

		<div class="height-50">
			<?php echo JHtml::_('image', $video->icon_32,
$this->escape($video->title), null, true); ?>
		</div>

		<div class="small">
			<a class="video-preview" href="<?php echo
COM_MEDIA_BASEURL, '/', rawurlencode($video->path_relative);
?>" title="<?php echo $this->escape($video->name);
?>">
				<?php echo JHtml::_('string.truncate',
$this->escape($video->name), 10, false); ?>
			</a>
		</div>
	</li>
	<?php $dispatcher->trigger('onContentAfterDisplay',
array('com_media.file', &$video, &$params, 0)); ?>
<?php endforeach; ?>
PK���[��H__views/medialist/view.html.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * HTML View class for the Media component
 *
 * @since  1.0
 */
class MediaViewMediaList extends JViewLegacy
{
	/**
	 * Execute and display a template script.
	 *
	 * @param   string  $tpl  The name of the template file to parse;
automatically searches through the template paths.
	 *
	 * @return  mixed  A string if successful, otherwise an Error object.
	 *
	 * @since   1.0
	 */
	public function display($tpl = null)
	{
		$app = JFactory::getApplication();

		if (!$app->isClient('administrator'))
		{
			return
$app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'),
'warning');
		}

		// Do not allow cache
		$app->allowCache(false);

		$this->images    = $this->get('images');
		$this->documents = $this->get('documents');
		$this->folders   = $this->get('folders');
		$this->videos    = $this->get('videos');
		$this->state     = $this->get('state');

		// Check for invalid folder name
		if (empty($this->state->folder))
		{
			$dirname =
JFactory::getApplication()->input->getPath('folder',
'');

			if (!empty($dirname))
			{
				$dirname = htmlspecialchars($dirname, ENT_COMPAT, 'UTF-8');
				JError::raiseWarning(100,
JText::sprintf('COM_MEDIA_ERROR_UNABLE_TO_BROWSE_FOLDER_WARNDIRNAME',
$dirname));
			}
		}

		$user = JFactory::getUser();
		$this->canDelete = $user->authorise('core.delete',
'com_media');

		parent::display($tpl);
	}
}
PK��[%��Rddimageslist/default_folder.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

$input = JFactory::getApplication()->input;
?>
<li class="imgOutline thumbnail height-80 width-80 center">
	<a
href="index.php?option=com_media&amp;view=imagesList&amp;tmpl=component&amp;folder=<?php
echo rawurlencode($this->_tmp_folder->path_relative);
?>&amp;asset=<?php echo
$input->getCmd('asset');?>&amp;author=<?php echo
$input->getCmd('author');?>"
target="imageframe">
		<div class="imgFolder">
			<span class="icon-folder-2"></span>
		</div>
		<div class="small">
			<?php echo JHtml::_('string.truncate',
$this->escape($this->_tmp_folder->name), 10, false); ?>
		</div>
	</a>
</li>
PK��[AҘ�iiimageslist/default_image.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_media
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Registry\Registry;

$params     = new Registry;
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->trigger('onContentBeforeDisplay',
array('com_media.file', &$this->_tmp_img, &$params,
0));
?>

<li class="imgOutline thumbnail height-80 width-80 center">
	<a class="img-preview"
href="javascript:ImageManager.populateFields('<?php echo
$this->escape($this->_tmp_img->path_relative); ?>')"
title="<?php echo $this->escape($this->_tmp_img->name);
?>" >
		<div class="imgThumb">
			<div class="imgThumbInside">
			<?php echo JHtml::_('image', $this->baseURL .
'/' . $this->escape($this->_tmp_img->path_relative),
JText::sprintf('COM_MEDIA_IMAGE_TITLE',
$this->_tmp_img->title, JHtml::_('number.bytes',
$this->_tmp_img->size)), array('width' =>
$this->_tmp_img->width_60, 'height' =>
$this->_tmp_img->height_60)); ?>
			</div>
		</div>
		<div class="imgDetails small">
			<?php echo JHtml::_('string.truncate',
$this->escape($this->_tmp_img->name), 10, false); ?>
		</div>
	</a>
</li>
<?php
$dispatcher->trigger('onContentAfterDisplay',
array('com_media.file', &$this->_tmp_img, &$params,
0));
PK���[��b�hh
access.xmlnu�[���PK���[p�ѵKK
�config.xmlnu�[���PK���[�3��}}'controller.phpnu�[���PK���[�ZT�tt�controllers/file.json.phpnu�[���PK���[O�Ǯ))�3controllers/file.phpnu�[���PK���[N����]controllers/folder.phpnu�[���PK���[tL�99�yhelpers/media.phpnu�[���PK���[傦��g�layouts/toolbar/deletemedia.phpnu�[���PK���[�
i���_�layouts/toolbar/newfolder.phpnu�[���PK���[��v��layouts/toolbar/uploadmedia.phpnu�[���PK���[A��	�media.phpnu�[���PK���[�c�+��	P�media.xmlnu�[���PK���[�-%����models/list.phpnu�[���PK���[�>���models/manager.phpnu�[���PK���[-Auw
w
��views/images/tmpl/default.phpnu�[���PK���[�-�����views/images/view.html.phpnu�[���PK���[ӏV�==!��views/imageslist/tmpl/default.phpnu�[���PK���[ġ��ff(@�views/imageslist/tmpl/default_folder.phpnu�[���PK���[zh�DD'��views/imageslist/tmpl/default_image.phpnu�[���PK���[�j������views/imageslist/view.html.phpnu�[���PK���[
���oviews/media/tmpl/default.phpnu�[���PK���[�$��;views/media/tmpl/default.xmlnu�[���PK���[��C�>>$Oviews/media/tmpl/default_folders.phpnu�[���PK���[9.���'�#views/media/tmpl/default_navigation.phpnu�[���PK���[#��
�
�'views/media/view.html.phpnu�[���PK���[F��

6views/medialist/tmpl/default.phpnu�[���PK���[Zi��
p7views/medialist/tmpl/details.phpnu�[���PK���[ݍ���$�Fviews/medialist/tmpl/details_doc.phpnu�[���PK���[m��y��%�Nviews/medialist/tmpl/details_docs.phpnu�[���PK���[�5T..'�Vviews/medialist/tmpl/details_folder.phpnu�[���PK���[蠃aCC(�]views/medialist/tmpl/details_folders.phpnu�[���PK���[ͥ��B	B	$dviews/medialist/tmpl/details_img.phpnu�[���PK���[W��i	i	%�mviews/medialist/tmpl/details_imgs.phpnu�[���PK���[5��=��#rwviews/medialist/tmpl/details_up.phpnu�[���PK���[�8h3	3	&�{views/medialist/tmpl/details_video.phpnu�[���PK���[�
�		'@�views/medialist/tmpl/details_videos.phpnu�[���PK���[=�������views/medialist/tmpl/thumbs.phpnu�[���PK���[c�roo$ڛviews/medialist/tmpl/thumbs_docs.phpnu�[���PK���[�
�ss'��views/medialist/tmpl/thumbs_folders.phpnu�[���PK���[M�ɨ;;$g�views/medialist/tmpl/thumbs_imgs.phpnu�[���PK���[�v�]��"��views/medialist/tmpl/thumbs_up.phpnu�[���PK���[]��&��views/medialist/tmpl/thumbs_videos.phpnu�[���PK���[��H__	�views/medialist/view.html.phpnu�[���PK��[%��Rdd��imageslist/default_folder.phpnu�[���PK��[AҘ�iif�imageslist/default_image.phpnu�[���PK--b�