You are here

function PclZip::privFileDescrParseAtt in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php \PclZip::privFileDescrParseAtt()
2 calls to PclZip::privFileDescrParseAtt()
PclZip::add in vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php
PclZip::create in vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php, line 1870

Class

PclZip

Code

function privFileDescrParseAtt(&$p_file_list, &$p_filedescr, $v_options, $v_requested_options = false) {
  $v_result = 1;

  // ----- For each file in the list check the attributes
  foreach ($p_file_list as $v_key => $v_value) {

    // ----- Check if the option is supported
    if (!isset($v_requested_options[$v_key])) {

      // ----- Error log
      PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid file attribute '" . $v_key . "' for this file");

      // ----- Return
      return PclZip::errorCode();
    }

    // ----- Look for attribute
    switch ($v_key) {
      case PCLZIP_ATT_FILE_NAME:
        if (!is_string($v_value)) {
          PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type " . gettype($v_value) . ". String expected for attribute '" . PclZipUtilOptionText($v_key) . "'");
          return PclZip::errorCode();
        }
        $p_filedescr['filename'] = PclZipUtilPathReduction($v_value);
        if ($p_filedescr['filename'] == '') {
          PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty filename for attribute '" . PclZipUtilOptionText($v_key) . "'");
          return PclZip::errorCode();
        }
        break;
      case PCLZIP_ATT_FILE_NEW_SHORT_NAME:
        if (!is_string($v_value)) {
          PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type " . gettype($v_value) . ". String expected for attribute '" . PclZipUtilOptionText($v_key) . "'");
          return PclZip::errorCode();
        }
        $p_filedescr['new_short_name'] = PclZipUtilPathReduction($v_value);
        if ($p_filedescr['new_short_name'] == '') {
          PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty short filename for attribute '" . PclZipUtilOptionText($v_key) . "'");
          return PclZip::errorCode();
        }
        break;
      case PCLZIP_ATT_FILE_NEW_FULL_NAME:
        if (!is_string($v_value)) {
          PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type " . gettype($v_value) . ". String expected for attribute '" . PclZipUtilOptionText($v_key) . "'");
          return PclZip::errorCode();
        }
        $p_filedescr['new_full_name'] = PclZipUtilPathReduction($v_value);
        if ($p_filedescr['new_full_name'] == '') {
          PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty full filename for attribute '" . PclZipUtilOptionText($v_key) . "'");
          return PclZip::errorCode();
        }
        break;

      // ----- Look for options that takes a string
      case PCLZIP_ATT_FILE_COMMENT:
        if (!is_string($v_value)) {
          PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type " . gettype($v_value) . ". String expected for attribute '" . PclZipUtilOptionText($v_key) . "'");
          return PclZip::errorCode();
        }
        $p_filedescr['comment'] = $v_value;
        break;
      case PCLZIP_ATT_FILE_MTIME:
        if (!is_integer($v_value)) {
          PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type " . gettype($v_value) . ". Integer expected for attribute '" . PclZipUtilOptionText($v_key) . "'");
          return PclZip::errorCode();
        }
        $p_filedescr['mtime'] = $v_value;
        break;
      case PCLZIP_ATT_FILE_CONTENT:
        $p_filedescr['content'] = $v_value;
        break;
      default:

        // ----- Error log
        PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Unknown parameter '" . $v_key . "'");

        // ----- Return
        return PclZip::errorCode();
    }

    // ----- Look for mandatory options
    if ($v_requested_options !== false) {
      for ($key = reset($v_requested_options); $key = key($v_requested_options); $key = next($v_requested_options)) {

        // ----- Look for mandatory option
        if ($v_requested_options[$key] == 'mandatory') {

          // ----- Look if present
          if (!isset($p_file_list[$key])) {
            PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing mandatory parameter " . PclZipUtilOptionText($key) . "(" . $key . ")");
            return PclZip::errorCode();
          }
        }
      }
    }

    // end foreach
  }

  // ----- Return
  return $v_result;
}