ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
HeaderFooterDrawing.php
Go to the documentation of this file.
1<?php
37{
43 private $_path;
44
50 protected $_name;
51
57 protected $_offsetX;
58
64 protected $_offsetY;
65
71 protected $_width;
72
78 protected $_height;
79
86
90 public function __construct()
91 {
92 // Initialise values
93 $this->_path = '';
94 $this->_name = '';
95 $this->_offsetX = 0;
96 $this->_offsetY = 0;
97 $this->_width = 0;
98 $this->_height = 0;
99 $this->_resizeProportional = true;
100 }
101
107 public function getName() {
108 return $this->_name;
109 }
110
117 public function setName($pValue = '') {
118 $this->_name = $pValue;
119 return $this;
120 }
121
127 public function getOffsetX() {
128 return $this->_offsetX;
129 }
130
137 public function setOffsetX($pValue = 0) {
138 $this->_offsetX = $pValue;
139 return $this;
140 }
141
147 public function getOffsetY() {
148 return $this->_offsetY;
149 }
150
157 public function setOffsetY($pValue = 0) {
158 $this->_offsetY = $pValue;
159 return $this;
160 }
161
167 public function getWidth() {
168 return $this->_width;
169 }
170
177 public function setWidth($pValue = 0) {
178 // Resize proportional?
179 if ($this->_resizeProportional && $pValue != 0) {
180 $ratio = $this->_width / $this->_height;
181 $this->_height = round($ratio * $pValue);
182 }
183
184 // Set width
185 $this->_width = $pValue;
186
187 return $this;
188 }
189
195 public function getHeight() {
196 return $this->_height;
197 }
198
205 public function setHeight($pValue = 0) {
206 // Resize proportional?
207 if ($this->_resizeProportional && $pValue != 0) {
208 $ratio = $this->_width / $this->_height;
209 $this->_width = round($ratio * $pValue);
210 }
211
212 // Set height
213 $this->_height = $pValue;
214
215 return $this;
216 }
217
231 public function setWidthAndHeight($width = 0, $height = 0) {
232 $xratio = $width / $this->_width;
233 $yratio = $height / $this->_height;
234 if ($this->_resizeProportional && !($width == 0 || $height == 0)) {
235 if (($xratio * $this->_height) < $height) {
236 $this->_height = ceil($xratio * $this->_height);
237 $this->_width = $width;
238 } else {
239 $this->_width = ceil($yratio * $this->_width);
240 $this->_height = $height;
241 }
242 }
243 return $this;
244 }
245
251 public function getResizeProportional() {
253 }
254
261 public function setResizeProportional($pValue = true) {
262 $this->_resizeProportional = $pValue;
263 return $this;
264 }
265
271 public function getFilename() {
272 return basename($this->_path);
273 }
274
280 public function getExtension() {
281 $parts = explode(".", basename($this->_path));
282 return end($parts);
283 }
284
290 public function getPath() {
291 return $this->_path;
292 }
293
302 public function setPath($pValue = '', $pVerifyFile = true) {
303 if ($pVerifyFile) {
304 if (file_exists($pValue)) {
305 $this->_path = $pValue;
306
307 if ($this->_width == 0 && $this->_height == 0) {
308 // Get width/height
309 list($this->_width, $this->_height) = getimagesize($pValue);
310 }
311 } else {
312 throw new PHPExcel_Exception("File $pValue not found!");
313 }
314 } else {
315 $this->_path = $pValue;
316 }
317 return $this;
318 }
319
325 public function getHashCode() {
326 return md5(
327 $this->_path
328 . $this->_name
329 . $this->_offsetX
330 . $this->_offsetY
331 . $this->_width
332 . $this->_height
333 . __CLASS__
334 );
335 }
336
340 public function __clone() {
341 $vars = get_object_vars($this);
342 foreach ($vars as $key => $value) {
343 if (is_object($value)) {
344 $this->$key = clone $value;
345 } else {
346 $this->$key = $value;
347 }
348 }
349 }
350}
An exception for terminatinating execution or to throw for unit testing.
setWidthAndHeight($width=0, $height=0)
Set width and height with proportional resize Example: $objDrawing->setResizeProportional(true); $ob...
setPath($pValue='', $pVerifyFile=true)
Set Path.
setResizeProportional($pValue=true)
Set ResizeProportional.
__construct()
Create a new PHPExcel_Worksheet_HeaderFooterDrawing.
getResizeProportional()
Get ResizeProportional.
__clone()
Implement PHP __clone to create a deep clone, not just a shallow copy.
$key
Definition: croninfo.php:18