예제 #1
0
파일: mm.php 프로젝트: jtresca/nysurveyor
 function getFiles()
 {
     $b = $this->getBasePath();
     $e = '\\.(bmp|gif|jpg|jpeg|png)';
     return LinkrHelper::listFiles($b, $e);
 }
예제 #2
0
 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>';
 }
예제 #3
0
 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);
 }