Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2388 jpm 1
<?php
2
/**
3
 * PHPExcel
4
 *
5
 * Copyright (c) 2006 - 2013 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 - 2013 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_Worksheet_Drawing
31
 *
32
 * @category   PHPExcel
33
 * @package    PHPExcel_Worksheet_Drawing
34
 * @copyright  Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)
35
 */
36
class 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 	PHPExcel_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 PHPExcel_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
}