| Current Path : /home/sunflowe/www2/j15/plugins/editors/jce/tiny_mce/plugins/imgmanager/classes/ |
| Current File : /home/sunflowe/www2/j15/plugins/editors/jce/tiny_mce/plugins/imgmanager/classes/imgmanager.php |
<?php
/**
* @version $Id: imgmanager.php 46 2009-05-26 16:59:42Z happynoodleboy $
* @package JCE
* @copyright Copyright (C) 2005 - 2009 Ryan Demmer. All rights reserved.
* @author Ryan Demmer
* @license GNU/GPL
* JCE is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*/
defined('_JEXEC') or die('Restricted access');
require_once(JCE_LIBRARIES .DS. 'classes' .DS. 'manager.php');
class ImageManager extends Manager
{
var $_ext = 'image=jpg,jpeg,gif,png';
/**
* @access protected
*/
function __construct()
{
parent::__construct();
// Set the file type map from parameters
$this->setFileTypes($this->getPluginParam('imgmanager_extensions', $this->_ext));
// Init plugin
$this->init();
}
/**
* Returns a reference to a editor object
*
* This method must be invoked as:
* <pre> $browser = &JCE::getInstance();</pre>
*
* @access public
* @return JCE The editor object.
* @since 1.5
*/
function &getInstance()
{
static $instance;
if (!is_object($instance)) {
$instance = new ImageManager();
}
return $instance;
}
/**
* Initialise the plugin
*/
function init()
{
// check the user/group has editor permissions
$this->checkPlugin() or die(JError::raiseError(403, JText::_('Access Forbidden')));
parent::init();
// Setup plugin XHR callback functions
$this->setXHR(array($this, 'getDimensions'));
// Set javascript file array
$this->script(array('imgmanager'), 'plugins');
// Set css file array
$this->css(array('imgmanager'), 'plugins');
// Load extensions if any
$this->loadExtensions();
}
/**
* Get an images properties. Overrides parent function
* @return array Array of image properties - dimensions, size, modified date, preview image properties
* @param string $file Relative path to file
*/
function getFileDetails($file)
{
jimport('joomla.filesystem.file');
clearstatcache();
$h = array(
'dimensions' => '',
'size' => '',
'modified' => '',
'preview' => ''
);
$path = Utils::makePath($this->getBaseDir(), utf8_decode(rawurldecode($file)));
if (file_exists($path)) {
$url = Utils::makePath($this->getBaseUrl(), rawurldecode($file));
$ext = JFile::getExt($path);
$dim = @getimagesize($path);
$date = Utils::formatDate(@filemtime($path));
$size = Utils::formatSize(@filesize($path));
$pw = ($dim[0] >= 100) ? 100 : $dim[0];
$ph = ($pw / $dim[0]) * $dim[1];
if($ph > 80){
$ph = 80;
$pw = ($ph / $dim[1]) * $dim[0];
}
$h = array(
'dimensions' => $dim[0]. ' x ' .$dim[1],
'size' => $size,
'modified' => $date,
'preview' => array(
'src' => $url,
'width' => round($pw),
'height' => round($ph)
)
);
}
return $h;
}
/**
* Get the dimensions of an image
* @return array Dimensions as array
* @param object $file Relative path to image
*/
function getDimensions($file)
{
$path = Utils::makePath($this->getBaseDir(), utf8_decode(rawurldecode($file)));
$h = array(
'width' => '',
'height' => ''
);
if (file_exists($path)) {
$dim = @getimagesize($path);
$h = array(
'width' => $dim[0],
'height' => $dim[1]
);
}
return $h;
}
/**
* Get list of uploadable extensions
* @return Mapped extension list (list mapped to type object eg: 'images', 'jpeg,jpg,gif,png')
*/
function getUploadFileTypes()
{
$list = $this->getPluginParam('imgmanager_extensions', 'image=jpg,jpeg,gif,png');
return $this->mapUploadFileTypes($list);
}
}
?>