Ejemplo n.º 1
0
 /**
  * Creates a tree of a flat array of {@link Folder}s or {@link SimpleFolder}s.
  * @param array $folders An array of {@link Folder}s or {@link SimpleFolder}s. May be mixed.
  * @throws FolderException Thrown if an error occurs while building the folder tree.
  * @author Björn Hjortsten
  * @return array An array of top level {@link Folder}s.
  */
 public static function createTree(array $folders)
 {
     usort($folders, array('Kaigan\\QBank2\\API\\Model\\SimpleFolder', 'compareByTree'));
     $tree = array();
     $shortestTree = Folder::getShortestTree($folders);
     foreach ($folders as $folder) {
         if ($folder instanceof SimpleFolder) {
             $folder = Folder::createFromSimpleFolder($folder);
         }
         try {
             Folder::addToTree($tree, $folder, $shortestTree);
         } catch (FolderException $fe) {
             trigger_error($fe->getMessage(), E_USER_WARNING);
         }
     }
     return $tree;
 }