function getFiles() { $b = $this->getBasePath(); $e = '\\.(bmp|gif|jpg|jpeg|png)'; return LinkrHelper::listFiles($b, $e); }
function folderItems() { // Get filetypes $exts = 'bmp,csv,doc,gif,jpg,jpeg,odg,odp,ods,odt,pdf,png,ppt,txt,xcf,xls'; $exts = LinkrHelper::getMediaParam('upload_extensions', $exts); // Build regular expression $exts = preg_replace('/[^A-Z0-9,]/i', '', $exts); $exts = '\\.(' . str_replace(',', '|', $exts) . ')'; // Get folder from request $info = $this->fileInfo(); $folder = $info['path']; // Get folders if ($info['parent']) { $folders = LinkrHelper::listDirectories($info['path']); } else { $paths = LinkrHelper::getParam('paths', 'images'); $regex = LinkrHelper::buildRegex($paths); $folders = LinkrHelper::listDirectories($info['base'], $regex); } // Get files $files = LinkrHelper::listFiles($folder, $exts); // Create output $items = '<div id="filedirlist">' . '<div style="clear:both;"></div>'; // Parent directory $icon = JURI::root() . 'administrator/components/com_media/images/folderup_32.png'; $icon = JHTML::image($icon, 'Folder', array('width' => 32, 'height' => 32, 'class' => 'big')); if ($info['parent']) { $click = 'LinkrHelper.fileDir(\'' . $info['parent.64'] . '\')'; $items .= '<div class="item up">' . '<div class="icon" onclick="' . $click . '">' . '<div align="center" class="border"><a>' . $icon . '</a></div></div>' . '<div class="name">' . JText::_('up') . '</div>' . '</div>'; } // Folders $icon = JURI::root() . 'administrator/components/com_media/images/folder.png'; $icon = JHTML::image($icon, 'Folder', array('width' => 32, 'height' => 32, 'class' => 'big')); foreach ($folders as $d) { $click = 'LinkrHelper.fileDir(\'' . $d['path.64'] . '\')'; $items .= '<div class="item">' . '<div class="icon" onclick="' . $click . '">' . '<div align="center" class="border"><a>' . $icon . '</a></div></div>' . '<div class="name">' . $d['name'] . '</div>' . '</div>'; } // Files foreach ($files as $f) { $icon = array('width' => $f->width, 'height' => $f->height); $icon = JHTML::image($f->icon, $f->name, $icon); $title = $f->type . ' - ' . $f->name . ' (' . $f->size . ')'; $name = str_replace('.' . $f->ext, '', $f->name); $click = 'LinkrHelper.file(\'' . $f->src . '\')'; $items .= '<div class="item">' . '<div class="icon"title="' . $title . '"onclick="' . $click . '">' . '<div align="center" class="border"><a>' . $icon . '</a></div></div>' . '<div class="name">' . $name . '</div>' . '</div>'; } return $items . '</div>'; }
function paths() { // Get folder $f = JRequest::getVar('f', '', 'REQUEST', 'BASE64'); if (!($f = base64_decode($f))) { return $this->badRequest('Invalid directory'); } // Get extensions $e = trim(JRequest::getCmd('e', '')); if (!strlen($e)) { return $this->badRequest('No extensions specified'); } elseif ($e == 'all') { $e = $this->_fileExt; } else { $e = @explode('-', $e); } // Check folder $inSite = false; $root = LinkrHelper::listDirectories(JPATH_ROOT); foreach ($root as $check) { if (stripos($f, $check['name']) === 0) { $inSite = true; break; } } if (!$inSite) { return $this->badRequest('Directory not within Joomla! installation'); } // Check extensions $exts = array(); foreach ($e as $x) { if (!in_array(strtolower(trim($x)), $this->_fileExt)) { return $this->badRequest('Disallowed extension "' . $x . '"'); } $exts[] = '.' . $x; } // List files $regex = '(' . implode('|', $exts) . ')$'; $path = JPATH_ROOT . DS . str_replace('/', DS, $f); $files = LinkrHelper::listFiles($path, $regex, true); // Return files data return array('status' => 'ok', 'result' => $files); }