You are here

function PclZip::privDirCheck in Quiz 6.6

Same name and namespace in other branches
  1. 6.5 includes/moodle/lib/pclzip/pclzip.lib.php \PclZip::privDirCheck()
1 call to PclZip::privDirCheck()
PclZip::privExtractFile in includes/moodle/lib/pclzip/pclzip.lib.php

File

includes/moodle/lib/pclzip/pclzip.lib.php, line 4936

Class

PclZip

Code

function privDirCheck($p_dir, $p_is_dir = false) {
  $v_result = 1;

  //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDirCheck", "entry='$p_dir', is_dir='".($p_is_dir?"true":"false")."'");

  // ----- Remove the final '/'
  if ($p_is_dir && substr($p_dir, -1) == '/') {
    $p_dir = substr($p_dir, 0, strlen($p_dir) - 1);
  }

  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Looking for entry '$p_dir'");

  // ----- Check the directory availability
  if (is_dir($p_dir) || $p_dir == "") {

    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, "'$p_dir' is a directory");
    return 1;
  }

  // ----- Extract parent directory
  $p_parent_dir = dirname($p_dir);

  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Parent directory is '$p_parent_dir'");

  // ----- Just a check
  if ($p_parent_dir != $p_dir) {

    // ----- Look for parent directory
    if ($p_parent_dir != "") {
      if (($v_result = $this
        ->privDirCheck($p_parent_dir)) != 1) {

        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
        return $v_result;
      }
    }
  }

  // ----- Create the directory

  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Create directory '$p_dir'");
  if (!@mkdir($p_dir, 0777)) {

    // ----- Error log
    PclZip::privErrorLog(PCLZIP_ERR_DIR_CREATE_FAIL, "Unable to create directory '{$p_dir}'");

    // ----- Return

    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
    return PclZip::errorCode();
  }

  // ----- Return

  //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result, "Directory '$p_dir' created");
  return $v_result;
}