Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
/* vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +----------------------------------------------------------------------+
4
// | PHP version 4.0                                                      |
5
// +----------------------------------------------------------------------+
6
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group             |
7
// +----------------------------------------------------------------------+
8
// | This source file is subject to version 2.0 of the PHP license,       |
9
// | that is bundled with this package in the file LICENSE, and is        |
10
// | available at through the world-wide-web at                           |
11
// | http://www.php.net/license/2_02.txt.                                 |
12
// | If you did not receive a copy of the PHP license and are unable to   |
13
// | obtain it through the world-wide-web, please send a note to          |
14
// | license@php.net so we can mail you a copy immediately.               |
15
// +----------------------------------------------------------------------+
16
// | Authors: Adam Daniel <adaniel1@eesus.jnj.com>                        |
17
// |          Bertrand Mansion <bmansion@mamasam.com>                     |
18
// +----------------------------------------------------------------------+
19
//
20
// $Id$
21
 
22
require_once('HTML/QuickForm/select.php');
23
 
24
/**
25
 * This class takes the same arguments as a select element, but instead
26
 * of creating a select ring it creates hidden elements for all values
27
 * already selected with setDefault or setConstant.  This is useful if
28
 * you have a select ring that you don't want visible, but you need all
29
 * selected values to be passed.
30
 *
31
 * @author       Isaac Shepard <ishepard@bsiweb.com>
32
 *
33
 * @version      1.0
34
 * @since        2.1
35
 * @access       public
36
 */
37
class HTML_QuickForm_hiddenselect extends HTML_QuickForm_select
38
{
39
    // {{{ constructor
40
 
41
    /**
42
     * Class constructor
43
     *
44
     * @param     string    Select name attribute
45
     * @param     mixed     Label(s) for the select (not used)
46
     * @param     mixed     Data to be used to populate options
47
     * @param     mixed     Either a typical HTML attribute string or an associative array (not used)
48
     * @since     1.0
49
     * @access    public
50
     * @return    void
51
     */
52
    public function __construct($elementName=null, $elementLabel=null, $options=null, $attributes=null) {
53
        // TODO MDL-52313 Replace with the call to parent::__construct().
54
        HTML_QuickForm_element::__construct($elementName, $elementLabel, $attributes);
55
        $this->_persistantFreeze = true;
56
        $this->_type = 'hiddenselect';
57
        if (isset($options)) {
58
            $this->load($options);
59
        }
60
    } //end constructor
61
 
62
    /**
63
     * Old syntax of class constructor. Deprecated in PHP7.
64
     *
65
     * @deprecated since Moodle 3.1
66
     */
67
    public function HTML_QuickForm_hiddenselect($elementName=null, $elementLabel=null, $options=null, $attributes=null) {
68
        debugging('Use of class name as constructor is deprecated', DEBUG_DEVELOPER);
69
        self::__construct($elementName, $elementLabel, $options, $attributes);
70
    }
71
 
72
    // }}}
73
    // {{{ toHtml()
74
 
75
    /**
76
     * Returns the SELECT in HTML
77
     *
78
     * @since     1.0
79
     * @access    public
80
     * @return    string
81
     * @throws
82
     */
83
    function toHtml()
84
    {
85
        $tabs    = $this->_getTabs();
86
        $name    = $this->getPrivateName();
87
        $strHtml = '';
88
 
89
        foreach ($this->_values as $key => $val) {
90
            for ($i = 0, $optCount = count($this->_options); $i < $optCount; $i++) {
91
                if ($val == $this->_options[$i]['attr']['value']) {
92
                    $strHtml .= $tabs . '<input' . $this->_getAttrString(array(
93
                        'type'  => 'hidden',
94
                        'name'  => $name,
95
                        'value' => $val
96
                    )) . " />\n" ;
97
                }
98
            }
99
        }
100
 
101
        return $strHtml;
102
    } //end func toHtml
103
 
104
    // }}}
105
    // {{{ accept()
106
 
107
   /**
108
    * This is essentially a hidden element and should be rendered as one
109
    */
110
    function accept(&$renderer, $required=false, $error=null)
111
    {
112
        $renderer->renderHidden($this);
113
    }
114
 
115
    // }}}
116
} //end class HTML_QuickForm_hiddenselect
117
?>