Beispiel #1
0
 public function render($attr = array())
 {
     parent::mergeAttr($attr);
     $selected = isset($attr['value']) ? A_Html_Form_Select::_toArray($attr['value']) : array();
     unset($attr['value']);
     $values = A_Html_Form_Select::_toArray($attr['values']);
     if (empty($attr['labels'])) {
         $attr['labels'] = $values;
     }
     $this->removeAttr($attr, 'values');
     $labels = A_Html_Form_Select::_toArray($attr['labels']);
     $this->removeAttr($attr, 'labels');
     if (isset($attr['multiple']) || count($selected) > 1) {
         $attr['name'] .= '[]';
         $attr['multiple'] = 'multiple';
         // multiple sends array
     }
     $str = '';
     foreach ($values as $value) {
         $str .= '<option value="' . $value . '"';
         if (in_array($value, $selected)) {
             $str .= ' selected="selected"';
         }
         $str .= '>' . current($labels) . "</option>";
         next($labels);
     }
     return parent::render('select', $attr, $str);
 }
Beispiel #2
0
 public function render($attr = array(), $content = '')
 {
     if (isset($this)) {
         $content .= $this->partial($attr);
     }
     parent::mergeAttr($attr);
     return parent::render('form', $attr, $content);
 }
Beispiel #3
0
 public function render($attr = array(), $str = '')
 {
     parent::mergeAttr($attr);
     if (!$str && isset($attr['value'])) {
         $str = $attr['value'];
         unset($attr['value']);
     }
     unset($attr['type']);
     return parent::render('span', $attr, $str);
 }
Beispiel #4
0
 public function render($attr = array())
 {
     parent::mergeAttr($attr);
     parent::defaultAttr($attr, array('type' => 'hidden', 'value' => ''));
     if (isset($attr['print'])) {
         $print = $attr['value'];
         $this->removeAttr($attr, 'print');
     } else {
         $print = '';
     }
     return parent::render('input', $attr) . $print;
 }
Beispiel #5
0
 public function render($attr = array(), $str = '', $href = null)
 {
     if ($href !== null) {
         $attr['href'] = $href;
     }
     parent::mergeAttr($attr);
     if (!$str && isset($attr['value'])) {
         $str = $attr['value'];
         unset($attr['value']);
     }
     unset($attr['type']);
     return A_Html_Tag::render('a', $attr, $str);
 }
 public function render($attr = array())
 {
     parent::mergeAttr($attr);
     // normalize values to an array of values for checkboxes
     if (isset($attr['value'])) {
         if (!is_array($attr['value'])) {
             $attr['value'] = array($attr['value']);
         }
     } else {
         $attr['value'] = array();
     }
     // use values as labels if no labels
     if (!isset($attr['labels']) || !$attr['labels']) {
         $attr['labels'] =& $attr['values'];
     }
     if ($attr['type'] == 'checkbox' && isset($attr['name']) && $attr['name']) {
         if (substr($attr['name'], -2) != '[]') {
             $attr['name'] .= '[]';
             // checkboxes send array
         }
     }
     if (!isset($attr['separator'])) {
         $attr['separator'] = '';
     }
     // if single value instead of array of values then make single tag
     if (!isset($attr['values'])) {
         $attr['values'][0] = $attr['value'][0];
         unset($attr['value']);
     }
     $value = isset($attr['value']) ? $attr['value'] : array();
     unset($attr['value']);
     $values = isset($attr['values']) ? $attr['values'] : array();
     unset($attr['values']);
     $labels = isset($attr['labels']) ? $attr['labels'] : array();
     unset($attr['labels']);
     $separator = isset($attr['separator']) ? $attr['separator'] : '';
     unset($attr['separator']);
     $options = array();
     $n = count($values);
     for ($i = 0; $i < $n; $i++) {
         $attr['value'] = $values[$i];
         if (in_array($values[$i], $value)) {
             $attr['checked'] = "checked";
         } else {
             unset($attr['checked']);
         }
         $options[$i] = parent::render('input', $attr) . (isset($labels[$i]) ? $labels[$i] : '');
     }
     return implode($separator, $options);
 }
Beispiel #7
0
 public function render($attr = array(), $str = '')
 {
     parent::mergeAttr($attr);
     if (!$str && isset($attr['value'])) {
         $str = $attr['value'];
         unset($attr['value']);
     }
     unset($attr['type']);
     // label uses for instead of name because it refers to another field
     if (!isset($attr['for']) && isset($attr['name'])) {
         $attr['for'] = $attr['name'];
         unset($attr['name']);
     }
     return parent::render('label', $attr, $str);
 }
Beispiel #8
0
 public function render($attr = array())
 {
     parent::mergeAttr($attr);
     parent::defaultAttr($attr, array('type' => 'button', 'value' => ''));
     return parent::render('input', $attr);
 }
Beispiel #9
0
 public function render($attr = array())
 {
     parent::mergeAttr($attr);
     parent::defaultAttr($attr, array('type' => 'submit'));
     return parent::render('input', $attr);
 }