1<?php
2
3/*
4 * This file is part of the symfony package.
5 * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
6 *
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
9 */
10
11/**
12 * sfWidgetFormInput represents an HTML input tag.
13 *
14 * @package    symfony
15 * @subpackage widget
16 * @author     Fabien Potencier <fabien.potencier@symfony-project.com>
17 * @version    SVN: $Id$
18 */
19class sfWidgetFormInput extends sfWidgetForm
20{
21  /**
22   * Constructor.
23   *
24   * Available options:
25   *
26   *  * type: The widget type
27   *
28   * @param array $options     An array of options
29   * @param array $attributes  An array of default HTML attributes
30   *
31   * @see sfWidgetForm
32   */
33  protected function configure($options = array(), $attributes = array())
34  {
35    $this->addRequiredOption('type');
36
37    // to maintain BC with symfony 1.2
38    $this->setOption('type', 'text');
39  }
40
41  /**
42   * Renders the widget.
43   *
44   * @param  string $name        The element name
45   * @param  string $value       The value displayed in this widget
46   * @param  array  $attributes  An array of HTML attributes to be merged with the default HTML attributes
47   * @param  array  $errors      An array of errors for the field
48   *
49   * @return string An HTML tag string
50   *
51   * @see sfWidgetForm
52   */
53  public function render($name, $value = null, $attributes = array(), $errors = array())
54  {
55    return $this->renderTag('input', array_merge(array('type' => $this->getOption('type'), 'name' => $name, 'value' => $value), $attributes));
56  }
57}
58