/**
  * 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;
 }
Beispiel #2
0
 /**
  * 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;
 }
Beispiel #3
0
 /**
  * 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;
 }