You are here

DocumentProperties.php in Loft Data Grids 7.2

Same filename and directory in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/DocumentProperties.php

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/DocumentProperties.php
View source
<?php

/**
 * PHPExcel
 *
 * Copyright (c) 2006 - 2014 PHPExcel
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * @category    PHPExcel
 * @package    PHPExcel
 * @copyright    Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
 * @version    ##VERSION##, ##DATE##
 */

/**
 * PHPExcel_DocumentProperties
 *
 * @category    PHPExcel
 * @package        PHPExcel
 * @copyright    Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
 */
class PHPExcel_DocumentProperties {

  /** constants */
  const PROPERTY_TYPE_BOOLEAN = 'b';
  const PROPERTY_TYPE_INTEGER = 'i';
  const PROPERTY_TYPE_FLOAT = 'f';
  const PROPERTY_TYPE_DATE = 'd';
  const PROPERTY_TYPE_STRING = 's';
  const PROPERTY_TYPE_UNKNOWN = 'u';

  /**
   * Creator
   *
   * @var string
   */
  private $_creator = 'Unknown Creator';

  /**
   * LastModifiedBy
   *
   * @var string
   */
  private $_lastModifiedBy;

  /**
   * Created
   *
   * @var datetime
   */
  private $_created;

  /**
   * Modified
   *
   * @var datetime
   */
  private $_modified;

  /**
   * Title
   *
   * @var string
   */
  private $_title = 'Untitled Spreadsheet';

  /**
   * Description
   *
   * @var string
   */
  private $_description = '';

  /**
   * Subject
   *
   * @var string
   */
  private $_subject = '';

  /**
   * Keywords
   *
   * @var string
   */
  private $_keywords = '';

  /**
   * Category
   *
   * @var string
   */
  private $_category = '';

  /**
   * Manager
   *
   * @var string
   */
  private $_manager = '';

  /**
   * Company
   *
   * @var string
   */
  private $_company = 'Microsoft Corporation';

  /**
   * Custom Properties
   *
   * @var string
   */
  private $_customProperties = array();

  /**
   * Create a new PHPExcel_DocumentProperties
   */
  public function __construct() {

    // Initialise values
    $this->_lastModifiedBy = $this->_creator;
    $this->_created = time();
    $this->_modified = time();
  }

  /**
   * Get Creator
   *
   * @return string
   */
  public function getCreator() {
    return $this->_creator;
  }

  /**
   * Set Creator
   *
   * @param string $pValue
   * @return PHPExcel_DocumentProperties
   */
  public function setCreator($pValue = '') {
    $this->_creator = $pValue;
    return $this;
  }

  /**
   * Get Last Modified By
   *
   * @return string
   */
  public function getLastModifiedBy() {
    return $this->_lastModifiedBy;
  }

  /**
   * Set Last Modified By
   *
   * @param string $pValue
   * @return PHPExcel_DocumentProperties
   */
  public function setLastModifiedBy($pValue = '') {
    $this->_lastModifiedBy = $pValue;
    return $this;
  }

  /**
   * Get Created
   *
   * @return datetime
   */
  public function getCreated() {
    return $this->_created;
  }

  /**
   * Set Created
   *
   * @param datetime $pValue
   * @return PHPExcel_DocumentProperties
   */
  public function setCreated($pValue = null) {
    if ($pValue === NULL) {
      $pValue = time();
    }
    elseif (is_string($pValue)) {
      if (is_numeric($pValue)) {
        $pValue = intval($pValue);
      }
      else {
        $pValue = strtotime($pValue);
      }
    }
    $this->_created = $pValue;
    return $this;
  }

  /**
   * Get Modified
   *
   * @return datetime
   */
  public function getModified() {
    return $this->_modified;
  }

  /**
   * Set Modified
   *
   * @param datetime $pValue
   * @return PHPExcel_DocumentProperties
   */
  public function setModified($pValue = null) {
    if ($pValue === NULL) {
      $pValue = time();
    }
    elseif (is_string($pValue)) {
      if (is_numeric($pValue)) {
        $pValue = intval($pValue);
      }
      else {
        $pValue = strtotime($pValue);
      }
    }
    $this->_modified = $pValue;
    return $this;
  }

  /**
   * Get Title
   *
   * @return string
   */
  public function getTitle() {
    return $this->_title;
  }

  /**
   * Set Title
   *
   * @param string $pValue
   * @return PHPExcel_DocumentProperties
   */
  public function setTitle($pValue = '') {
    $this->_title = $pValue;
    return $this;
  }

  /**
   * Get Description
   *
   * @return string
   */
  public function getDescription() {
    return $this->_description;
  }

