about summary refs log tree commit diff stats
path: root/wiki/inc/Form/OptGroup.php
diff options
context:
space:
mode:
authorahriman <ahriman@falte.red>2019-01-02 04:57:35 +0000
committerahriman <ahriman@falte.red>2019-01-02 04:57:35 +0000
commit2bd7f83a6495011ada78ca8a9f2af417caf01760 (patch)
treef9acdb7f09e011c65330ab993d4db3620787dbfb /wiki/inc/Form/OptGroup.php
parentbcb215c3a7e914d05f166846a33860e48bba64fb (diff)
downloadsite-2bd7f83a6495011ada78ca8a9f2af417caf01760.tar.gz
removed dokuwiki
Diffstat (limited to 'wiki/inc/Form/OptGroup.php')
-rw-r--r--wiki/inc/Form/OptGroup.php100
1 files changed, 0 insertions, 100 deletions
diff --git a/wiki/inc/Form/OptGroup.php b/wiki/inc/Form/OptGroup.php
deleted file mode 100644
index 791f0b3..0000000
--- a/wiki/inc/Form/OptGroup.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-namespace dokuwiki\Form;
-
-
-class OptGroup extends Element {
-    protected $options = array();
-    protected $value;
-
-    /**
-     * @param string $label The label text for this element (will be autoescaped)
-     * @param array  $options The available options
-     */
-    public function __construct($label, $options) {
-        parent::__construct('optGroup', array('label' => $label));
-        $this->options($options);
-    }
-
-    /**
-     * Store the given value so it can be used during rendering
-     *
-     * This is intended to be only called from within @see DropdownElement::val()
-     *
-     * @param string $value
-     * @return bool true if an option with the given value exists, false otherwise
-     */
-    public function storeValue($value) {
-        $this->value = $value;
-        return isset($this->options[$value]);
-    }
-
-    /**
-     * Get or set the options of the optgroup
-     *
-     * Options can be given as associative array (value => label) or as an
-     * indexd array (label = value) or as an array of arrays. In the latter
-     * case an element has to look as follows:
-     * option-value => array (
-     *                 'label' => option-label,
-     *                 'attrs' => array (
-     *                                    attr-key => attr-value, ...
-     *                                  )
-     *                 )
-     *
-     * @param null|array $options
-     * @return $this|array
-     */
-    public function options($options = null) {
-        if($options === null) return $this->options;
-        if(!is_array($options)) throw new \InvalidArgumentException('Options have to be an array');
-        $this->options = array();
-        foreach($options as $key => $val) {
-            if (is_array($val)) {
-                if (!key_exists('label', $val)) throw new \InvalidArgumentException('If option is given as array, it has to have a "label"-key!');
-                if (key_exists('attrs', $val) && is_array($val['attrs']) && key_exists('selected', $val['attrs'])) {
-                    throw new \InvalidArgumentException('Please use function "DropdownElement::val()" to set the selected option');
-                }
-                $this->options[$key] = $val;
-            } elseif(is_int($key)) {
-                $this->options[$val] = array('label' => (string) $val);
-            } else {
-                $this->options[$key] = array('label' => (string) $val);
-            }
-        }
-        return $this;
-    }
-
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    public function toHTML() {
-        if ($this->attributes['label'] === null) {
-            return $this->renderOptions();
-        }
-        $html = '<optgroup '. buildAttributes($this->attrs()) . '>';
-        $html .= $this->renderOptions();
-        $html .= '</optgroup>';
-        return $html;
-    }
-
-
-    /**
-     * @return string
-     */
-    protected function renderOptions() {
-        $html = '';
-        foreach($this->options as $key => $val) {
-            $selected = ((string)$key === (string)$this->value) ? ' selected="selected"' : '';
-            $attrs = '';
-            if (!empty($val['attrs']) && is_array($val['attrs'])) {
-                $attrs = buildAttributes($val['attrs']);
-            }
-            $html .= '<option' . $selected . ' value="' . hsc($key) . '" '.$attrs.'>' . hsc($val['label']) . '</option>';
-        }
-        return $html;
-    }
-}