You are here

function _forena_revert_reports in Forena Reports 8

Same name and namespace in other branches
  1. 7.5 forena.module \_forena_revert_reports()
  2. 7.4 forena.module \_forena_revert_reports()

Recursively , all report files from the source directory to the destination directory

Parameters

$src_dir Source directory to copy files from:

Return value

int Number of reports reverted.

1 call to _forena_revert_reports()
forena_sync_reports in ./forena.module
Enter description here ...

File

./forena.module, line 572

Code

function _forena_revert_reports($subdir = '') {
  static $cnt = 0;
  $cnt++;
  if ($cnt > 100) {
    return 0;
  }
  $i = 0;
  $src_dir = rtrim(FrxAPI::File()->dir, '/');
  if ($subdir) {
    $src_dir .= '/' . $subdir;
  }
  $d = dir($src_dir);
  while ($d && false !== ($rpt_file = $d
    ->read())) {
    $src_file = $d->path . '/' . $rpt_file;
    if (strpos($rpt_file, '.') !== 0 && is_file($src_file)) {
      $filename = $subdir ? "{$subdir}/{$rpt_file}" : $rpt_file;
      $i += FrxAPI::File()
        ->revert($filename);
    }
    else {
      if (strpos($rpt_file, '.') !== 0) {

        // Recurse into sub directory
        $dir = $subdir ? $subdir . '/' . $rpt_file : $rpt_file;
        $i += _forena_revert_reports($dir);
      }
    }
  }
  if ($d) {
    $d
      ->close();
  }
  return $i;
}