  /**
   * Set Description
   *
   * @param string $pValue
   * @return PHPExcel_DocumentProperties
   */
  public function setDescription($pValue = '') {
    $this->_description = $pValue;
    return $this;
  }

  /**
   * Get Subject
   *
   * @return string
   */
  public function getSubject() {
    return $this->_subject;
  }

  /**
   * Set Subject
   *
   * @param string $pValue
   * @return PHPExcel_DocumentProperties
   */
  public function setSubject($pValue = '') {
    $this->_subject = $pValue;
    return $this;
  }

  /**
   * Get Keywords
   *
   * @return string
   */
  public function getKeywords() {
    return $this->_keywords;
  }

  /**
   * Set Keywords
   *
   * @param string $pValue
   * @return PHPExcel_DocumentProperties
   */
  public function setKeywords($pValue = '') {
    $this->_keywords = $pValue;
    return $this;
  }

  /**
   * Get Category
   *
   * @return string
   */
  public function getCategory() {
    return $this->_category;
  }

  /**
   * Set Category
   *
   * @param string $pValue
   * @return PHPExcel_DocumentProperties
   */
  public function setCategory($pValue = '') {
    $this->_category = $pValue;
    return $this;
  }

  /**
   * Get Company
   *
   * @return string
   */
  public function getCompany() {
    return $this->_company;
  }

  /**
   * Set Company
   *
   * @param string $pValue
   * @return PHPExcel_DocumentProperties
   */
  public function setCompany($pValue = '') {
    $this->_company = $pValue;
    return $this;
  }

  /**
   * Get Manager
   *
   * @return string
   */
  public function getManager() {
    return $this->_manager;
  }

  /**
   * Set Manager
   *
   * @param string $pValue
   * @return PHPExcel_DocumentProperties
   */
  public function setManager($pValue = '') {
    $this->_manager = $pValue;
    return $this;
  }

  /**
   * Get a List of Custom Property Names
   *
   * @return array of string
   */
  public function getCustomProperties() {
    return array_keys($this->_customProperties);
  }

  /**
   * Check if a Custom Property is defined
   *
   * @param string $propertyName
   * @return boolean
   */
  public function isCustomPropertySet($propertyName) {
    return isset($this->_customProperties[$propertyName]);
  }

  /**
   * Get a Custom Property Value
   *
   * @param string $propertyName
   * @return string
   */
  public function getCustomPropertyValue($propertyName) {
    if (isset($this->_customProperties[$propertyName])) {
      return $this->_customProperties[$propertyName]['value'];
    }
  }

  /**
   * Get a Custom Property Type
   *
   * @param string $propertyName
   * @return string
   */
  public function getCustomPropertyType($propertyName) {
    if (isset($this->_customProperties[$propertyName])) {
      return $this->_customProperties[$propertyName]['type'];
    }
  }

  /**
   * Set a Custom Property
   *
   * @param string $propertyName
   * @param mixed $propertyValue
   * @param string $propertyType
   * 	 'i'    : Integer
   *   'f' : Floating Point
   *   's' : String
   *   'd' : Date/Time
   *   'b' : Boolean
   * @return PHPExcel_DocumentProperties
   */
  public function setCustomProperty($propertyName, $propertyValue = '', $propertyType = NULL) {
    if ($propertyType === NULL || !in_array($propertyType, array(
      self::PROPERTY_TYPE_INTEGER,
      self::PROPERTY_TYPE_FLOAT,
      self::PROPERTY_TYPE_STRING,
      self::PROPERTY_TYPE_DATE,
      self::PROPERTY_TYPE_BOOLEAN,
    ))) {
      if ($propertyValue === NULL) {
        $propertyType = self::PROPERTY_TYPE_STRING;
      }
      elseif (is_float($propertyValue)) {
        $propertyType = self::PROPERTY_TYPE_FLOAT;
      }
      elseif (is_int($propertyValue)) {
        $propertyType = self::PROPERTY_TYPE_INTEGER;
      }
      elseif (is_bool($propertyValue)) {
        $propertyType = self::PROPERTY_TYPE_BOOLEAN;
      }
      else {
        $propertyType = self::PROPERTY_TYPE_STRING;
      }
    }
    $this->_customProperties[$propertyName] = array(
      'value' => $propertyValue,
      'type' => $propertyType,
    );
    return $this;
  }

