diff options
Diffstat (limited to 'inc/Form')
-rw-r--r-- | inc/Form/ButtonElement.php | 34 | ||||
-rw-r--r-- | inc/Form/Form.php | 24 |
2 files changed, 58 insertions, 0 deletions
diff --git a/inc/Form/ButtonElement.php b/inc/Form/ButtonElement.php new file mode 100644 index 000000000..77c30ed4f --- /dev/null +++ b/inc/Form/ButtonElement.php @@ -0,0 +1,34 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class ButtonElement + * + * Represents a simple button + * + * @package dokuwiki\Form + */ +class ButtonElement extends Element { + + /** @var string HTML content */ + protected $content = ''; + + /** + * @param string $name + * @param string $content HTML content of the button. You have to escape it yourself. + */ + function __construct($name, $content = '') { + parent::__construct('button', array('name' => $name, 'value' => 1)); + $this->content = $content; + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '<button ' . buildAttributes($this->attrs()) . '>'.$this->content.'</button>'; + } + +} diff --git a/inc/Form/Form.php b/inc/Form/Form.php index 625557fa1..738f2bcf8 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -234,6 +234,30 @@ class Form extends Element { } /** + * Adds a simple button, escapes the content for you + * + * @param string $name + * @param string $content + * @param int $pos + * @return Element + */ + public function addButton($name, $content, $pos = -1) { + return $this->addElement(new ButtonElement($name, hsc($content)), $pos); + } + + /** + * Adds a simple button, allows HTML for content + * + * @param string $name + * @param string $html + * @param int $pos + * @return Element + */ + public function addButtonHTML($name, $html, $pos = -1) { + return $this->addElement(new ButtonElement($name, $html), $pos); + } + + /** * Add fixed HTML to the form * * @param $html |