PageRenderTime 23ms CodeModel.GetById 12ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/PHPExcel/Worksheet/Drawing.php

https://bitbucket.org/nfredricks/wp-employee-time
PHP | 148 lines | 57 code | 12 blank | 79 comment | 10 complexity | f8f08282e7339c3acf269e475eab1f4a MD5 | raw file
  1<?php
  2/**
  3 * PHPExcel
  4 *
  5 * Copyright (c) 2006 - 2012 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_Worksheet_Drawing
 23 * @copyright  Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
 24 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
 25 * @version    1.7.8, 2012-10-12
 26 */
 27
 28
 29/**
 30 * PHPExcel_Worksheet_Drawing
 31 *
 32 * @category   PHPExcel
 33 * @package    PHPExcel_Worksheet_Drawing
 34 * @copyright  Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
 35 */
 36class PHPExcel_Worksheet_Drawing extends PHPExcel_Worksheet_BaseDrawing implements PHPExcel_IComparable
 37{
 38	/**
 39	 * Path
 40	 *
 41	 * @var string
 42	 */
 43	private $_path;
 44
 45    /**
 46     * Create a new PHPExcel_Worksheet_Drawing
 47     */
 48    public function __construct()
 49    {
 50    	// Initialise values
 51    	$this->_path				= '';
 52
 53    	// Initialize parent
 54    	parent::__construct();
 55    }
 56
 57    /**
 58     * Get Filename
 59     *
 60     * @return string
 61     */
 62    public function getFilename() {
 63    	return basename($this->_path);
 64    }
 65
 66    /**
 67     * Get indexed filename (using image index)
 68     *
 69     * @return string
 70     */
 71    public function getIndexedFilename() {
 72    	$fileName = $this->getFilename();
 73    	$fileName = str_replace(' ', '_', $fileName);
 74    	return str_replace('.' . $this->getExtension(), '', $fileName) . $this->getImageIndex() . '.' . $this->getExtension();
 75    }
 76
 77    /**
 78     * Get Extension
 79     *
 80     * @return string
 81     */
 82    public function getExtension() {
 83    	$exploded = explode(".", basename($this->_path));
 84    	return $exploded[count($exploded) - 1];
 85    }
 86
 87    /**
 88     * Get Path
 89     *
 90     * @return string
 91     */
 92    public function getPath() {
 93    	return $this->_path;
 94    }
 95
 96    /**
 97     * Set Path
 98     *
 99     * @param 	string 		$pValue			File path
100     * @param 	boolean		$pVerifyFile	Verify file
101     * @throws 	Exception
102     * @return PHPExcel_Worksheet_Drawing
103     */
104    public function setPath($pValue = '', $pVerifyFile = true) {
105    	if ($pVerifyFile) {
106	    	if (file_exists($pValue)) {
107	    		$this->_path = $pValue;
108
109	    		if ($this->_width == 0 && $this->_height == 0) {
110	    			// Get width/height
111	    			list($this->_width, $this->_height) = getimagesize($pValue);
112	    		}
113	    	} else {
114	    		throw new Exception("File $pValue not found!");
115	    	}
116    	} else {
117    		$this->_path = $pValue;
118    	}
119    	return $this;
120    }
121
122	/**
123	 * Get hash code
124	 *
125	 * @return string	Hash code
126	 */
127	public function getHashCode() {
128    	return md5(
129    		  $this->_path
130    		. parent::getHashCode()
131    		. __CLASS__
132    	);
133    }
134
135	/**
136	 * Implement PHP __clone to create a deep clone, not just a shallow copy.
137	 */
138	public function __clone() {
139		$vars = get_object_vars($this);
140		foreach ($vars as $key => $value) {
141			if (is_object($value)) {
142				$this->$key = clone $value;
143			} else {
144				$this->$key = $value;
145			}
146		}
147	}
148}