You are here

private function FMDiskFileSystem::getDirs__fill in N1ED - Visual editor as CKEditor plugin with Bootstrap support 8.2

1 call to FMDiskFileSystem::getDirs__fill()
FMDiskFileSystem::getDirs in src/Flmngr/FlmngrServer/fs/FMDiskFileSystem.php
Gets directory list.

File

src/Flmngr/FlmngrServer/fs/FMDiskFileSystem.php, line 42

Class

FMDiskFileSystem
Implements file system interface. Provides an interface to access file system (local disc FS). This is the correct module to replace if you want to implement some custom file system support (i. e. network file system like Amazon S3).

Namespace

Drupal\n1ed\Flmngr\FlmngrServer\fs

Code

private function getDirs__fill(&$dirs, $fDir, $path) {
  $files = scandir($fDir);
  if ($files === FALSE) {
    throw new MessageException(FMMessage::createMessage(FMMessage::FM_UNABLE_TO_LIST_CHILDREN_IN_DIRECTORY));
  }
  $dirsCount = 0;
  $filesCount = 0;
  for ($i = 0; $i < count($files); $i++) {
    $file = $files[$i];
    if ($file === '.' || $file === '..') {
      continue;
    }
    if (is_file($fDir . '/' . $file)) {
      $filesCount++;
    }
    else {
      if (is_dir($fDir . '/' . $file)) {
        $dirsCount++;
      }
    }
  }
  $i = strrpos($fDir, '/');
  if ($i !== FALSE) {
    $dirName = substr($fDir, $i + 1);
  }
  else {
    $dirName = $fDir;
  }
  $dir = new FMDir($dirName, $path, $filesCount, $dirsCount);
  $dirs[] = $dir;
  for ($i = 0; $i < count($files); $i++) {
    if ($files[$i] !== '.' && $files[$i] !== '..') {
      if (is_dir($fDir . '/' . $files[$i])) {
        $this
          ->getDirs__fill($dirs, $fDir . '/' . $files[$i], $path . (strlen($path) > 0 ? "/" : "") . $dirName);
      }
    }
  }
}