ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
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 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 }