Beispiel #1
0
 /**
  * Get path details.
  *
  * @param string $path
  * @param string $parent
  * @param array $highlighted
  * @param array $selected
  * @return array
  */
 public function getPathInfo($path, $parent, $highlighted, $selected)
 {
     $p = array('Path' => $parent, 'IsRoot' => false, 'UploadUrl' => (string) url('', array('module', 'path' => $parent, 'action' => 'Upload')), 'files' => array());
     $realpath = realpath(Curry_Core::$config->curry->wwwPath . DIRECTORY_SEPARATOR . $path);
     $dit = new DirectoryIterator($realpath);
     foreach ($dit as $entry) {
         $name = $entry->getFilename();
         $vpath = $parent . '/' . $name;
         if ($name[0] === '.') {
             continue;
         }
         if (isset($_GET['filter'])) {
             if ($_GET['filter'] == 'folder' && !$entry->isDir()) {
                 continue;
             }
             if ($entry->isFile() && !self::matchFilter($_GET['filter'], $name)) {
                 continue;
             }
         }
         $p['files'][] = array('Name' => $name, 'IsHighlighted' => $name == $highlighted, 'IsSelected' => in_array($vpath, $selected), 'IsFolder' => $entry->isDir(), 'Icon' => $entry->isDir() ? 'icon_folder' : Curry_Util::getIconFromExtension(pathinfo($entry->getPathname(), PATHINFO_EXTENSION)), 'Url' => (string) url('', array('module', 'path' => $vpath)), 'Path' => $vpath);
     }
     Curry_Array::sortOn($p['files'], array('IsFolder', 'Name'), array(Curry_Array::SORT_PROPERTY | Curry_Array::SORT_REVERSE, Curry_Array::SORT_PROPERTY | Curry_Array::SORT_CASEINSENSITIVE));
     return $p;
 }
Beispiel #2
0
 /**
  * Twig callback to get subpages for page.
  *
  * @param Page $page
  * @return array|Curry_Twig_CollectionWrapper
  */
 public function twigGetSubpages(Page $page)
 {
     if ($page->isLeaf()) {
         return array();
     }
     $subpages = array();
     $children = Page::getCachedChildren($page);
     foreach ($children as $subpage) {
         if ($subpage->getEnabled() && ($this->showHidden || $subpage->getVisible())) {
             $subpages[] = $subpage;
         }
     }
     if ($children instanceof PropelCollection) {
         $children->clearIterator();
     }
     // set order
     switch ($this->sortOrder) {
         case self::ORDER_SORTINDEX_DESC:
             Curry_Array::sortOn($subpages, 'getTreeLeft', Curry_Array::SORT_REVERSE);
             break;
         case self::ORDER_NAME_ASC:
             Curry_Array::sortOn($subpages, 'getName');
             break;
         case self::ORDER_NAME_DESC:
             Curry_Array::sortOn($subpages, 'getName', Curry_Array::SORT_REVERSE);
             break;
     }
     return new Curry_Twig_CollectionWrapper($subpages, array($this, 'twigGetPage'));
 }