  /**
   * Implement PHP __clone to create a deep clone, not just a shallow copy.
   */
  public function __clone() {
    $vars = get_object_vars($this);
    foreach ($vars as $key => $value) {
      if (is_object($value)) {
        $this->{$key} = clone $value;
      }
      else {
        $this->{$key} = $value;
      }
    }
  }
  public static function convertProperty($propertyValue, $propertyType) {
    switch ($propertyType) {
      case 'empty':

        //    Empty
        return '';
        break;
      case 'null':

        //    Null
        return NULL;
        break;
      case 'i1':

      //    1-Byte Signed Integer
      case 'i2':

      //    2-Byte Signed Integer
      case 'i4':

      //    4-Byte Signed Integer
      case 'i8':

      //    8-Byte Signed Integer
      case 'int':

        //    Integer
        return (int) $propertyValue;
        break;
      case 'ui1':

      //    1-Byte Unsigned Integer
      case 'ui2':

      //    2-Byte Unsigned Integer
      case 'ui4':

      //    4-Byte Unsigned Integer
      case 'ui8':

      //    8-Byte Unsigned Integer
      case 'uint':

        //    Unsigned Integer
        return abs((int) $propertyValue);
        break;
      case 'r4':

      //    4-Byte Real Number
      case 'r8':

      //    8-Byte Real Number
      case 'decimal':

        //    Decimal
        return (double) $propertyValue;
        break;
      case 'lpstr':

      //    LPSTR
      case 'lpwstr':

      //    LPWSTR
      case 'bstr':

        //    Basic String
        return $propertyValue;
        break;
      case 'date':

      //    Date and Time
      case 'filetime':

        //    File Time
        return strtotime($propertyValue);
        break;
      case 'bool':

        //    Boolean
        return $propertyValue == 'true' ? True : False;
        break;
      case 'cy':

      //    Currency
      case 'error':

      //    Error Status Code
      case 'vector':

      //    Vector
      case 'array':

      //    Array
      case 'blob':

      //    Binary Blob
      case 'oblob':

      //    Binary Blob Object
      case 'stream':

      //    Binary Stream
      case 'ostream':

      //    Binary Stream Object
      case 'storage':

      //    Binary Storage
      case 'ostorage':

      //    Binary Storage Object
      case 'vstream':

      //    Binary Versioned Stream
      case 'clsid':

      //    Class ID
      case 'cf':

        //    Clipboard Data
        return $propertyValue;
        break;
    }
    return $propertyValue;
  }
  public static function convertPropertyType($propertyType) {
    switch ($propertyType) {
      case 'i1':

      //    1-Byte Signed Integer
      case 'i2':

      //    2-Byte Signed Integer
      case 'i4':

      //    4-Byte Signed Integer
      case 'i8':

      //    8-Byte Signed Integer
      case 'int':

      //    Integer
      case 'ui1':

      //    1-Byte Unsigned Integer
      case 'ui2':

      //    2-Byte Unsigned Integer
      case 'ui4':

      //    4-Byte Unsigned Integer
      case 'ui8':

      //    8-Byte Unsigned Integer
      case 'uint':

        //    Unsigned Integer
        return self::PROPERTY_TYPE_INTEGER;
        break;
      case 'r4':

      //    4-Byte Real Number
      case 'r8':

      //    8-Byte Real Number
      case 'decimal':

        //    Decimal
        return self::PROPERTY_TYPE_FLOAT;
        break;
      case 'empty':

      //    Empty
      case 'null':

      //    Null
      case 'lpstr':

      //    LPSTR
      case 'lpwstr':

      //    LPWSTR
      case 'bstr':

        //    Basic String
        return self::PROPERTY_TYPE_STRING;
        break;
      case 'date':

      //    Date and Time
      case 'filetime':

        //    File Time
        return self::PROPERTY_TYPE_DATE;
        break;
      case 'bool':

        //    Boolean
        return self::PROPERTY_TYPE_BOOLEAN;
        break;
      case 'cy':

      //    Currency
      case 'error':

      //    Error Status Code
      case 'vector':

      //    Vector
      case 'array':

      //    Array
      case 'blob':

      //    Binary Blob
      case 'oblob':

      //    Binary Blob Object
      case 'stream':

      //    Binary Stream
      case 'ostream':

      //    Binary Stream Object
      case 'storage':

      //    Binary Storage
      case 'ostorage':

      //    Binary Storage Object
      case 'vstream':

      //    Binary Versioned Stream
      case 'clsid':

      //    Class ID
      case 'cf':

        //    Clipboard Data
        return self::PROPERTY_TYPE_UNKNOWN;
        break;
    }
    return self::PROPERTY_TYPE_UNKNOWN;
  }

}

Classes

Namesort descending Description
PHPExcel_DocumentProperties PHPExcel_DocumentProperties