Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发

源代码在线查看: list.php

软件大小: 5657 K
上传用户: fansino
关键词: Joomla Management Content System
下载地址: 免注册下载 普通下载 VIP

相关代码

								/**				 * @version		$Id: list.php 10381 2008-06-01 03:35:53Z pasamio $				 * @package		Joomla				 * @subpackage	Media				 * @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');				jimport('joomla.filesystem.folder');				jimport('joomla.filesystem.file');								/**				 * Media Component List Model				 *				 * @package		Joomla				 * @subpackage	Media				 * @since 1.5				 */				class MediaModelList 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);					}									function getImages()					{						$list = $this->getList();						return $list['images'];					}									function getFolders()					{						$list = $this->getList();						return $list['folders'];					}									function getDocuments()					{						$list = $this->getList();						return $list['docs'];					}									/**					 * Build imagelist					 *					 * @param string $listFolder The image directory to display					 * @since 1.5					 */					function getList()					{						static $list;										// Only process the list once per request						if (is_array($list)) {							return $list;						}										// Get current path from request						$current = $this->getState('folder');										// If undefined, set to empty						if ($current == 'undefined') {							$current = '';						}										// Initialize variables						if (strlen($current) > 0) {							$basePath = COM_MEDIA_BASE.DS.$current;						} else {							$basePath = COM_MEDIA_BASE;						}						$mediaBase = str_replace(DS, '/', COM_MEDIA_BASE.'/');										$images 	= array ();						$folders 	= array ();						$docs 		= array ();										// 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) {							foreach ($fileList as $file)							{								if (is_file($basePath.DS.$file) && substr($file, 0, 1) != '.' && strtolower($file) !== 'index.html') {									$tmp = new JObject();									$tmp->name = $file;									$tmp->path = str_replace(DS, '/', JPath::clean($basePath.DS.$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':											$info = @getimagesize($tmp->path);											$tmp->width		= @$info[0];											$tmp->height	= @$info[1];											$tmp->type		= @$info[2];											$tmp->mime		= @$info['mime'];															$filesize		= MediaHelper::parseSize($tmp->size);															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;										// Non-image document										default:											$iconfile_32 = JPATH_ADMINISTRATOR.DS."components".DS."com_media".DS."images".DS."mime-icon-32".DS.$ext.".png";											if (file_exists($iconfile_32)) {												$tmp->icon_32 = "components/com_media/images/mime-icon-32/".$ext.".png";											} else {												$tmp->icon_32 = "components/com_media/images/con_info.png";											}											$iconfile_16 = JPATH_ADMINISTRATOR.DS."components".DS."com_media".DS."images".DS."mime-icon-16".DS.$ext.".png";											if (file_exists($iconfile_16)) {												$tmp->icon_16 = "components/com_media/images/mime-icon-16/".$ext.".png";											} else {												$tmp->icon_16 = "components/com_media/images/con_info.png";											}											$docs[] = $tmp;											break;									}								}							}						}										// Iterate over the folders if they exist						if ($folderList !== false) {							foreach ($folderList as $folder) {								$tmp = new JObject();								$tmp->name = basename($folder);								$tmp->path = str_replace(DS, '/', JPath::clean($basePath.DS.$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);										return $list;					}				}			

相关资源