/** * Method to load files data in array * * @access public * @return array An array of results. */ public function getItems() { global $jlistConfig; jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); require_once JPATH_COMPONENT . '/helpers/jdownloadshelper.php'; jimport('joomla.html.pagination'); $app = JFactory::getApplication('administrator'); $mainframe = JFactory::getApplication(); $option = 'com_jdownloads'; // Lets load the file data if it doesn't already exist if (empty($this->_data)) { // get all file names from upload root dir $files_dir = $jlistConfig['files.uploaddir'] . DS; $filenames = JFolder::files($jlistConfig['files.uploaddir'], $filter = '.', $recurse = false, $fullpath = false, $exclude = array('index.htm', 'index.html', '.htaccess')); $files_info = array(); // build data array for files list for ($i = 0; $i < count($filenames); $i++) { $files_info[$i]['id'] = $i + 1; $files_info[$i]['name'] = $filenames[$i]; $date_format = JDownloadsHelper::getDateFormat(); $files_info[$i]['date'] = date($date_format['long'], filemtime($files_dir . $filenames[$i])); $files_info[$i]['size'] = JDownloadsHelper::fsize($files_dir . $filenames[$i]); } // search in file names $search = $this->getState('filter.search'); if ($search) { $search_result = JDownloadsHelper::arrayRegexSearch('/' . $search . '/i', $files_info, TRUE, TRUE); foreach ($search_result as $result) { $files_info_result[] = $files_info[$result]; } $files_info = $files_info_result; } // build pagination data $limitstart = $this->getState('list.start'); $limit = $this->getState('list.limit'); $pageNav = new JPagination(count($files_info), $limitstart, $limit); $this->_pagination = $pageNav; $items = array_splice($files_info, $limitstart, $limit); $this->_data = $items; } return $this->_data; }