/** * Return the file properties of a specific file * * @param string $filePath * * @return array */ public function getProperties($filePath) { $properties = array(); $info = @getimagesize($filePath); $properties['width'] = @$info[0]; $properties['height'] = @$info[1]; $properties['type'] = @$info[2]; $properties['mime'] = @$info['mime']; if ($info[0] > 60 || $info[1] > 60) { $dimensions = MediaHelper::imageResize($info[0], $info[1], 60); $properties['width_60'] = $dimensions[0]; $properties['height_60'] = $dimensions[1]; } else { $properties['width_60'] = $properties['width']; $properties['height_60'] = $properties['height']; } if ($info[0] > 16 || $info[1] > 16) { $dimensions = MediaHelper::imageResize($info[0], $info[1], 16); $properties['width_16'] = $dimensions[0]; $properties['height_16'] = $dimensions[1]; } else { $properties['width_16'] = $properties['width']; $properties['height_16'] = $properties['height']; } return $properties; }
/** * Method to return the current filelist * * @access public * @param null * @return array */ public function getList() { // Only process the list once per request static $list; if (is_array($list)) { return $list; } // Initialize variables $folder = $this->getState('folder'); $folderPath = JPATH_SITE . '/' . $folder; $type = $this->getState('type'); // Initialize the lists $files = array(); $subfolders = array(); $docs = array(); // Get the list of files and folders from the given folder if (is_readable($folderPath)) { $fileList = JFolder::files($folderPath); $subfolderList = JFolder::folders($folderPath); } else { $fileList = false; $subfolderList = false; } // Iterate over the files if they exist if ($fileList !== false) { foreach ($fileList as $file) { // Skip this file if it is not readable if (is_file($folderPath . '/' . $file) == false) { continue; } // Skip files starting with a dot if (substr($file, 0, 1) == '.') { continue; } // Skip specific files if (strtolower($file) == 'index.html' || preg_match('/\\.(php)$/', $file)) { continue; } $tmp = new JObject(); $tmp->name = $file; $tmp->path = $folderPath . '/' . $file; $tmp->path_relative = $folder . $file; $tmp->path_uri = $tmp->path_relative; $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); $size = @filesize($tmp->path); $tmp->width = @$info[0]; $tmp->height = @$info[1]; $tmp->src_width = $tmp->width; $tmp->src_height = $tmp->height; $tmp->type = @$info[2]; $tmp->mime = @$info['mime']; $maxsize = 60; if ($info[0] > $maxsize || $info[1] > $maxsize) { $dimensions = MediaHelper::imageResize($info[0], $info[1], $maxsize); $tmp->width = $dimensions[0]; $tmp->height = $dimensions[1]; } $maxbits = 524288; if ($size > $maxbits) { $tmp->src = JURI::root() . SimplelistsHelper::createThumbnail($tmp->path, $ext, $tmp->src_width, $tmp->src_height, $tmp->width, $tmp->height); } else { $tmp->src = JURI::root() . $tmp->path_relative; } $files[] = $tmp; break; // Non-image document // Non-image document default: if ($type != 'link_file') { break; } // First read the Media Manager parameters and check if this extension is allowed $media_params = JComponentHelper::getParams('com_media'); $allowable = explode(',', $media_params->get('upload_extensions')); if (in_array($ext, $allowable) == false) { break; } if (file_exists(JPATH_SITE . '/media/media/images/mime-icon-32/' . $ext . '.png')) { $tmp->path_relative = '/media/media/images/mime-icon-32/' . $ext . '.png'; } elseif (file_exists(JPATH_SITE . '/media/media/images/con_info.png')) { $tmp->path_relative = '/media/media/images/con_info.png'; } elseif (file_exists(JPATH_ADMINISTRATOR . '/components/com_media/images/mime-icon-32/' . $ext . '.png')) { $tmp->path_relative = '/administrator/components/com_media/images/mime-icon-32/' . $ext . '.png'; } elseif (file_exists(JPATH_ADMINISTRATOR . '/components/com_media/images/con_info.png')) { $tmp->path_relative = '/administrator/components/com_media/images/con_info.png'; } $tmp->src = $tmp->path_relative; $info = @getimagesize(JPATH_SITE . '/' . $tmp->path_relative); $tmp->width = @$info[0]; $tmp->height = @$info[1]; $files[] = $tmp; break; } } } // Iterate over the folders if they exist if ($subfolderList !== false) { foreach ($subfolderList as $subfolder) { $tmp = new JObject(); $tmp->name = basename($subfolder); $tmp->path = JPath::clean($folderPath . '/' . $subfolder); $tmp->path_relative = str_replace(JPATH_ROOT . '/', '', $tmp->path); $tmp->path_uri = $tmp->path_relative; $count = MediaHelper::countFiles($tmp->path); $tmp->files = $count[0]; $tmp->subfolders = $count[1]; $subfolders[] = $tmp; } } $list = array('subfolders' => $subfolders, 'docs' => $docs, 'files' => $files); return $list; }
/** * Build imagelist * * @param string $listFolder The image directory to display * @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 = $this->getState('folder'); // If undefined, set to empty if ($current == 'undefined') { $current = ''; } if (strlen($current) > 0) { $basePath = COM_MEDIA_BASE . '/' . $current; } else { $basePath = COM_MEDIA_BASE; } $mediaBase = str_replace(DIRECTORY_SEPARATOR, '/', COM_MEDIA_BASE . '/'); $images = array(); $folders = array(); $docs = 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) { foreach ($fileList as $file) { if (is_file($basePath . '/' . $file) && substr($file, 0, 1) != '.' && strtolower($file) !== 'index.html') { $tmp = new JObject(); $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; // Non-image document // 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) { foreach ($folderList as $folder) { $tmp = new JObject(); $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); return $list; }
function getList() { // Get current path from request $current = $this->getStateFolder(); // If undefined, set to empty if ($current == 'undefined') { $current = ''; } // Initialize variables if (strlen($current) > 0) { $basePath = $this->comMediaBase . DS . $current; //$basePath = $current; } else { $basePath = $this->comMediaBase; } $mediaBase = str_replace(DS, '/', $this->comMediaBase . '/'); $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); jimport('joomla.filesystem.file'); // 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 // Non-image document default: $iconfile_32 = JPATH_ADMINISTRATOR . DS . "components" . DS . "com_imageshow" . DS . "assets" . DS . "images" . DS . "mime-icon-32" . DS . $ext . ".png"; if (file_exists($iconfile_32)) { $tmp->icon_32 = "components/com_imageshow/assets/images/mime-icon-32/" . $ext . ".png"; } else { $tmp->icon_32 = "components/com_imageshow/assets/images/con_info.png"; } $iconfile_16 = JPATH_ADMINISTRATOR . DS . "components" . DS . "com_imageshow" . DS . "assets" . DS . "images" . DS . "mime-icon-16" . DS . $ext . ".png"; if (file_exists($iconfile_16)) { $tmp->icon_16 = "components/com_imageshow/assets/images/mime-icon-16/" . $ext . ".png"; } else { $tmp->icon_16 = "components/com_imageshow/assets/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; }