1: <?php
  2: /**
  3:  * This file contains the cHTMLImage class.
  4:  *
  5:  * @package Core
  6:  * @subpackage GUI_HTML
  7:  * @version SVN Revision $Rev:$
  8:  *
  9:  * @author Simon Sprankel
 10:  * @copyright four for business AG <www.4fb.de>
 11:  * @license http://www.contenido.org/license/LIZENZ.txt
 12:  * @link http://www.4fb.de
 13:  * @link http://www.contenido.org
 14:  */
 15: 
 16: defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
 17: 
 18: /**
 19:  * cHTMLImage class represents an image.
 20:  *
 21:  * @package Core
 22:  * @subpackage GUI_HTML
 23:  */
 24: class cHTMLImage extends cHTML {
 25: 
 26:     /**
 27:      * Constructor.
 28:      * Creates an HTML IMG element.
 29:      *
 30:      * @param mixed $content String or object with the contents
 31:      * @param string $class the class of this element
 32:      * @return void
 33:      */
 34:     public function __construct($src = null, $class = '') {
 35:         parent::__construct();
 36: 
 37:         $this->_tag = 'img';
 38:         $this->_contentlessTag = true;
 39: 
 40:         $this->setSrc($src);
 41:         $this->setClass($class);
 42:     }
 43: 
 44:     /**
 45:      * Sets the image's source file
 46:      *
 47:      * @param string $src source location
 48:      * @return cHTMLImage $this
 49:      */
 50:     public function setSrc($src) {
 51:         if ($src === null) {
 52:             $src = 'images/spacer.gif';
 53:         }
 54: 
 55:         return $this->updateAttribute('src', $src);
 56:     }
 57: 
 58:     /**
 59:      * Sets the image's width
 60:      *
 61:      * @param int $width Image width
 62:      * @return cHTMLImage $this
 63:      */
 64:     public function setWidth($width) {
 65:         return $this->updateAttribute('width', $width);
 66:     }
 67: 
 68:     /**
 69:      * Sets the image's height
 70:      *
 71:      * @param int $height Image height
 72:      * @return cHTMLImage $this
 73:      */
 74:     public function setHeight($height) {
 75:         return $this->updateAttribute('height', $height);
 76:     }
 77: 
 78:     /**
 79:      * Sets the border size
 80:      *
 81:      * @param int $border Border size
 82:      * @return cHTMLImage $this
 83:      */
 84:     public function setBorder($border) {
 85:         return $this->updateAttribute('border', $border);
 86:     }
 87: 
 88:     /**
 89:      * Apply dimensions from the source image
 90:      */
 91:     public function applyDimensions() {
 92:         // Try to open the image
 93:         list($width, $height) = @getimagesize(cRegistry::getBackendPath() . $this->getAttribute('src'));
 94: 
 95:         if (!empty($width) && !empty($height)) {
 96:             $this->setWidth($width);
 97:             $this->setHeight($height);
 98:         }
 99:     }
100: 
101: }
102: