PHPExcel
[ class tree: PHPExcel ] [ index: PHPExcel ] [ all elements ]

Source for file DocumentProperties.php

Documentation is available at DocumentProperties.php

  1. <?php
  2. /**
  3.  *    PHPExcel
  4.  *
  5.  *    Copyright (c) 2006 - 2011 PHPExcel
  6.  *
  7.  *    This library is free software; you can redistribute it and/or
  8.  *    modify it under the terms of the GNU Lesser General Public
  9.  *    License as published by the Free Software Foundation; either
  10.  *    version 2.1 of the License, or (at your option) any later version.
  11.  *
  12.  *    This library is distributed in the hope that it will be useful,
  13.  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.  *    Lesser General Public License for more details.
  16.  *
  17.  *    You should have received a copy of the GNU Lesser General Public
  18.  *    License along with this library; if not, write to the Free Software
  19.  *    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  20.  *
  21.  *    @category    PHPExcel
  22.  *    @package    PHPExcel
  23.  *    @copyright    Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel)
  24.  *    @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
  25.  *    @version    1.7.6, 2011-02-27
  26.  */
  27.  
  28.  
  29. /**
  30.  * PHPExcel_DocumentProperties
  31.  *
  32.  * @category    PHPExcel
  33.  * @package        PHPExcel
  34.  * @copyright    Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel)
  35.  */
  36. {
  37.     /** constants */
  38.     const PROPERTY_TYPE_BOOLEAN        'b';
  39.     const PROPERTY_TYPE_INTEGER        'i';
  40.     const PROPERTY_TYPE_FLOAT        'f';
  41.     const PROPERTY_TYPE_DATE        'd';
  42.     const PROPERTY_TYPE_STRING        's';
  43.     const PROPERTY_TYPE_UNKNOWN        'u';
  44.  
  45.  
  46.     /**
  47.      * Creator
  48.      *
  49.      * @var    string 
  50.      */
  51.     private $_creator    'Unknown Creator';
  52.  
  53.     /**
  54.      * LastModifiedBy
  55.      *
  56.      * @var    string 
  57.      */
  58.     private $_lastModifiedBy;
  59.  
  60.     /**
  61.      * Created
  62.      *
  63.      * @var    datetime 
  64.      */
  65.     private $_created;
  66.  
  67.     /**
  68.      * Modified
  69.      *
  70.      * @var    datetime 
  71.      */
  72.     private $_modified;
  73.  
  74.     /**
  75.      * Title
  76.      *
  77.      * @var    string 
  78.      */
  79.     private $_title            'Untitled Spreadsheet';
  80.  
  81.     /**
  82.      * Description
  83.      *
  84.      * @var    string 
  85.      */
  86.     private $_description    '';
  87.  
  88.     /**
  89.      * Subject
  90.      *
  91.      * @var    string 
  92.      */
  93.     private $_subject        '';
  94.  
  95.     /**
  96.      * Keywords
  97.      *
  98.      * @var    string 
  99.      */
  100.     private $_keywords        '';
  101.  
  102.     /**
  103.      * Category
  104.      *
  105.      * @var    string 
  106.      */
  107.     private $_category        '';
  108.  
  109.     /**
  110.      * Manager
  111.      *
  112.      * @var    string 
  113.      */
  114.     private $_manager        '';
  115.  
  116.     /**
  117.      * Company
  118.      *
  119.      * @var    string 
  120.      */
  121.     private $_company        'Microsoft Corporation';
  122.  
  123.     /**
  124.      * Custom Properties
  125.      *
  126.      * @var    string 
  127.      */
  128.     private $_customProperties    array();
  129.  
  130.  
  131.     /**
  132.      * Create a new PHPExcel_DocumentProperties
  133.      */
  134.     public function __construct()
  135.     {
  136.         // Initialise values
  137.         $this->_lastModifiedBy    $this->_creator;
  138.         $this->_created        time();
  139.         $this->_modified    time();
  140.     }
  141.  
  142.     /**
  143.      * Get Creator
  144.      *
  145.      * @return    string 
  146.      */
  147.     public function getCreator({
  148.         return $this->_creator;
  149.     }
  150.  
  151.     /**
  152.      * Set Creator
  153.      *
  154.      * @param    string    $pValue 
  155.      * @return    PHPExcel_DocumentProperties 
  156.      */
  157.     public function setCreator($pValue ''{
  158.         $this->_creator $pValue;
  159.         return $this;
  160.     }
  161.  
  162.     /**
  163.      * Get Last Modified By
  164.      *
  165.      * @return    string 
  166.      */
  167.     public function getLastModifiedBy({
  168.         return $this->_lastModifiedBy;
  169.     }
  170.  
  171.     /**
  172.      * Set Last Modified By
  173.      *
  174.      * @param    string    $pValue 
  175.      * @return    PHPExcel_DocumentProperties 
  176.      */
  177.     public function setLastModifiedBy($pValue ''{
  178.         $this->_lastModifiedBy $pValue;
  179.         return $this;
  180.     }
  181.  
  182.     /**
  183.      * Get Created
  184.      *
  185.      * @return    datetime 
  186.      */
  187.     public function getCreated({
  188.         return $this->_created;
  189.     }
  190.  
  191.     /**
  192.      * Set Created
  193.      *
  194.      * @param    datetime    $pValue 
  195.      * @return    PHPExcel_DocumentProperties 
  196.      */
  197.     public function setCreated($pValue null{
  198.         if (is_null($pValue)) {
  199.             $pValue time();
  200.         elseif (is_string($pValue)) {
  201.             if (is_numeric($pValue)) {
  202.                 $pValue intval($pValue);
  203.             else {
  204.                 $pValue strtotime($pValue);
  205.             }
  206.         }
  207.  
  208.         $this->_created $pValue;
  209.         return $this;
  210.     }
  211.  
  212.     /**
  213.      * Get Modified
  214.      *
  215.      * @return    datetime 
  216.      */
  217.     public function getModified({
  218.         return $this->_modified;
  219.     }
  220.  
  221.     /**
  222.      * Set Modified
  223.      *
  224.      * @param    datetime    $pValue 
  225.      * @return    PHPExcel_DocumentProperties 
  226.      */
  227.     public function setModified($pValue null{
  228.         if (is_null($pValue)) {
  229.             $pValue time();
  230.         elseif (is_string($pValue)) {
  231.             if (is_numeric($pValue)) {
  232.                 $pValue intval($pValue);
  233.             else {
  234.                 $pValue strtotime($pValue);
  235.             }
  236.         }
  237.  
  238.         $this->_modified $pValue;
  239.         return $this;
  240.     }
  241.  
  242.     /**
  243.      * Get Title
  244.      *
  245.      * @return    string 
  246.      */
  247.     public function getTitle({
  248.         return $this->_title;
  249.     }
  250.  
  251.     /**
  252.      * Set Title
  253.      *
  254.      * @param    string    $pValue 
  255.      * @return    PHPExcel_DocumentProperties 
  256.      */
  257.     public function setTitle($pValue ''{
  258.         $this->_title $pValue;
  259.         return $this;
  260.     }
  261.  
  262.     /**
  263.      * Get Description
  264.      *
  265.      * @return    string 
  266.      */
  267.     public function getDescription({
  268.         return $this->_description;
  269.     }
  270.  
  271.     /**
  272.      * Set Description
  273.      *
  274.      * @param    string    $pValue 
  275.      * @return    PHPExcel_DocumentProperties 
  276.      */
  277.     public function setDescription($pValue ''{
  278.         $this->_description $pValue;
  279.         return $this;
  280.     }
  281.  
  282.     /**
  283.      * Get Subject
  284.      *
  285.      * @return    string 
  286.      */
  287.     public function getSubject({
  288.         return $this->_subject;
  289.     }
  290.  
  291.     /**
  292.      * Set Subject
  293.      *
  294.      * @param    string    $pValue 
  295.      * @return    PHPExcel_DocumentProperties 
  296.      */
  297.     public function setSubject($pValue ''{
  298.         $this->_subject $pValue;
  299.         return $this;
  300.     }
  301.  
  302.     /**
  303.      * Get Keywords
  304.      *
  305.      * @return    string 
  306.      */
  307.     public function getKeywords({
  308.         return $this->_keywords;
  309.     }
  310.  
  311.     /**
  312.      * Set Keywords
  313.      *
  314.      * @param    string    $pValue 
  315.      * @return    PHPExcel_DocumentProperties 
  316.      */
  317.     public function setKeywords($pValue ''{
  318.         $this->_keywords $pValue;
  319.         return $this;
  320.     }
  321.  
  322.     /**
  323.      * Get Category
  324.      *
  325.      * @return    string 
  326.      */
  327.     public function getCategory({
  328.         return $this->_category;
  329.     }
  330.  
  331.     /**
  332.      * Set Category
  333.      *
  334.      * @param    string    $pValue 
  335.      * @return    PHPExcel_DocumentProperties 
  336.      */
  337.     public function setCategory($pValue ''{
  338.         $this->_category $pValue;
  339.         return $this;
  340.     }
  341.  
  342.     /**
  343.      * Get Company
  344.      *
  345.      * @return    string 
  346.      */
  347.     public function getCompany({
  348.         return $this->_company;
  349.     }
  350.  
  351.     /**
  352.      * Set Company
  353.      *
  354.      * @param    string    $pValue 
  355.      * @return    PHPExcel_DocumentProperties 
  356.      */
  357.     public function setCompany($pValue ''{
  358.         $this->_company $pValue;
  359.         return $this;
  360.     }
  361.  
  362.     /**
  363.      * Get Manager
  364.      *
  365.      * @return    string 
  366.      */
  367.     public function getManager({
  368.         return $this->_manager;
  369.     }
  370.  
  371.     /**
  372.      * Set Manager
  373.      *
  374.      * @param    string    $pValue 
  375.      * @return    PHPExcel_DocumentProperties 
  376.      */
  377.     public function setManager($pValue ''{
  378.         $this->_manager $pValue;
  379.         return $this;
  380.     }
  381.  
  382.     /**
  383.      * Get a List of Custom Property Names
  384.      *
  385.      * @return    array of string
  386.      */
  387.     public function getCustomProperties({
  388.         return array_keys($this->_customProperties);
  389.     }
  390.  
  391.     /**
  392.      * Check if a Custom Property is defined
  393.      *
  394.      * @param    string    $propertyName 
  395.      * @return    boolean 
  396.      */
  397.     public function isCustomPropertySet($propertyName{
  398.         return isset($this->_customProperties[$propertyName]);
  399.     }
  400.  
  401.     /**
  402.      * Get a Custom Property Value
  403.      *
  404.      * @param    string    $propertyName 
  405.      * @return    string 
  406.      */
  407.     public function getCustomPropertyValue($propertyName{
  408.         if (isset($this->_customProperties[$propertyName])) {
  409.             return $this->_customProperties[$propertyName]['value'];
  410.         }
  411.  
  412.     }
  413.  
  414.     /**
  415.      * Get a Custom Property Type
  416.      *
  417.      * @param    string    $propertyName 
  418.      * @return    string 
  419.      */
  420.     public function getCustomPropertyType($propertyName{
  421.         if (isset($this->_customProperties[$propertyName])) {
  422.             return $this->_customProperties[$propertyName]['type'];
  423.         }
  424.  
  425.     }
  426.  
  427.     /**
  428.      * Set a Custom Property
  429.      *
  430.      * @param    string    $propertyName 
  431.      * @param    mixed    $propertyValue 
  432.      * @param    string    $propertyType 
  433.      *                         'i'    : Integer
  434.      *                         'f' : Floating Point
  435.      *                         's' : String
  436.      *                         'd' : Date/Time
  437.      *                         'b' : Boolean
  438.      * @return    PHPExcel_DocumentProperties 
  439.      */
  440.     public function setCustomProperty($propertyName,$propertyValue='',$propertyType=NULL{
  441.         if ((is_null($propertyType)) || (!in_array($propertyType,array(self::PROPERTY_TYPE_INTEGER,
  442.                                                                        self::PROPERTY_TYPE_FLOAT,
  443.                                                                        self::PROPERTY_TYPE_STRING,
  444.                                                                        self::PROPERTY_TYPE_DATE,
  445.                                                                        self::PROPERTY_TYPE_BOOLEAN)))) {
  446.             if (is_null($propertyValue)) {
  447.                 $propertyType self::PROPERTY_TYPE_STRING;
  448.             elseif (is_float($propertyValue)) {
  449.                 $propertyType self::PROPERTY_TYPE_FLOAT;
  450.             elseif(is_int($propertyValue)) {
  451.                 $propertyType self::PROPERTY_TYPE_INTEGER;
  452.             elseif (is_bool($propertyValue)) {
  453.                 $propertyType self::PROPERTY_TYPE_BOOLEAN;
  454.             else {
  455.                 $propertyType self::PROPERTY_TYPE_STRING;
  456.             }
  457.         }
  458.  
  459.         $this->_customProperties[$propertyNamearray('value' => $propertyValue'type' => $propertyType);
  460.         return $this;
  461.     }
  462.  
  463.     /**
  464.      * Implement PHP __clone to create a deep clone, not just a shallow copy.
  465.      */
  466.     public function __clone({
  467.         $vars get_object_vars($this);
  468.         foreach ($vars as $key => $value{
  469.             if (is_object($value)) {
  470.                 $this->$key clone $value;
  471.             else {
  472.                 $this->$key $value;
  473.             }
  474.         }
  475.     }
  476.  
  477.     public static function convertProperty($propertyValue,$propertyType{
  478.         switch ($propertyType{
  479.             case 'empty'    :    //    Empty
  480.                 return '';
  481.                 break;
  482.             case 'null'        :    //    Null
  483.                 return NULL;
  484.                 break;
  485.             case 'i1'        :    //    1-Byte Signed Integer
  486.             case 'i2'        :    //    2-Byte Signed Integer
  487.             case 'i4'        :    //    4-Byte Signed Integer
  488.             case 'i8'        :    //    8-Byte Signed Integer
  489.             case 'int'        :    //    Integer
  490.                 return (int) $propertyValue;
  491.                 break;
  492.             case 'ui1'        :    //    1-Byte Unsigned Integer
  493.             case 'ui2'        :    //    2-Byte Unsigned Integer
  494.             case 'ui4'        :    //    4-Byte Unsigned Integer
  495.             case 'ui8'        :    //    8-Byte Unsigned Integer
  496.             case 'uint'        :    //    Unsigned Integer
  497.                 return abs((int) $propertyValue);
  498.                 break;
  499.             case 'r4'        :    //    4-Byte Real Number
  500.             case 'r8'        :    //    8-Byte Real Number
  501.             case 'decimal'    :    //    Decimal
  502.                 return (float) $propertyValue;
  503.                 break;
  504.             case 'lpstr'    :    //    LPSTR
  505.             case 'lpwstr'    :    //    LPWSTR
  506.             case 'bstr'        :    //    Basic String
  507.                 return $propertyValue;
  508.                 break;
  509.             case 'date'        :    //    Date and Time
  510.             case 'filetime'    :    //    File Time
  511.                 return strtotime($propertyValue);
  512.                 break;
  513.             case 'bool'        :    //    Boolean
  514.                 return ($propertyValue == 'true'True False;
  515.                 break;
  516.             case 'cy'        :    //    Currency
  517.             case 'error'    :    //    Error Status Code
  518.             case 'vector'    :    //    Vector
  519.             case 'array'    :    //    Array
  520.             case 'blob'        :    //    Binary Blob
  521.             case 'oblob'    :    //    Binary Blob Object
  522.             case 'stream'    :    //    Binary Stream
  523.             case 'ostream'    :    //    Binary Stream Object
  524.             case 'storage'    :    //    Binary Storage
  525.             case 'ostorage'    :    //    Binary Storage Object
  526.             case 'vstream'    :    //    Binary Versioned Stream
  527.             case 'clsid'    :    //    Class ID
  528.             case 'cf'        :    //    Clipboard Data
  529.                 return $propertyValue;
  530.                 break;
  531.         }
  532.         return $propertyValue;
  533.     }
  534.  
  535.     public static function convertPropertyType($propertyType{
  536.         switch ($propertyType{
  537.             case 'i1'        :    //    1-Byte Signed Integer
  538.             case 'i2'        :    //    2-Byte Signed Integer
  539.             case 'i4'        :    //    4-Byte Signed Integer
  540.             case 'i8'        :    //    8-Byte Signed Integer
  541.             case 'int'        :    //    Integer
  542.             case 'ui1'        :    //    1-Byte Unsigned Integer
  543.             case 'ui2'        :    //    2-Byte Unsigned Integer
  544.             case 'ui4'        :    //    4-Byte Unsigned Integer
  545.             case 'ui8'        :    //    8-Byte Unsigned Integer
  546.             case 'uint'        :    //    Unsigned Integer
  547.                 return self::PROPERTY_TYPE_INTEGER;
  548.                 break;
  549.             case 'r4'        :    //    4-Byte Real Number
  550.             case 'r8'        :    //    8-Byte Real Number
  551.             case 'decimal'    :    //    Decimal
  552.                 return self::PROPERTY_TYPE_FLOAT;
  553.                 break;
  554.             case 'empty'    :    //    Empty
  555.             case 'null'        :    //    Null
  556.             case 'lpstr'    :    //    LPSTR
  557.             case 'lpwstr'    :    //    LPWSTR
  558.             case 'bstr'        :    //    Basic String
  559.                 return self::PROPERTY_TYPE_STRING;
  560.                 break;
  561.             case 'date'        :    //    Date and Time
  562.             case 'filetime'    :    //    File Time
  563.                 return self::PROPERTY_TYPE_DATE;
  564.                 break;
  565.             case 'bool'        :    //    Boolean
  566.                 return self::PROPERTY_TYPE_BOOLEAN;
  567.                 break;
  568.             case 'cy'        :    //    Currency
  569.             case 'error'    :    //    Error Status Code
  570.             case 'vector'    :    //    Vector
  571.             case 'array'    :    //    Array
  572.             case 'blob'        :    //    Binary Blob
  573.             case 'oblob'    :    //    Binary Blob Object
  574.             case 'stream'    :    //    Binary Stream
  575.             case 'ostream'    :    //    Binary Stream Object
  576.             case 'storage'    :    //    Binary Storage
  577.             case 'ostorage'    :    //    Binary Storage Object
  578.             case 'vstream'    :    //    Binary Versioned Stream
  579.             case 'clsid'    :    //    Class ID
  580.             case 'cf'        :    //    Clipboard Data
  581.                 return self::PROPERTY_TYPE_UNKNOWN;
  582.                 break;
  583.         }
  584.         return self::PROPERTY_TYPE_UNKNOWN;
  585.     }
  586.  
  587. }

Documentation generated on Sun, 27 Feb 2011 16:30:13 -0800 by phpDocumentor 1.4.3