2027 Zeilen
50 KiB
PHP
2027 Zeilen
50 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Project:
|
|
* Contenido Content Management System
|
|
*
|
|
* Description:
|
|
* HTML elements
|
|
*
|
|
* Requirements:
|
|
* @con_php_req 5.0
|
|
*
|
|
*
|
|
* @package Contenido Backend classes
|
|
* @version 1.6.2
|
|
* @author Timo A. Hummel
|
|
* @copyright four for business AG <www.4fb.de>
|
|
* @license http://www.contenido.org/license/LIZENZ.txt
|
|
* @link http://www.4fb.de
|
|
* @link http://www.contenido.org
|
|
* @since file available since contenido release <= 4.6
|
|
*
|
|
*
|
|
* $Id: class.htmlelements.php 365 2015-10-08 14:26:19Z oldperl $:
|
|
*/
|
|
/**
|
|
*
|
|
*/
|
|
if (!defined('CON_FRAMEWORK')) {
|
|
die('Illegal call');
|
|
}
|
|
|
|
/**
|
|
* HTML Form element class
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLFormElement extends cHTML {
|
|
|
|
/**
|
|
* Constructor. This is a generic form element, where
|
|
* specific elements should be inherited from this class.
|
|
*
|
|
* @param $name string Name of the element
|
|
* @param $id string ID of the element
|
|
* @param $disabled string Item disabled flag (non-empty to set disabled)
|
|
* @param $tabindex string Tab index for form elements
|
|
* @param $accesskey string Key to access the field
|
|
*
|
|
* @return none
|
|
*/
|
|
public function __construct($name = "", $id = "", $disabled = "", $tabindex = "", $accesskey = "") {
|
|
parent::__construct();
|
|
|
|
$this->updateAttributes(array("name" => $name));
|
|
|
|
if (is_string($id) && !empty($id)) {
|
|
$this->updateAttributes(array("id" => $id));
|
|
}
|
|
|
|
$this->setClass("text_medium"); // TODO: Remove this...
|
|
$this->setDisabled($disabled);
|
|
$this->setTabindex($tabindex);
|
|
$this->setAccessKey($accesskey);
|
|
}
|
|
|
|
/**
|
|
* Sets the "disabled" attribute of an element. User Agents
|
|
* usually are showing the element as "greyed-out".
|
|
*
|
|
* Example:
|
|
* $obj->setDisabled("disabled");
|
|
* $obj->setDisabled("");
|
|
*
|
|
* The first example sets the disabled flag, the second one
|
|
* removes the disabled flag.
|
|
*
|
|
* @param $disabled string Sets the disabled-flag if non-empty
|
|
* @return none
|
|
*/
|
|
function setDisabled($disabled) {
|
|
if (!empty($disabled)) {
|
|
$this->updateAttributes(array("disabled" => "disabled"));
|
|
} else {
|
|
$this->removeAttribute("disabled");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* sets the tab index for this element. The tab
|
|
* index needs to be numeric, bigger than 0 and smaller than 32767.
|
|
*
|
|
* @param $tabindex int desired tab index
|
|
* @return none
|
|
*/
|
|
function setTabindex($tabindex) {
|
|
if (is_numeric($tabindex) && $tabindex >= 0 && $tabindex <= 32767) {
|
|
$this->updateAttributes(array("tabindex" => $tabindex));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* sets the access key for this element.
|
|
*
|
|
* @param $accesskey string The length of the access key. May be A-Z and 0-9.
|
|
* @return none
|
|
*/
|
|
function setAccessKey($accesskey) {
|
|
if ((strlen($accesskey) == 1) && is_alphanumeric($accesskey)) {
|
|
$this->updateAttributes(array("accesskey" => $accesskey));
|
|
} else {
|
|
$this->removeAttribute("accesskey");
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* HTML Hidden Field
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLHiddenField extends cHTMLFormElement {
|
|
|
|
/**
|
|
* Constructor. Creates an HTML hidden field.
|
|
*
|
|
* @param $name string Name of the element
|
|
* @param $value string Title of the button
|
|
* @param $id string ID of the element
|
|
*
|
|
* @return none
|
|
*/
|
|
function __construct($name, $value = "", $id = "") {
|
|
parent::__construct($name, $id);
|
|
$this->setContentlessTag();
|
|
$this->updateAttributes(array("type" => "hidden"));
|
|
$this->_tag = "input";
|
|
|
|
$this->setValue($value);
|
|
}
|
|
|
|
/**
|
|
* Sets the value for the field
|
|
*
|
|
* @param $value string Value of the field
|
|
* @return none
|
|
*/
|
|
function setValue($value) {
|
|
$this->updateAttributes(array("value" => $value));
|
|
}
|
|
|
|
/**
|
|
* Renders the hidden field
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHtml() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes);
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* HTML Button class
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLButton extends cHTMLFormElement {
|
|
|
|
/**
|
|
* Constructor. Creates an HTML button.
|
|
*
|
|
* Creates a submit button by default, can be changed
|
|
* using setMode.
|
|
*
|
|
* @param $name string Name of the element
|
|
* @param $title string Title of the button
|
|
* @param $id string ID of the element
|
|
* @param $disabled string Item disabled flag (non-empty to set disabled)
|
|
* @param $tabindex string Tab index for form elements
|
|
* @param $accesskey string Key to access the field
|
|
*
|
|
* @return none
|
|
*/
|
|
function __construct($name, $title = "", $id = "", $disabled = false, $tabindex = null, $accesskey = "", $mode = "submit") {
|
|
parent::__construct($name, $id, $disabled, $tabindex, $accesskey);
|
|
$this->_tag = "input";
|
|
$this->setContentlessTag();
|
|
$this->setTitle($title);
|
|
$this->setMode($mode);
|
|
}
|
|
|
|
/**
|
|
* Sets the title (caption) for the button
|
|
*
|
|
* @param $title string The title to set
|
|
* @return none
|
|
*/
|
|
function setTitle($title) {
|
|
$this->updateAttributes(array("value" => $title));
|
|
}
|
|
|
|
/**
|
|
* Sets the mode (submit or reset) for the button
|
|
*
|
|
* @param $mode string Either "submit", "reset" or "image".
|
|
* @return boolean Returns false if failed to set the mode
|
|
*/
|
|
function setMode($mode) {
|
|
|
|
switch ($mode) {
|
|
case "submit" :
|
|
case "reset" :
|
|
$this->updateAttributes(array("type" => $mode));
|
|
break;
|
|
case "image" :
|
|
$this->updateAttributes(array("type" => $mode));
|
|
break;
|
|
case "button" :
|
|
$this->updateAttributes(array("type" => $mode));
|
|
break;
|
|
default :
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Set the image src if mode type is "image"
|
|
*
|
|
* @param $mode string image path.
|
|
* @return void
|
|
*/
|
|
function setImageSource($src) {
|
|
$this->updateAttributes(array("src" => $src));
|
|
}
|
|
|
|
/**
|
|
* Renders the button
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHtml() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes);
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* HTML Textbox
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLTextbox extends cHTMLFormElement {
|
|
|
|
/**
|
|
* Constructor. Creates an HTML text box.
|
|
*
|
|
* If no additional parameters are specified, the
|
|
* default width is 20 units.
|
|
*
|
|
* @param $name string Name of the element
|
|
* @param $initvalue string Initial value of the box
|
|
* @param $width int width of the text box
|
|
* @param $maxlength int maximum input length of the box
|
|
* @param $id string ID of the element
|
|
* @param $disabled string Item disabled flag (non-empty to set disabled)
|
|
* @param $tabindex string Tab index for form elements
|
|
* @param $accesskey string Key to access the field
|
|
*
|
|
* @return none
|
|
*/
|
|
public function __construct($name, $initvalue = "", $width = "", $maxlength = "", $id = "", $disabled = false, $tabindex = null, $accesskey = "") {
|
|
parent::__construct($name, $id, $disabled, $tabindex, $accesskey);
|
|
|
|
$this->_tag = "input";
|
|
$this->setContentlessTag();
|
|
$this->setValue($initvalue);
|
|
|
|
$this->setWidth($width);
|
|
$this->setMaxLength($maxlength);
|
|
|
|
$this->updateAttributes(array("type" => "text"));
|
|
}
|
|
|
|
/**
|
|
* sets the width of the text box.
|
|
*
|
|
* @param $width int width of the text box
|
|
*
|
|
* @return none
|
|
*/
|
|
function setWidth($width) {
|
|
$width = intval($width);
|
|
|
|
if ($width <= 0) {
|
|
$width = 50;
|
|
}
|
|
|
|
$this->updateAttributes(array("size" => $width));
|
|
}
|
|
|
|
/**
|
|
* sets the maximum input length of the text box.
|
|
*
|
|
* @param $maxlen int maximum input length
|
|
*
|
|
* @return none
|
|
*/
|
|
function setMaxLength($maxlen) {
|
|
$maxlen = intval($maxlen);
|
|
|
|
if ($maxlen <= 0) {
|
|
$this->removeAttribute("maxlength");
|
|
} else {
|
|
$this->updateAttributes(array("maxlength" => $maxlen));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* sets the initial value of the text box.
|
|
*
|
|
* @param $value string Initial value
|
|
*
|
|
* @return none
|
|
*/
|
|
function setValue($value) {
|
|
$this->updateAttributes(array("value" => $value));
|
|
}
|
|
|
|
/**
|
|
* Renders the textbox
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHtml() {
|
|
return parent::toHtml();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* HTML Password Box
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLPasswordbox extends cHTMLFormElement {
|
|
|
|
/**
|
|
* Constructor. Creates an HTML password box.
|
|
*
|
|
* If no additional parameters are specified, the
|
|
* default width is 20 units.
|
|
*
|
|
* @param $name string Name of the element
|
|
* @param $initvalue string Initial value of the box
|
|
* @param $width int width of the text box
|
|
* @param $maxlength int maximum input length of the box
|
|
* @param $id string ID of the element
|
|
* @param $disabled string Item disabled flag (non-empty to set disabled)
|
|
* @param $tabindex string Tab index for form elements
|
|
* @param $accesskey string Key to access the field
|
|
*
|
|
* @return none
|
|
*/
|
|
function __construct($name, $initvalue = "", $width = "", $maxlength = "", $id = "", $disabled = false, $tabindex = null, $accesskey = "") {
|
|
parent::__construct($name, $id, $disabled, $tabindex, $accesskey);
|
|
$this->_tag = "input";
|
|
$this->setValue($initvalue);
|
|
|
|
$this->setWidth($width);
|
|
$this->setMaxLength($maxlength);
|
|
|
|
$this->updateAttributes(array("type" => "password"));
|
|
}
|
|
|
|
/**
|
|
* sets the width of the text box.
|
|
*
|
|
* @param $width int width of the text box
|
|
*
|
|
* @return none
|
|
*/
|
|
function setWidth($width) {
|
|
$width = intval($width);
|
|
|
|
if ($width <= 0) {
|
|
$width = 20;
|
|
}
|
|
|
|
$this->updateAttributes(array("size" => $width));
|
|
}
|
|
|
|
/**
|
|
* sets the maximum input length of the text box.
|
|
*
|
|
* @param $maxlen int maximum input length
|
|
*
|
|
* @return none
|
|
*/
|
|
function setMaxLength($maxlen) {
|
|
$maxlen = intval($maxlen);
|
|
|
|
if ($maxlen <= 0) {
|
|
$this->removeAttribute("maxlength");
|
|
} else {
|
|
$this->updateAttributes(array("maxlength" => $maxlen));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* sets the initial value of the text box.
|
|
*
|
|
* @param $value string Initial value
|
|
*
|
|
* @return none
|
|
*/
|
|
function setValue($value) {
|
|
$this->updateAttributes(array("value" => $value));
|
|
}
|
|
|
|
/**
|
|
* Renders the textbox
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHtml() {
|
|
return parent::toHTML();
|
|
}
|
|
|
|
}
|
|
|
|
class cHTMLTextarea extends cHTMLFormElement {
|
|
|
|
var $_value;
|
|
|
|
/**
|
|
* Constructor. Creates an HTML text area.
|
|
*
|
|
* If no additional parameters are specified, the
|
|
* default width is 60 chars, and the height is 5 chars.
|
|
*
|
|
* @param $name string Name of the element
|
|
* @param $initvalue string Initial value of the textarea
|
|
* @param $width int width of the textarea
|
|
* @param $height int height of the textarea
|
|
* @param $id string ID of the element
|
|
* @param $disabled string Item disabled flag (non-empty to set disabled)
|
|
* @param $tabindex string Tab index for form elements
|
|
* @param $accesskey string Key to access the field
|
|
*
|
|
* @return none
|
|
*/
|
|
function __construct($name, $initvalue = "", $width = "", $height = "", $id = "", $disabled = false, $tabindex = null, $accesskey = "") {
|
|
parent::__construct($name, $id, $disabled, $tabindex, $accesskey);
|
|
$this->_tag = "textarea";
|
|
$this->setValue($initvalue);
|
|
$this->setContentlessTag(false);
|
|
$this->setWidth($width);
|
|
$this->setHeight($height);
|
|
}
|
|
|
|
/**
|
|
* sets the width of the text box.
|
|
*
|
|
* @param $width int width of the text box
|
|
*
|
|
* @return none
|
|
*/
|
|
function setWidth($width) {
|
|
$width = intval($width);
|
|
|
|
if ($width <= 0) {
|
|
$width = 50;
|
|
}
|
|
|
|
$this->updateAttributes(array("cols" => $width));
|
|
}
|
|
|
|
/**
|
|
* sets the maximum input length of the text box.
|
|
*
|
|
* @param $maxlen int maximum input length
|
|
*
|
|
* @return none
|
|
*/
|
|
function setHeight($height) {
|
|
$height = intval($height);
|
|
|
|
if ($height <= 0) {
|
|
$height = 5;
|
|
}
|
|
|
|
$this->updateAttributes(array("rows" => $height));
|
|
}
|
|
|
|
/**
|
|
* sets the initial value of the text box.
|
|
*
|
|
* @param $value string Initial value
|
|
*
|
|
* @return none
|
|
*/
|
|
function setValue($value) {
|
|
$this->_value = $value;
|
|
}
|
|
|
|
/**
|
|
* Renders the textbox
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHtml() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes) . $this->_value . $this->fillCloseSkeleton();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @package Contenido cHTML
|
|
* @subpackage cHTMLElements
|
|
* @author Timo A. Hummel
|
|
* @author Ortwin Pinke
|
|
*/
|
|
class cHTMLLabel extends cHTML {
|
|
|
|
/**
|
|
* the text for label
|
|
*
|
|
* @var string $_sText
|
|
*/
|
|
protected $_sText;
|
|
|
|
/**
|
|
* Creates an HTML label which can be linked
|
|
* to any form element (specified by their ID).
|
|
*
|
|
* A label can be used to link to elements. This is very useful
|
|
* since if a user clicks a label, the linked form element receives
|
|
* the focus (if supported by the user agent).
|
|
*
|
|
* @param string $sText Text for the label
|
|
* @param string $for Id of the form element the label belongs to
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct($sText, $sFor) {
|
|
parent::__construct();
|
|
$this->_tag = "label";
|
|
$this->setContentlessTag(false);
|
|
$this->updateAttributes(array("for" => $sFor));
|
|
$this->_sText = $sText;
|
|
}
|
|
|
|
/**
|
|
* setter for label text
|
|
*
|
|
* @param string $sText
|
|
*/
|
|
public function setLabelText($sText) {
|
|
$this->_sText = $sText;
|
|
}
|
|
|
|
/**
|
|
* Renders the label
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHtml() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes) . $this->_sText . $this->fillCloseSkeleton();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* HTML Select Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLSelectElement extends cHTMLFormElement {
|
|
|
|
/**
|
|
* All cHTMLOptionElements
|
|
* @var array
|
|
*/
|
|
var $_options;
|
|
|
|
/**
|
|
* Constructor. Creates an HTML select field (aka "DropDown").
|
|
*
|
|
* @param $name string Name of the element
|
|
* @param $width int width of the select element
|
|
* @param $id string ID of the element
|
|
* @param $disabled string Item disabled flag (non-empty to set disabled)
|
|
* @param $tabindex string Tab index for form elements
|
|
* @param $accesskey string Key to access the field
|
|
*
|
|
* @return none
|
|
*/
|
|
function __construct($name, $width = "", $id = "", $disabled = false, $tabindex = null, $accesskey = "") {
|
|
parent::__construct($name, $id, $disabled, $tabindex, $accesskey);
|
|
$this->_tag = "select";
|
|
$this->setContentlessTag(false);
|
|
}
|
|
|
|
/**
|
|
* Automatically creates and fills cHTMLOptionElements
|
|
*
|
|
* Array format:
|
|
* $stuff = array(
|
|
* array("value","title"),
|
|
* array("value","title"));
|
|
*
|
|
* or regular key => value arrays.
|
|
*
|
|
* @param $stuff array Array with all items
|
|
*
|
|
* @return none
|
|
*/
|
|
function autoFill($stuff) {
|
|
if (is_array($stuff)) {
|
|
foreach ($stuff as $key => $row) {
|
|
if (is_array($row)) {
|
|
$option = new cHTMLOptionElement($row[1], $row[0]);
|
|
$this->addOptionElement($row[0], $option);
|
|
} else {
|
|
$option = new cHTMLOptionElement($row, $key);
|
|
$this->addOptionElement($key, $option);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Adds an cHTMLOptionElement to the number of choices.
|
|
*
|
|
* @param $index string Index of the element
|
|
* @param $element object Filled cHTMLOptionElement to add
|
|
*
|
|
* @return none
|
|
*/
|
|
function addOptionElement($index, $element) {
|
|
$this->_options[$index] = $element;
|
|
}
|
|
|
|
function setMultiselect() {
|
|
$this->updateAttributes(array("multiple" => "multiple"));
|
|
}
|
|
|
|
function setSize($size) {
|
|
$this->updateAttributes(array("size" => $size));
|
|
}
|
|
|
|
/**
|
|
* Sets a specific cHTMLOptionElement to the selected
|
|
* state.
|
|
*
|
|
* @param $lvalue string Specifies the "value" of the cHTMLOptionElement to set
|
|
*
|
|
* @return none
|
|
*/
|
|
function setDefault($lvalue) {
|
|
$bSet = false;
|
|
|
|
if (is_array($this->_options)) {
|
|
foreach ($this->_options as $key => $value) {
|
|
if (strcmp($value->getAttribute("value"), $lvalue) == 0) {
|
|
$value->setSelected(true);
|
|
$this->_options[$key] = $value;
|
|
$bSet = true;
|
|
} else {
|
|
$value->setSelected(false);
|
|
$this->_options[$key] = $value;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($bSet == false) {
|
|
if (is_array($this->_options)) {
|
|
foreach ($this->_options as $key => $value) {
|
|
$value->setSelected(true);
|
|
$this->_options[$key] = $value;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Search for the selected elements
|
|
*
|
|
* @param none
|
|
*
|
|
* @return Selected "lvalue"
|
|
*/
|
|
function getDefault() {
|
|
if (is_array($this->_options)) {
|
|
foreach ($this->_options as $key => $value) {
|
|
if ($value->isSelected()) {
|
|
return $key;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Sets specified elements as selected (and all others as unselected)
|
|
*
|
|
* @param array $aElements Array with "values" of the cHTMLOptionElement to set
|
|
*
|
|
* @return none
|
|
*/
|
|
function setSelected($aElements) {
|
|
if (is_array($this->_options) && is_array($aElements)) {
|
|
foreach ($this->_options as $sKey => $oOption) {
|
|
if (in_array($oOption->getAttribute("value"), $aElements)) {
|
|
$oOption->setSelected(true);
|
|
$this->_options[$sKey] = $oOption;
|
|
} else {
|
|
$oOption->setSelected(false);
|
|
$this->_options[$sKey] = $oOption;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Renders the select box
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHtml() {
|
|
|
|
$attributes = $this->getAttributes(true);
|
|
|
|
$options = "";
|
|
|
|
if (is_array($this->_options)) {
|
|
foreach ($this->_options as $key => $value) {
|
|
$options .= $value->toHtml();
|
|
}
|
|
}
|
|
|
|
return ($this->fillSkeleton($attributes) . $options . $this->fillCloseSkeleton());
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* HTML Select Option Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLOptionElement extends cHTMLFormElement {
|
|
|
|
/**
|
|
* Title to display
|
|
* @var string
|
|
* @access private
|
|
*/
|
|
var $_title;
|
|
|
|
/**
|
|
* Constructor. Creates an HTML option element.
|
|
*
|
|
* @param $title string Displayed title of the element
|
|
* @param $value string Value of the option
|
|
* @param $selected boolean If true, element is selected
|
|
* @param $disabled boolean If true, element is disabled
|
|
*
|
|
* @return none
|
|
*/
|
|
function __construct($title, $value, $selected = false, $disabled = false) {
|
|
cHTML::__construct();
|
|
$this->_tag = "option";
|
|
$this->_title = $title;
|
|
|
|
$this->updateAttributes(array("value" => $value));
|
|
$this->setContentlessTag(false);
|
|
|
|
$this->setSelected($selected);
|
|
$this->setDisabled($disabled);
|
|
}
|
|
|
|
/**
|
|
* sets the selected flag
|
|
*
|
|
* @param $selected boolean If true, adds the "selected" attribute
|
|
*
|
|
* @return none
|
|
*/
|
|
function setSelected($selected) {
|
|
if ($selected == true) {
|
|
$this->updateAttributes(array("selected" => "selected"));
|
|
} else {
|
|
$this->removeAttribute("selected");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* sets the selected flag
|
|
*
|
|
* @param $selected boolean If true, adds the "selected" attribute
|
|
*
|
|
* @return none
|
|
*/
|
|
function isSelected() {
|
|
if ($this->getAttribute("selected") == "selected") {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* sets the disabled flag
|
|
*
|
|
* @param $disabled boolean If true, adds the "disabled" attribute
|
|
*
|
|
* @return none
|
|
*/
|
|
function setDisabled($disabled) {
|
|
if ($disabled == true) {
|
|
$this->updateAttributes(array("disabled" => "disabled"));
|
|
} else {
|
|
$this->removeAttribute("disabled");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Renders the option element. Note:
|
|
* the cHTMLSelectElement renders the options by itself.
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHtml() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes) . $this->_title . $this->fillCloseSkeleton();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* HTML Radio Button
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLRadiobutton extends cHTMLFormElement {
|
|
|
|
/**
|
|
* Values for the check box
|
|
* @var string
|
|
* @access private
|
|
*/
|
|
var $_value;
|
|
|
|
/**
|
|
* Constructor. Creates an HTML radio button element.
|
|
*
|
|
* @param $name string Name of the element
|
|
* @param $value string Value of the radio button
|
|
* @param $id string ID of the element
|
|
* @param $checked boolean Is element checked?
|
|
* @param $disabled string Item disabled flag (non-empty to set disabled)
|
|
* @param $tabindex string Tab index for form elements
|
|
* @param $accesskey string Key to access the field
|
|
*
|
|
* @return none
|
|
*/
|
|
function __construct($name, $value, $id = "", $checked = false, $disabled = false, $tabindex = null, $accesskey = "") {
|
|
parent::__construct($name, $id, $disabled, $tabindex, $accesskey);
|
|
$this->_tag = "input";
|
|
$this->_value = $value;
|
|
$this->setContentlessTag();
|
|
|
|
$this->setChecked($checked);
|
|
$this->updateAttributes(array("type" => "radio"));
|
|
$this->updateAttributes(array("value" => $value));
|
|
}
|
|
|
|
/**
|
|
* Sets the checked flag.
|
|
*
|
|
* @param $checked boolean If true, the "checked" attribute will be assigned.
|
|
*
|
|
* @return none
|
|
*/
|
|
function setChecked($checked) {
|
|
if ($checked == true) {
|
|
$this->updateAttributes(array("checked" => "checked"));
|
|
} else {
|
|
$this->removeAttribute("checked");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Sets a custom label text
|
|
*
|
|
* @param $text string Text to display
|
|
*
|
|
* @return none
|
|
*/
|
|
function setLabelText($text) {
|
|
$this->_labelText = $text;
|
|
}
|
|
|
|
/**
|
|
* Renders the option element. Note:
|
|
*
|
|
* If this element has an ID, the value (which equals the text displayed)
|
|
* will be rendered as seperate HTML label, if not, it will be displayed
|
|
* as regular text. Displaying the value can be turned off via the parameter.
|
|
*
|
|
* @param $renderlabel boolean If true, renders a label
|
|
*
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHtml($renderLabel = true) {
|
|
$attributes = $this->getAttributes(true);
|
|
|
|
if ($renderLabel == false) {
|
|
return $this->fillSkeleton($attributes);
|
|
}
|
|
|
|
$id = $this->getAttribute("id");
|
|
|
|
$renderedLabel = "";
|
|
|
|
if ($id != "") {
|
|
$label = new cHTMLLabel($this->_value, $this->getAttribute("id"));
|
|
|
|
if ($this->_labelText != "") {
|
|
$label->setLabelText($this->_labelText);
|
|
}
|
|
|
|
$renderedLabel = $label->toHtml();
|
|
} else {
|
|
$renderedLabel = $this->_value;
|
|
}
|
|
|
|
return $this->fillSkeleton($attributes) . $renderedLabel;
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* HTML Checkbox
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLCheckbox extends cHTMLFormElement {
|
|
|
|
var $_value;
|
|
|
|
/**
|
|
* Constructor. Creates an HTML checkbox element.
|
|
*
|
|
* @param $name string Name of the element
|
|
* @param $value string Value of the radio button
|
|
* @param $id string ID of the element
|
|
* @param $checked boolean Is element checked?
|
|
* @param $disabled string Item disabled flag (non-empty to set disabled)
|
|
* @param $tabindex string Tab index for form elements
|
|
* @param $accesskey string Key to access the field
|
|
*
|
|
* @return none
|
|
*/
|
|
function __construct($name, $value, $id = "", $checked = false, $disabled = false, $tabindex = null, $accesskey = "") {
|
|
|
|
parent::__construct($name, $id, $disabled, $tabindex, $accesskey);
|
|
$this->_tag = "input";
|
|
$this->_value = $value;
|
|
$this->setContentlessTag();
|
|
|
|
$this->setChecked($checked);
|
|
$this->updateAttributes(array("type" => "checkbox"));
|
|
$this->updateAttributes(array("value" => $value));
|
|
}
|
|
|
|
/**
|
|
* Sets the checked flag.
|
|
*
|
|
* @param $checked boolean If true, the "checked" attribute will be assigned.
|
|
*
|
|
* @return none
|
|
*/
|
|
function setChecked($checked) {
|
|
if ($checked == true) {
|
|
$this->updateAttributes(array("checked" => "checked"));
|
|
} else {
|
|
$this->removeAttribute("checked");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Sets a custom label text
|
|
*
|
|
* @param $text string Text to display
|
|
*
|
|
* @return none
|
|
*/
|
|
function setLabelText($text) {
|
|
$this->_labelText = $text;
|
|
}
|
|
|
|
/**
|
|
* Renders the checkbox element. Note:
|
|
*
|
|
* If this element has an ID, the value (which equals the text displayed)
|
|
* will be rendered as seperate HTML label, if not, it will be displayed
|
|
* as regular text. Displaying the value can be turned off via the parameter.
|
|
*
|
|
* @param $renderlabel boolean If true, renders a label
|
|
*
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHtml($renderlabel = true) {
|
|
$id = $this->getAttribute("id");
|
|
$renderedLabel = "";
|
|
|
|
if ($renderlabel == true) {
|
|
if ($id != "") {
|
|
$label = new cHTMLLabel($this->_value, $this->getAttribute("id"));
|
|
|
|
$label->setClass($this->getAttribute("class"));
|
|
|
|
if ($this->_labelText != "") {
|
|
$label->setLabelText($this->_labelText);
|
|
}
|
|
|
|
$renderedLabel = $label->toHtml();
|
|
} else {
|
|
|
|
$renderedLabel = $this->_value;
|
|
|
|
if ($this->_labelText != "") {
|
|
$label = new cHTMLLabel($this->_value, $this->getAttribute("id"));
|
|
$label->setLabelText($this->_labelText);
|
|
$renderedLabel = $label->toHtml();
|
|
}
|
|
}
|
|
|
|
return '<table border="0" cellspacing="0" cellpadding="0"><tr><td nowrap="nowrap">' . parent::toHTML() . '</td><td nowrap="nowrap">' . $renderedLabel . '</td></tr></table>';
|
|
} else {
|
|
return parent::toHTML();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* HTML File upload box
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLUpload extends cHTMLFormElement {
|
|
|
|
/**
|
|
* Constructor. Creates an HTML upload box.
|
|
*
|
|
* If no additional parameters are specified, the
|
|
* default width is 20 units.
|
|
*
|
|
* @param $name string Name of the element
|
|
* @param $initvalue string Initial value of the box
|
|
* @param $width int width of the text box
|
|
* @param $maxlength int maximum input length of the box
|
|
* @param $id string ID of the element
|
|
* @param $disabled string Item disabled flag (non-empty to set disabled)
|
|
* @param $tabindex string Tab index for form elements
|
|
* @param $accesskey string Key to access the field
|
|
*
|
|
* @return none
|
|
*/
|
|
function __construct($name, $width = "", $maxlength = "", $id = "", $disabled = false, $tabindex = null, $accesskey = "") {
|
|
parent::__construct($name, $id, $disabled, $tabindex, $accesskey);
|
|
$this->_tag = "input";
|
|
$this->setContentlessTag();
|
|
|
|
$this->setWidth($width);
|
|
$this->setMaxLength($maxlength);
|
|
|
|
$this->updateAttributes(array("type" => "file"));
|
|
}
|
|
|
|
/**
|
|
* sets the width of the text box.
|
|
*
|
|
* @param $width int width of the text box
|
|
*
|
|
* @return none
|
|
*/
|
|
function setWidth($width) {
|
|
$width = intval($width);
|
|
|
|
if ($width <= 0) {
|
|
$width = 20;
|
|
}
|
|
|
|
$this->updateAttributes(array("size" => $width));
|
|
}
|
|
|
|
/**
|
|
* sets the maximum input length of the text box.
|
|
*
|
|
* @param $maxlen int maximum input length
|
|
*
|
|
* @return none
|
|
*/
|
|
function setMaxLength($maxlen) {
|
|
$maxlen = intval($maxlen);
|
|
|
|
if ($maxlen <= 0) {
|
|
$this->removeAttribute("maxlength");
|
|
} else {
|
|
$this->updateAttributes(array("maxlength" => $maxlen));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Renders the textbox
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHtml() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes);
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* HTML Link
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLLink extends cHTML {
|
|
/* Stores the link location */
|
|
|
|
var $_link;
|
|
|
|
/* Stores the content */
|
|
var $_content;
|
|
|
|
/* Stores the anchor */
|
|
var $_anchor;
|
|
|
|
/* Stores the custom entries */
|
|
var $_custom;
|
|
|
|
/**
|
|
* Constructor. Creates an HTML link.
|
|
*
|
|
* @param $href String with the location to link to
|
|
*
|
|
*/
|
|
function __construct($href = "") {
|
|
global $sess;
|
|
parent::__construct();
|
|
|
|
$this->setLink($href);
|
|
$this->setContentlessTag(false);
|
|
$this->_tag = "a";
|
|
|
|
/* Check for backend */
|
|
if (is_object($sess)) {
|
|
if ($sess->classname == "Contenido_Session") {
|
|
$this->enableAutomaticParameterAppend();
|
|
}
|
|
}
|
|
}
|
|
|
|
function enableAutomaticParameterAppend() {
|
|
$this->setEvent("click", 'var doit = true; try { var i = get_registered_parameters() } catch (e) { doit = false; }; if (doit == true) { this.href += i; }');
|
|
}
|
|
|
|
function disableAutomaticParameterAppend() {
|
|
$this->unsetEvent("click");
|
|
}
|
|
|
|
/**
|
|
* setLink: Sets the link to a specific location
|
|
*
|
|
* @param $href String with the location to link to
|
|
*
|
|
*/
|
|
function setLink($href) {
|
|
$this->_link = $href;
|
|
$this->_type = "link";
|
|
|
|
if (strpos($href, "javascript:") !== false) {
|
|
$this->disableAutomaticParameterAppend();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* setTargetFrame: Sets the target frame
|
|
*
|
|
* @param $target string Target frame identifier
|
|
*
|
|
*/
|
|
function setTargetFrame($target) {
|
|
$this->updateAttributes(array("target" => $target));
|
|
}
|
|
|
|
/**
|
|
* setLink: Sets a Contenido link (area, frame, action)
|
|
*
|
|
* @param $targetarea string Target backend area
|
|
* @param $targetframe string Target frame (1-4)
|
|
* @param $targetaction string Target action
|
|
*/
|
|
function setCLink($targetarea, $targetframe, $targetaction = "") {
|
|
$this->_targetarea = $targetarea;
|
|
$this->_targetframe = $targetframe;
|
|
$this->_targetaction = $targetaction;
|
|
$this->_type = "clink";
|
|
}
|
|
|
|
/**
|
|
* setMultiLink: Sets a multilink
|
|
*
|
|
* @param $righttoparea string Area (right top)
|
|
* @param $righttopaction string Action (right top)
|
|
* @param $rightbottomarea string Area (right bottom)
|
|
* @param $rightbottomaction string Action (right bottom)
|
|
*/
|
|
function setMultiLink($righttoparea, $righttopaction, $rightbottomarea, $rightbottomaction) {
|
|
$this->_targetarea = $righttoparea;
|
|
$this->_targetframe = 3;
|
|
$this->_targetaction = $righttopaction;
|
|
$this->_targetarea2 = $rightbottomarea;
|
|
$this->_targetframe2 = 4;
|
|
$this->_targetaction2 = $rightbottomaction;
|
|
$this->_type = "multilink";
|
|
}
|
|
|
|
/**
|
|
* setCustom: Sets a custom attribute to be appended to the link
|
|
*
|
|
* @param $key string Parameter name
|
|
* @param $value string Parameter value
|
|
*/
|
|
function setCustom($key, $value) {
|
|
$this->_custom[$key] = $value;
|
|
}
|
|
|
|
function getHref() {
|
|
global $sess;
|
|
|
|
if (is_array($this->_custom)) {
|
|
$custom = "";
|
|
|
|
foreach ($this->_custom as $key => $value) {
|
|
$custom .= "&$key=$value";
|
|
}
|
|
}
|
|
|
|
if ($this->_anchor) {
|
|
$anchor = "#" . $this->_anchor;
|
|
} else {
|
|
$anchor = "";
|
|
}
|
|
|
|
switch ($this->_type) {
|
|
case "link" :
|
|
$custom = "";
|
|
if (is_array($this->_custom)) {
|
|
foreach ($this->_custom as $key => $value) {
|
|
if ($custom == "") {
|
|
$custom .= "?$key=$value";
|
|
} else {
|
|
$custom .= "&$key=$value";
|
|
}
|
|
}
|
|
}
|
|
|
|
return $this->_link . $custom . $anchor;
|
|
break;
|
|
case "clink" :
|
|
$this->disableAutomaticParameterAppend();
|
|
return 'main.php?area=' . $this->_targetarea . '&frame=' . $this->_targetframe . '&action=' . $this->_targetaction . $custom . "&contenido=" . $sess->id . $anchor;
|
|
break;
|
|
case "multilink" :
|
|
$this->disableAutomaticParameterAppend();
|
|
$tmp_mstr = 'javascript:conMultiLink(\'%s\',\'%s\',\'%s\',\'%s\');';
|
|
$mstr = sprintf($tmp_mstr, 'right_top', $sess->url("main.php?area=" . $this->_targetarea . "&frame=" . $this->_targetframe . "&action=" . $this->_targetaction . $custom), 'right_bottom', $sess->url("main.php?area=" . $this->_targetarea2 . "&frame=" . $this->_targetframe2 . "&action=" . $this->_targetaction2 . $custom));
|
|
return $mstr;
|
|
break;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* setAnchor: Sets an anchor
|
|
*
|
|
* Only works for the link types Link and cLink.
|
|
*
|
|
* @param $content string Anchor name
|
|
*
|
|
*/
|
|
function setAnchor($anchor) {
|
|
$this->_anchor = $anchor;
|
|
}
|
|
|
|
/**
|
|
* setContent: Sets the link's content
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*
|
|
*/
|
|
function setContent($content) {
|
|
$this->_setContent($content);
|
|
}
|
|
|
|
/**
|
|
* Renders the link
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
$this->updateAttributes(array("href" => $this->getHref()));
|
|
|
|
return parent::toHTML();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* DIV Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLDiv extends cHTML {
|
|
|
|
/**
|
|
* Constructor. Creates an HTML Div element.
|
|
*
|
|
* @param $content mixed String or object with the contents
|
|
*/
|
|
function __construct($content = "") {
|
|
parent::__construct();
|
|
$this->setContent($content);
|
|
$this->setContentlessTag(false);
|
|
$this->_tag = "div";
|
|
}
|
|
|
|
/**
|
|
* setContent: Sets the div's content
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*/
|
|
function setContent($content) {
|
|
$this->_setContent($content);
|
|
}
|
|
|
|
/**
|
|
* Renders the DIV element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
return parent::toHTML();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* SPAN Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLSpan extends cHTML {
|
|
|
|
/**
|
|
* Constructor. Creates an HTML Span element.
|
|
*
|
|
* @param $content mixed String or object with the contents
|
|
*/
|
|
function __construct($content = "") {
|
|
parent::__construct();
|
|
$this->setContent($content);
|
|
$this->setContentlessTag(false);
|
|
$this->_tag = "span";
|
|
}
|
|
|
|
/**
|
|
* setContent: Sets the div's content
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*/
|
|
function setContent($content) {
|
|
$this->_setContent($content);
|
|
}
|
|
|
|
/**
|
|
* Renders the SPAN element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes) . $this->_content . $this->fillCloseSkeleton();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Image Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLImage extends cHTML {
|
|
|
|
/**
|
|
* Image source
|
|
* @var string
|
|
* @access private
|
|
*/
|
|
var $_src;
|
|
|
|
/**
|
|
* Image width
|
|
* @var int
|
|
* @access private
|
|
*/
|
|
var $_width;
|
|
|
|
/**
|
|
* Image height
|
|
* @var int
|
|
* @access private
|
|
*/
|
|
var $_height;
|
|
|
|
/**
|
|
* Constructor. Creates an HTML IMG element.
|
|
*
|
|
* @param $content mixed String or object with the contents
|
|
*
|
|
*/
|
|
function __construct($src = NULL) {
|
|
parent::__construct();
|
|
|
|
$this->_tag = "img";
|
|
$this->setContentlessTag();
|
|
|
|
$this->setBorder(0);
|
|
$this->setSrc($src);
|
|
}
|
|
|
|
/**
|
|
* setSrc: Sets the image's source file
|
|
*
|
|
* @param $src string source location
|
|
*
|
|
*/
|
|
function setSrc($src) {
|
|
if ($src === NULL) {
|
|
$this->_src = "images/spacer.gif";
|
|
} else {
|
|
$this->_src = $src;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* setWidth: Sets the image's width
|
|
*
|
|
* @param $width int Image width
|
|
*
|
|
*/
|
|
function setWidth($width) {
|
|
$this->_width = $width;
|
|
}
|
|
|
|
/**
|
|
* setHeight: Sets the image's height
|
|
*
|
|
* @param $height int Image height
|
|
*
|
|
*/
|
|
function setHeight($height) {
|
|
$this->_height = $height;
|
|
}
|
|
|
|
/**
|
|
* setBorder: Sets the border size
|
|
*
|
|
* @param $border int Border size
|
|
*
|
|
*/
|
|
function setBorder($border) {
|
|
$this->_border = $border;
|
|
}
|
|
|
|
function setAlignment($alignment) {
|
|
$this->updateAttributes(array("align" => $alignment));
|
|
}
|
|
|
|
/**
|
|
* applyDimensions: Apply dimensions from the source image
|
|
*
|
|
* @param none
|
|
*
|
|
*/
|
|
function applyDimensions() {
|
|
global $cfg;
|
|
|
|
/* Try to open the image */
|
|
list ($width, $height) = @ getimagesize($cfg['path']['contenido'] . $this->_src);
|
|
|
|
if (!empty($width) && !empty($height)) {
|
|
$this->_width = $width;
|
|
$this->_height = $height;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Renders the IMG element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
$this->updateAttributes(array("src" => $this->_src));
|
|
|
|
if (!empty($this->_width)) {
|
|
$this->updateAttributes(array("width" => $this->_width));
|
|
}
|
|
|
|
if (!empty($this->_height)) {
|
|
$this->updateAttributes(array("height" => $this->_height));
|
|
}
|
|
|
|
//$this->updateAttributes(array ("border" => $this->_border));
|
|
|
|
return parent::toHTML();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Table Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLTable extends cHTML {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
|
|
$this->_tag = "table";
|
|
$this->setContentlessTag(false);
|
|
$this->setPadding(0);
|
|
$this->setSpacing(0);
|
|
$this->setBorder(0);
|
|
}
|
|
|
|
/**
|
|
* setContent: Sets the table's content
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*
|
|
*/
|
|
function setContent($content) {
|
|
$this->_setContent($content);
|
|
}
|
|
|
|
/**
|
|
* setCellSpacing: Sets the spacing between cells
|
|
*
|
|
* @param $cellspacing Spacing
|
|
*
|
|
*/
|
|
function setCellSpacing($cellspacing) {
|
|
$this->updateAttributes(array("cellspacing" => $cellspacing));
|
|
}
|
|
|
|
function setPadding($cellpadding) {
|
|
$this->setCellPadding($cellpadding);
|
|
}
|
|
|
|
function setSpacing($cellspacing) {
|
|
$this->setCellSpacing($cellspacing);
|
|
}
|
|
|
|
/**
|
|
* setCellPadding: Sets the padding between cells
|
|
*
|
|
* @param $cellpadding Padding
|
|
*
|
|
*/
|
|
function setCellPadding($cellpadding) {
|
|
$this->updateAttributes(array("cellpadding" => $cellpadding));
|
|
}
|
|
|
|
/**
|
|
* setBorder: Sets the table's border
|
|
*
|
|
* @param border Border size
|
|
*
|
|
*/
|
|
function setBorder($border) {
|
|
$this->updateAttributes(array("border" => $border));
|
|
}
|
|
|
|
/**
|
|
* setWidth: Sets the table width
|
|
*
|
|
* @param $width Width
|
|
*
|
|
*/
|
|
function setWidth($width) {
|
|
$this->updateAttributes(array("width" => $width));
|
|
}
|
|
|
|
/**
|
|
* Renders the Table element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
return parent::toHTML();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Table Body Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLTableBody extends cHTML {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
$this->setContentlessTag(false);
|
|
$this->_tag = "tbody";
|
|
}
|
|
|
|
/**
|
|
* setContent: Sets the table body's content
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*
|
|
*/
|
|
function setContent($content) {
|
|
$this->_setContent($content);
|
|
}
|
|
|
|
/**
|
|
* Renders the table body element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
return parent::toHTML();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Table Row Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLTableRow extends cHTML {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
$this->setContentlessTag(false);
|
|
$this->_tag = "tr";
|
|
}
|
|
|
|
/**
|
|
* setContent: Sets the table row's content
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*
|
|
*/
|
|
function setContent($content) {
|
|
$this->_setContent($content);
|
|
}
|
|
|
|
/**
|
|
* Renders the table row element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
return parent::toHTML();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Table Data Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLTableData extends cHTML {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
$this->setContentlessTag(false);
|
|
$this->_tag = "td";
|
|
}
|
|
|
|
/**
|
|
* setWidth: Sets the table width
|
|
*
|
|
* @param $width Width
|
|
*
|
|
*/
|
|
function setWidth($width) {
|
|
$this->updateAttributes(array("width" => $width));
|
|
}
|
|
|
|
function setHeight($height) {
|
|
$this->updateAttributes(array("height" => $height));
|
|
}
|
|
|
|
function setAlignment($alignment) {
|
|
$this->updateAttributes(array("align" => $alignment));
|
|
}
|
|
|
|
function setVerticalAlignment($alignment) {
|
|
$this->updateAttributes(array("valign" => $alignment));
|
|
}
|
|
|
|
function setBackgroundColor($color) {
|
|
$this->updateAttributes(array("bgcolor" => $color));
|
|
}
|
|
|
|
function setColspan($colspan) {
|
|
$this->updateAttributes(array("colspan" => $colspan));
|
|
}
|
|
|
|
/**
|
|
* setContent: Sets the table data's content
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*
|
|
*/
|
|
function setContent($content) {
|
|
$this->_setContent($content);
|
|
}
|
|
|
|
/**
|
|
* Renders the table data element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes) . $this->_content . $this->fillCloseSkeleton();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Table Head Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLTableHead extends cHTML {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
$this->setContentlessTag(false);
|
|
$this->_tag = "th";
|
|
}
|
|
|
|
/**
|
|
* setContent: Sets the table head's content
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*
|
|
*/
|
|
function setContent($content) {
|
|
$this->_setContent($content);
|
|
}
|
|
|
|
/**
|
|
* Renders the table head element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes) . $this->_content . $this->fillCloseSkeleton();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Table Head Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLTableHeader extends cHTML {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
$this->setContentlessTag(false);
|
|
$this->_tag = "thead";
|
|
}
|
|
|
|
/**
|
|
* setContent: Sets the table head's content
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*
|
|
*/
|
|
function setContent($content) {
|
|
$this->_setContent($content);
|
|
}
|
|
|
|
/**
|
|
* Renders the table head element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes) . $this->_content . $this->fillCloseSkeleton();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* IFrame element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLIFrame extends cHTML {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
$this->setContentlessTag(false);
|
|
$this->_tag = "iframe";
|
|
}
|
|
|
|
/**
|
|
* setSrc: Sets this frame's source
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*
|
|
*/
|
|
function setSrc($src) {
|
|
$this->updateAttributes(array("src" => $src));
|
|
}
|
|
|
|
/**
|
|
* setWidth: Sets this frame's width
|
|
*
|
|
* @param $width Width of the item
|
|
*
|
|
*/
|
|
function setWidth($width) {
|
|
$this->updateAttributes(array("width" => $width));
|
|
}
|
|
|
|
/**
|
|
* setHeight: Sets this frame's height
|
|
*
|
|
* @param $height Height of the item
|
|
*
|
|
*/
|
|
function setHeight($height) {
|
|
$this->updateAttributes(array("height" => $height));
|
|
}
|
|
|
|
/**
|
|
* setBorder: Sets wether this iframe should have a border or not
|
|
*
|
|
* @param $border If 1 or true, this frame will have a border
|
|
*
|
|
*/
|
|
function setBorder($border) {
|
|
$this->updateAttributes(array("frameborder" => intval($border)));
|
|
}
|
|
|
|
/**
|
|
* Renders the table head element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes) . $this->_content . $this->fillCloseSkeleton();
|
|
}
|
|
|
|
}
|
|
|
|
class cHTMLAlignmentTable extends cHTMLTable {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
|
|
$this->_data = func_get_args();
|
|
$this->setContentlessTag(false);
|
|
}
|
|
|
|
function render() {
|
|
$tr = new cHTMLTableRow;
|
|
$td = new cHTMLTableData;
|
|
|
|
$out = "";
|
|
|
|
foreach ($this->_data as $data) {
|
|
$td->setContent($data);
|
|
$out .= $td->render();
|
|
}
|
|
|
|
$tr->setContent($out);
|
|
|
|
$this->setContent($tr);
|
|
|
|
return $this->toHTML();
|
|
}
|
|
|
|
}
|
|
|
|
class cHTMLForm extends cHTML {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
$this->setContentlessTag(false);
|
|
$this->_tag = "form";
|
|
}
|
|
|
|
function setVar($var, $value) {
|
|
$this->_vars[$var] = $value;
|
|
}
|
|
|
|
/**
|
|
* setContent: Sets the form's content
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*
|
|
*/
|
|
function setContent($content) {
|
|
$this->_setContent($content);
|
|
}
|
|
|
|
/**
|
|
* Renders the form element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
$out = '';
|
|
foreach ($this->_vars as $var => $value) {
|
|
$f = new cHTMLHiddenField($var, $value);
|
|
$out .= $f->render();
|
|
}
|
|
|
|
$attributes = $this->getAttributes(true);
|
|
|
|
return $this->fillSkeleton($attributes) . $out . $this->_content . $this->fillCloseSkeleton();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Table Head Element
|
|
*
|
|
* @author Timo A. Hummel <timo.hummel@4fb.de>
|
|
*/
|
|
class cHTMLScript extends cHTML {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
$this->setContentlessTag(false);
|
|
$this->_tag = "script";
|
|
}
|
|
|
|
/**
|
|
* setContent: Sets the table head's content
|
|
*
|
|
* @param $content string/object String with the content or an object to render.
|
|
*
|
|
*/
|
|
function setContent($content) {
|
|
$this->_setContent($content);
|
|
}
|
|
|
|
/**
|
|
* Renders the table head element
|
|
*
|
|
* @param none
|
|
* @return string Rendered HTML
|
|
*/
|
|
function toHTML() {
|
|
$attributes = $this->getAttributes(true);
|
|
return $this->fillSkeleton($attributes) . $this->_content . $this->fillCloseSkeleton();
|
|
}
|
|
|
|
}
|
|
|
|
?>
|