X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/5517dbf1904795f710675847cd2a49f64009286c..914ba42493e01bc0f79053b0d3cd6348fcdfa0f8:/cookbooks/dmca/files/default/html/HTML/QuickForm/autocomplete.php
diff --git a/cookbooks/dmca/files/default/html/HTML/QuickForm/autocomplete.php b/cookbooks/dmca/files/default/html/HTML/QuickForm/autocomplete.php
new file mode 100644
index 000000000..bb6fe315c
--- /dev/null
+++ b/cookbooks/dmca/files/default/html/HTML/QuickForm/autocomplete.php
@@ -0,0 +1,258 @@
+
+ * @copyright 2001-2011 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * HTML class for a text field
+ */
+require_once 'HTML/QuickForm/text.php';
+
+/**
+ * HTML class for an autocomplete element
+ *
+ * Creates an HTML input text element that
+ * at every keypressed javascript event checks in an array of options
+ * if there's a match and autocompletes the text in case of match.
+ *
+ * For the JavaScript code thanks to Martin Honnen and Nicholas C. Zakas
+ * See {@link http://www.faqts.com/knowledge_base/view.phtml/aid/13562} and
+ * {@link http://www.sitepoint.com/article/1220}
+ *
+ * Example:
+ *
+ * $autocomplete =& $form->addElement('autocomplete', 'fruit', 'Favourite fruit:');
+ * $options = array("Apple", "Orange", "Pear", "Strawberry");
+ * $autocomplete->setOptions($options);
+ *
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Matteo Di Giovinazzo
+ * @version Release: 3.2.16
+ * @since 3.2
+ */
+class HTML_QuickForm_autocomplete extends HTML_QuickForm_text
+{
+ // {{{ properties
+
+ /**
+ * Options for the autocomplete input text element
+ *
+ * @var array
+ * @access private
+ */
+ var $_options = array();
+
+ /**
+ * "One-time" javascript (containing functions), see bug #4611
+ *
+ * @var string
+ * @access private
+ */
+ var $_js = '';
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Input field name attribute
+ * @param string $elementLabel (optional)Input field label in form
+ * @param array $options (optional)Autocomplete options
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array. Date format is passed along the attributes.
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_autocomplete($elementName = null, $elementLabel = null, $options = null, $attributes = null)
+ {
+ $this->HTML_QuickForm_text($elementName, $elementLabel, $attributes);
+ $this->_persistantFreeze = true;
+ $this->_type = 'autocomplete';
+ if (isset($options)) {
+ $this->setOptions($options);
+ }
+ } //end constructor
+
+ // }}}
+ // {{{ setOptions()
+
+ /**
+ * Sets the options for the autocomplete input text element
+ *
+ * @param array $options Array of options for the autocomplete input text element
+ * @access public
+ * @return void
+ */
+ function setOptions($options)
+ {
+ $this->_options = array_values($options);
+ } // end func setOptions
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns Html for the autocomplete input text element
+ *
+ * @access public
+ * @return string
+ */
+ function toHtml()
+ {
+ // prevent problems with grouped elements
+ $arrayName = str_replace(array('[', ']'), array('__', ''), $this->getName()) . '_values';
+
+ $this->updateAttributes(array(
+ 'onkeypress' => 'return window.autocomplete(this, event, ' . $arrayName . ');'
+ ));
+ if ($this->_flagFrozen) {
+ $js = '';
+ } else {
+ $js = "";
+ }
+ return $js . parent::toHtml();
+ }// end func toHtml
+
+ // }}}
+} // end class HTML_QuickForm_autocomplete
+?>