[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * PHPExcel 4 * 5 * Copyright (c) 2006 - 2014 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 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) 24 * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL 25 * @version ##VERSION##, ##DATE## 26 */ 27 28 29 /** 30 * PHPExcel_DocumentProperties 31 * 32 * @category PHPExcel 33 * @package PHPExcel 34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) 35 */ 36 class PHPExcel_DocumentProperties 37 { 38 /** constants */ 39 const PROPERTY_TYPE_BOOLEAN = 'b'; 40 const PROPERTY_TYPE_INTEGER = 'i'; 41 const PROPERTY_TYPE_FLOAT = 'f'; 42 const PROPERTY_TYPE_DATE = 'd'; 43 const PROPERTY_TYPE_STRING = 's'; 44 const PROPERTY_TYPE_UNKNOWN = 'u'; 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 ($pValue === NULL) { 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 ($pValue === NULL) { 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 (($propertyType === NULL) || (!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 ($propertyValue === NULL) { 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[$propertyName] = array('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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |