| Current Path : /var/www/iplanru/data/old/www/i-plan.ru/administrator/components/com_media/models/ |
| Current File : /var/www/iplanru/data/old/www/i-plan.ru/administrator/components/com_media/models/manager.php |
<?php
/**
* @version $Id: manager.php 13297 2009-10-24 01:29:37Z ian $
* @package Joomla
* @subpackage Content
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! 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. See COPYRIGHT.php for copyright notices and
* details.
*/
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );
jimport('joomla.application.component.model');
/**
* Weblinks Component Weblink Model
*
* @package Joomla
* @subpackage Content
* @since 1.5
*/
class MediaModelManager extends JModel
{
function getState($property = null)
{
static $set;
if (!$set) {
$folder = JRequest::getVar( '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);
}
/**
* Image Manager Popup
*
* @param string $listFolder The image directory to display
* @since 1.5
*/
function getFolderList($base = null)
{
global $mainframe;
// Get some paths from the request
if (empty($base)) {
$base = COM_MEDIA_BASE;
}
// Get the list of folders
jimport('joomla.filesystem.folder');
$folders = JFolder::folders($base, '.', true, true);
// Load appropriate language files
$lang = & JFactory::getLanguage();
$lang->load(JRequest::getCmd( 'option' ), JPATH_ADMINISTRATOR);
$document =& JFactory::getDocument();
$document->setTitle(JText::_('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, "", $folder);
$value = substr($folder, 1);
$text = str_replace(DS, "/", $folder);
$options[] = JHTML::_('select.option', $value, $text);
}
// Sort the folder list array
if (is_array($options)) {
sort($options);
}
// Create the drop-down folder select list
$list = JHTML::_('select.genericlist', $options, 'folderlist', "class=\"inputbox\" size=\"1\" onchange=\"ImageManager.setFolder(this.options[this.selectedIndex].value)\" ", 'value', 'text', $base);
return $list;
}
function getFolderTree($base = null)
{
// Get some paths from the request
if (empty($base)) {
$base = COM_MEDIA_BASE;
}
$mediaBase = str_replace(DS, '/', 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(DS, '/', $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::_('Media'), 'relative' => '', 'absolute' => $base);
return $tree;
}
}