Overview

Packages

  • View
    • Helper

Classes

  • Horde_View_Helper_Base
  • Horde_View_Helper_Benchmark
  • Horde_View_Helper_Benchmark_Timer
  • Horde_View_Helper_Block
  • Horde_View_Helper_Capture
  • Horde_View_Helper_Capture_Base
  • Horde_View_Helper_Capture_ContentFor
  • Horde_View_Helper_Date
  • Horde_View_Helper_Debug
  • Horde_View_Helper_Form
  • Horde_View_Helper_Form_Builder
  • Horde_View_Helper_Form_InstanceTag_Base
  • Horde_View_Helper_Form_InstanceTag_Form
  • Horde_View_Helper_FormTag
  • Horde_View_Helper_Javascript
  • Horde_View_Helper_Number
  • Horde_View_Helper_Tag
  • Horde_View_Helper_Text
  • Horde_View_Helper_Text_Cycle
  • Horde_View_Helper_Url
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Copyright 2007-2008 Maintainable Software, LLC
  4:  * Copyright 2008-2012 Horde LLC (http://www.horde.org/)
  5:  *
  6:  * @author     Mike Naberezny <mike@maintainable.com>
  7:  * @author     Derek DeVries <derek@maintainable.com>
  8:  * @author     Chuck Hagenbuch <chuck@horde.org>
  9:  * @license    http://www.horde.org/licenses/bsd
 10:  * @category   Horde
 11:  * @package    View
 12:  * @subpackage Helper
 13:  */
 14: 
 15: /**
 16:  * @author     Mike Naberezny <mike@maintainable.com>
 17:  * @author     Derek DeVries <derek@maintainable.com>
 18:  * @author     Chuck Hagenbuch <chuck@horde.org>
 19:  * @license    http://www.horde.org/licenses/bsd
 20:  * @category   Horde
 21:  * @package    View
 22:  * @subpackage Helper
 23:  */
 24: class Horde_View_Helper_Form extends Horde_View_Helper_Base
 25: {
 26:     private $_instanceTag = 'Horde_View_Helper_Form_InstanceTag_Form';
 27: 
 28:     public function formFor($objectName)
 29:     {
 30:         $args = func_get_args();
 31:         $options = is_array(end($args)) ? array_pop($args) : array();
 32: 
 33:         if (isset($options['url'])) {
 34:             $urlOptions = $options['url'];
 35:             unset($options['url']);
 36:         } else {
 37:             $urlOptions = array();
 38:         }
 39: 
 40:         if (isset($options['html'])) {
 41:             $htmlOptions = $options['html'];
 42:             unset($options['url']);
 43:         } else {
 44:             $htmlOptions = array();
 45:         }
 46:         echo $this->formTag($urlOptions, $htmlOptions);
 47: 
 48:         $options['end'] = '</form>';
 49: 
 50:         array_push($args, $options);
 51:         return call_user_func_array(array($this, 'fieldsFor'), $args);
 52:     }
 53: 
 54:     public function fieldsFor($objectName)
 55:     {
 56:         $args = func_get_args();
 57:         $options = is_array(end($args)) ? array_pop($args) : array();
 58:         $object  = isset($args[1]) ? $args[1] : null;
 59: 
 60:         $builder = isset($options['builder'])
 61:             ? $options['builder']
 62:             : Horde_View_Base::$defaultFormBuilder;
 63: 
 64:         return new $builder($objectName, $object, $this->_view, $options);
 65:     }
 66: 
 67:     /**
 68:      * Returns a label tag tailored for labelling an input field for a
 69:      * specified attribute (identified by $method) on an object assigned to the
 70:      * template (identified by $objectName).
 71:      *
 72:      * The text of label will default to the attribute name unless you specify
 73:      * it explicitly. Additional options on the label tag can be passed as a
 74:      * hash with $options. These options will be tagged onto the HTML as an
 75:      * HTML element attribute as in the example shown.
 76:      *
 77:      * Examples:
 78:      *
 79:      * <code>
 80:      * $this->label('post', 'title');
 81:      * // => <label for="post_title">Title</label>
 82:      *
 83:      * $this->label('post', 'title', 'A short title')
 84:      * // => <label for="post_title">A short title</label>
 85:      *
 86:      * $this->label('post', 'title', 'A short title',
 87:      *              array('class' => 'title_label'));
 88:      * // => <label for="post_title" class="title_label">A short title</label>
 89:      * </code>
 90:      */
 91:     public function label($objectName, $method, $text, $options = array())
 92:     {
 93:         $object = isset($options['object']) ? $options['object'] : null;
 94:         unset($options['object']);
 95:         $tag = new $this->_instanceTag($objectName, $method, $this->_view, $object);
 96:         return $tag->toLabelTag($text, $options);
 97:     }
 98: 
 99:     public function textField($objectName, $method, $options = array())
100:     {
101:         $object = isset($options['object']) ? $options['object'] : null;
102:         unset($options['object']);
103:         $tag = new $this->_instanceTag($objectName, $method, $this->_view, $object);
104:         return $tag->toInputFieldTag('text', $options);
105:     }
106: 
107:     public function passwordField($objectName, $method, $options = array())
108:     {
109:         $object = isset($options['object']) ? $options['object'] : null;
110:         unset($options['object']);
111:         $tag = new $this->_instanceTag($objectName, $method, $this->_view, $object);
112:         return $tag->toInputFieldTag('password', $options);
113:     }
114: 
115:     public function hiddenField($objectName, $method, $options = array())
116:     {
117:         $object = isset($options['object']) ? $options['object'] : null;
118:         unset($options['object']);
119:         $tag = new $this->_instanceTag($objectName, $method, $this->_view, $object);
120:         return $tag->toInputFieldTag('hidden', $options);
121:     }
122: 
123:     public function fileField($objectName, $method, $options = array())
124:     {
125:         $object = isset($options['object']) ? $options['object'] : null;
126:         unset($options['object']);
127:         $tag = new $this->_instanceTag($objectName, $method, $this->_view, $object);
128:         return $tag->toInputFieldTag('file', $options);
129:     }
130: 
131:     public function checkBox($objectName, $method, $options = array(),
132:                              $checkedValue = '1', $uncheckedValue = '0')
133:     {
134:         $object = isset($options['object']) ? $options['object'] : null;
135:         unset($options['object']);
136:         $tag = new $this->_instanceTag($objectName, $method, $this->_view, $object);
137:         return $tag->toCheckBoxTag($options, $checkedValue, $uncheckedValue);
138:     }
139: 
140:     public function radioButton($objectName, $method, $tagValue, $options = array())
141:     {
142:         $object = isset($options['object']) ? $options['object'] : null;
143:         unset($options['object']);
144:         $tag = new $this->_instanceTag($objectName, $method, $this->_view, $object);
145:         return $tag->toRadioButtonTag($tagValue, $options);
146:     }
147: 
148:     public function textArea($objectName, $method, $options = array())
149:     {
150:         $object = isset($options['object']) ? $options['object'] : null;
151:         unset($options['object']);
152:         $tag = new $this->_instanceTag($objectName, $method, $this->_view, $object);
153:         return $tag->toTextAreaTag($options);
154:     }
155: }
156: 
API documentation generated by ApiGen