public function getList() { if (!isset($this->_list)) { $state = $this->_state; if (!$state->basepath) { throw new KModelException('Basepath is not a valid folder'); } $basepath = $state->basepath; $path = $basepath; if (!empty($state->folder) && $state->folder != '/') { $path .= '/' . ltrim($state->folder, '/'); } if (!is_dir($path)) { throw new KModelException('Basepath is not a valid folder'); } $name = $state->path ? $state->path : null; if (is_string($name)) { $files[] = $name; } else { if (is_array($name)) { $files = array(); foreach ($name as $n) { $files[] = $n; } } else { $files = ComFilesIteratorDirectory::getFiles(array('path' => $path, 'exclude' => array('.svn', '.htaccess', '.git', 'CVS', 'index.html', '.DS_Store', 'Thumbs.db', 'Desktop.ini'), 'filter' => array($this, 'iteratorFilter'), 'map' => array($this, 'iteratorMap'))); } } $this->_total = count($files); $files = array_slice($files, $state->offset, $state->limit ? $state->limit : $this->_total); if (strtolower($this->_state->direction) == 'desc') { $files = array_reverse($files); } $data = array(); foreach ($files as $file) { $data[] = array('container' => $state->container, 'basepath' => $basepath, 'path' => $file); } $this->_list = $this->getService('com://admin/files.database.rowset.files', array('data' => $data)); } return parent::getList(); }
public function getIcons() { static $path = 'media/com_files/images', $default, $icons16, $icons32; if (!isset($default)) { $default = $path.'/con_info.png'; } if (!isset($icons16)) { $icons16 = ComFilesIteratorDirectory::getFiles(array( 'path' => JPATH_ROOT.'/'.$path.'/mime-icon-16', 'filter' => array('png') )); } if (!isset($icons32)) { $icons32 = ComFilesIteratorDirectory::getFiles(array( 'path' => JPATH_ROOT.'/'.$path.'/mime-icon-32', 'filter' => array('png') )); } $icons = array(); $icons['16'] = in_array($this->extension.'.png', $icons16) ? $path.'/mime-icon-16/'.$this->extension.'.png' : $default; $icons['32'] = in_array($this->extension.'.png', $icons32) ? $path.'/mime-icon-32/'.$this->extension.'.png' : $default; return $icons; }