/**
  * Create an HTML list from a folder tree
  *
  * @author CRP Henri Tudor - TAO Team - {@link http://www.tao.lu}
  * @param string $dir
  * @param string $dataDir
  * @param mixed $open [optional]
  * @param boolean $recursive [optional]
  * @return string the list
  */
 private function createFolderList($dir, $dataDir, $open = false, $recursive = false)
 {
     if (!preg_match("/\\/\$/", $dir)) {
         $dir .= '/';
     }
     $buffer = '';
     if (file_exists($dir) && is_readable($dir)) {
         $files = scandir($dir);
         foreach ($files as $i => $file) {
             if (preg_match("/^\\./", $file)) {
                 unset($files[$i]);
             }
         }
         natcasesort($files);
         if (count($files) > 0) {
             if ($recursive) {
                 $buffer .= "<ul  class='jqueryFileTree' style='display: block;'>";
             } else {
                 $buffer .= "<ul class='jqueryFileTree' style='display: none;'>";
             }
             foreach ($files as $file) {
                 if (file_exists($dir . $file) && $file != '.' && $file != '..' && is_dir($dir . $file)) {
                     $tmpbuffer = '';
                     $status = 'collapsed';
                     if ($open !== false) {
                         if (filemanager_helpers_FileUtils::isFolder($open, str_replace(filemanager_helpers_FileUtils::getBasePath(), '', $dir . $file))) {
                             $tmpbuffer = $this->createFolderList($dir . $file, preg_replace("/\\/\$/", '', $dataDir) . '/' . preg_replace("/\\/\$/", '', $file) . '/', $open, true);
                             $status = 'expanded';
                         }
                     }
                     $buffer .= "<li class='directory {$status}'><a href='#' rel='" . htmlentities($dataDir . $file) . "/'>" . htmlentities($file) . "</a>{$tmpbuffer}</li>";
                 }
             }
             foreach ($files as $file) {
                 if (file_exists($dir . $file) && $file != '.' && $file != '..' && !is_dir($dir . $file)) {
                     $ext = preg_replace('/^.*\\./', '', $file);
                     $buffer .= "<li class='file ext_{$ext}'><a href='#' rel='" . htmlentities($dataDir . $file) . "'>" . htmlentities($file) . "</a></li>";
                 }
             }
             $buffer .= "</ul>";
         }
     }
     return $buffer;
 }