Permalink
Browse files

Added Repeat to Factory and package.xml, added "release" JS files

Started release notes for 2.0.0beta1 (need better description for Repeat)


git-svn-id: http://svn.php.net/repository/pear/packages/HTML_QuickForm2/trunk@325159 c90b9560-bf6c-de11-be94-00142212c4b1
  • Loading branch information...
1 parent b255061 commit ab3142238eeeac4b46a443c00797949686e1982d @sad-spirit sad-spirit committed Apr 13, 2012
Showing with 1,360 additions and 997 deletions.
  1. +1 −0 HTML/QuickForm2/Container.php
  2. +1 −0 HTML/QuickForm2/Factory.php
  3. +16 −0 data/js/min/quickform-repeat.js
  4. +299 −0 data/js/quickform-repeat.js
  5. +1,043 −997 package.xml
View
1 HTML/QuickForm2/Container.php
@@ -71,6 +71,7 @@
* @method HTML_QuickForm2_Element_InputButton addInputButton(string $name, $attributes = null, array $data = array())
* @method HTML_QuickForm2_Element_InputPassword addPassword(string $name, $attributes = null, array $data = array())
* @method HTML_QuickForm2_Element_InputRadio addRadio(string $name, $attributes = null, array $data = array())
+ * @method HTML_QuickForm2_Container_Repeat addRepeat(string $name = '', $attributes = null, array $data = array())
* @method HTML_QuickForm2_Element_InputReset addReset(string $name, $attributes = null, array $data = array())
* @method HTML_QuickForm2_Element_Script addScript(string $name = '', $attributes = null, array $data = array())
* @method HTML_QuickForm2_Element_Select addSelect(string $name, $attributes = null, array $data = array())
View
1 HTML/QuickForm2/Factory.php
@@ -81,6 +81,7 @@ class HTML_QuickForm2_Factory
'inputbutton' => array('HTML_QuickForm2_Element_InputButton', null),
'password' => array('HTML_QuickForm2_Element_InputPassword', null),
'radio' => array('HTML_QuickForm2_Element_InputRadio', null),
+ 'repeat' => array('HTML_QuickForm2_Container_Repeat', null),
'reset' => array('HTML_QuickForm2_Element_InputReset', null),
'script' => array('HTML_QuickForm2_Element_Script', null),
'select' => array('HTML_QuickForm2_Element_Select', null),
View
16 data/js/min/quickform-repeat.js
@@ -0,0 +1,16 @@
+/*
+ HTML_QuickForm2: support functions for repeat elements
+ Package version @package_version@
+ http://pear.php.net/package/HTML_QuickForm2
+
+ Copyright 2006-2012, Alexey Borzov, Bertrand Mansion
+ Licensed under new BSD license
+ http://opensource.org/licenses/bsd-license.php
+*/
+qf.Repeat=function(a,b,d,e,f){a.repeat=this;this.repeatPrototype=this.form=null;this.container=a;this.itemId=b;this.rulesTpl=e;this.scriptsTpl=f;this.triggers=d;e=this.getElementsByClass("repeatAdd",a);for(b=0;d=e[b];b++)qf.events.addListener(d,"click",qf.Repeat.addHandler);a=this.getElementsByClass("repeatRemove",a);for(b=0;d=a[b];b++)qf.events.addListener(d,"click",qf.Repeat.removeHandler)};
+qf.Repeat.addHandler=function(a){for(var a=qf.events.fixEvent(a),b=a.target;b&&!qf.classes.has(b,"repeat");)b=b.parentNode;b&&b.repeat&&b.repeat.add();a.preventDefault()};qf.Repeat.removeHandler=function(a){for(var a=qf.events.fixEvent(a),b=a.target,d;b&&!qf.classes.has(b,"repeat");)qf.classes.has(b,"repeatItem")&&(d=b),b=b.parentNode;b&&b.repeat&&b.repeat.remove(d);a.preventDefault()};
+qf.Repeat.prototype={getElementsByClass:function(){return document.getElementsByClassName?function(a,b){return b.getElementsByClassName(a)}:function(a,b){for(var d=b.getElementsByTagName("*"),e=[],f=0,c;c=d[f];f++)qf.classes.has(c,a)&&e.push(c);return e}}(),findIndex:function(a){var b=RegExp("^"+this.itemId.replace(":idx:","([a-zA-Z0-9_]+?)")+"$"),d;if(a.id&&(d=b.exec(a.id)))return d[1];for(var a=a.getElementsByTagName("*"),e=0,f;f=a[e];e++)if(f.id&&(d=b.exec(f.id)))return d[1]},findForm:function(){for(var a=
+this.container;a&&"form"!==a.nodeName.toLowerCase();)a=a.parentNode;return a},generateIndex:function(){var a;do a="add"+Math.round(1E4*Math.random());while(document.getElementById(this.itemId.replace(":idx:",a)));return a},add:function(){this.repeatPrototype||(this.repeatPrototype=this.getElementsByClass("repeatPrototype",this.container)[0]);var a=this.getElementsByClass("repeatItem",this.container),b=a[a.length-1],d=this.repeatPrototype.cloneNode(!0),e=this.generateIndex();qf.classes.remove(d,"repeatPrototype");
+d.id&&(d.id=d.id.replace(":idx:",e));for(var f=d.getElementsByTagName("*"),a=0,c;c=f[a];a++){c.id&&(c.id=c.id.replace(":idx:",e));c.name&&(c.name=c.name.replace(":idx:",e));if(c.type&&("checkbox"==c.type||"radio"==c.type))c.value=c.value.replace(":idx:",e);c.htmlFor&&(c.htmlFor=c.htmlFor.replace(":idx:",e));"script"==c.nodeName.toLowerCase()&&eval(c.innerHTML.replace(/:idx:/g,e));qf.classes.has(c,"repeatAdd")&&qf.events.addListener(c,"click",qf.Repeat.addHandler);qf.classes.has(c,"repeatRemove")&&
+qf.events.addListener(c,"click",qf.Repeat.removeHandler)}b.parentNode.insertBefore(d,b.nextSibling);this.scriptsTpl&&eval(this.scriptsTpl.replace(/:idx:/g,e));if(this.rulesTpl&&(this.form||(this.form=this.findForm()),this.form.validator)){b=eval(this.rulesTpl.replace(/:idx:/g,e));for(a=0;d=b[a];a++)this.form.validator.rules.push(d)}},remove:function(a){if(this.rulesTpl&&(this.form||(this.form=this.findForm()),this.form.validator)){var b=new qf.Map,d=this.findIndex(a),e=this.form.validator.rules,f,
+c;for(c=0;f=this.triggers[c];c++)b.set(f.replace(":idx:",d),!0);for(c=e.length-1;d=e[c];c--)b.hasKey(d.owner)&&e.splice(c,1)}a.parentNode.removeChild(a)}};
View
299 data/js/quickform-repeat.js
@@ -0,0 +1,299 @@
+/**
+ * HTML_QuickForm2: support functions for repeat elements
+ * Package version @package_version@
+ * http://pear.php.net/package/HTML_QuickForm2
+ *
+ * Copyright 2006-2012, Alexey Borzov, Bertrand Mansion
+ * Licensed under new BSD license
+ * http://opensource.org/licenses/bsd-license.php
+ */
+
+/* $Id$ */
+
+/**
+ * Sets repeat properties and attaches handlers for adding and removing items
+ *
+ * @param {HTMLElement} container
+ * @param {String} itemId
+ * @param {String[]} triggers
+ * @param {String} rulesTpl
+ * @param {String} scriptsTpl
+ * @constructor
+ */
+qf.Repeat = function(container, itemId, triggers, rulesTpl, scriptsTpl)
+{
+ container.repeat = this;
+
+ /**
+ * Form containing the repeat element
+ * @type {HTMLFormElement}
+ */
+ this.form = null;
+
+ /**
+ * Prototype item which will be cloned in add()
+ * @type {HTMLElement}
+ */
+ this.repeatPrototype = null;
+
+ /**
+ * HTML element containing all repeated items
+ * @type {HTMLElement}
+ */
+ this.container = container;
+
+ /**
+ * Id of repeated items, used to deduce index
+ * @type {String}
+ */
+ this.itemId = itemId;
+
+ /**
+ * String containing validation code template, will be eval()'d
+ * @type {String}
+ */
+ this.rulesTpl = rulesTpl;
+
+ /**
+ * String containing elements setup code template, will be eval()'d
+ * @type {String}
+ */
+ this.scriptsTpl = scriptsTpl;
+
+ /**
+ * Templates for element's id attributes, used to remove rules on removing repeated item
+ * @type {String[]}
+ */
+ this.triggers = triggers;
+
+ // find all elements with class repeatAdd inside container...
+ var adders = this.getElementsByClass('repeatAdd', container);
+ for (var i = 0, element; element = adders[i]; i++) {
+ qf.events.addListener(element, 'click', qf.Repeat.addHandler);
+ }
+ // find all elements with class repeatRemove inside container...
+ var removers = this.getElementsByClass('repeatRemove', container);
+ for (i = 0; element = removers[i]; i++) {
+ qf.events.addListener(element, 'click', qf.Repeat.removeHandler);
+ }
+};
+
+/**
+ * Event handler for "add item" onclick events, added automatically on elements with class 'repeatAdd'
+ *
+ * @param {Event} event
+ */
+qf.Repeat.addHandler = function(event)
+{
+ event = qf.events.fixEvent(event);
+
+ var parent = event.target;
+ while (parent && !qf.classes.has(parent, 'repeat')) {
+ parent = parent.parentNode;
+ }
+ if (parent && parent.repeat) {
+ parent.repeat.add();
+ }
+ event.preventDefault();
+};
+
+/**
+ * Event handler for "remove item" onclick events, added automatically on elements with class 'repeatRemove'
+ *
+ * @param {Event} event
+ */
+qf.Repeat.removeHandler = function(event)
+{
+ event = qf.events.fixEvent(event);
+
+ var parent = event.target,
+ item;
+ while (parent && !qf.classes.has(parent, 'repeat')) {
+ if (qf.classes.has(parent, 'repeatItem')) {
+ item = parent;
+ }
+ parent = parent.parentNode;
+ }
+ if (parent && parent.repeat) {
+ parent.repeat.remove(item);
+ }
+ event.preventDefault();
+};
+
+qf.Repeat.prototype = {
+ /**
+ * Finds elements by CSS class name
+ *
+ * Wraps around native getElementsByClassName() if available, uses a custom
+ * implementation if not.
+ *
+ * @function
+ * @param {String} className
+ * @param {Node} node
+ * @returns {Node[]}
+ */
+ getElementsByClass: (function() {
+ if (document.getElementsByClassName) {
+ return function(className, node) {
+ return node.getElementsByClassName(className);
+ };
+ } else {
+ return function(className, node) {
+ var list = node.getElementsByTagName('*'),
+ result = [];
+
+ for (var i = 0, child; child = list[i]; i++) {
+ if (qf.classes.has(child, className)) {
+ result.push(child);
+ }
+ }
+ return result;
+ };
+ }
+ })(),
+ /**
+ * Finds a numeric index for a given repeat item
+ *
+ * @param {Node} item
+ * @returns {Number}
+ */
+ findIndex: function(item)
+ {
+ var itemRegexp = new RegExp('^' + this.itemId.replace(':idx:', '([a-zA-Z0-9_]+?)') + '$'),
+ m;
+
+ if (item.id && (m = itemRegexp.exec(item.id))) {
+ // item has the needed id itself (fieldset case)
+ return m[1];
+ } else {
+ // search for item with a needed id (group case)
+ var elements = item.getElementsByTagName('*');
+ for (var i = 0, element; element = elements[i]; i++) {
+ if (element.id && (m = itemRegexp.exec(element.id))) {
+ return m[1];
+ }
+ }
+ }
+ },
+ /**
+ * Finds a form containing repeat element
+ *
+ * @returns {HTMLFormElement}
+ */
+ findForm: function()
+ {
+ var parent = this.container;
+ while (parent && 'form' !== parent.nodeName.toLowerCase()) {
+ parent = parent.parentNode;
+ }
+ return parent;
+ },
+ /**
+ * Generates a new index for item being added to the repeat
+ *
+ * @returns {String}
+ */
+ generateIndex: function()
+ {
+ var index;
+
+ do {
+ // 10000 will be enough for everybody!
+ index = 'add' + Math.round(Math.random() * 10000);
+ } while (document.getElementById(this.itemId.replace(':idx:', index)));
+ return index;
+ },
+ /**
+ * Adds a new repeated item to the repeat element
+ */
+ add: function()
+ {
+ if (!this.repeatPrototype) {
+ this.repeatPrototype = this.getElementsByClass('repeatPrototype', this.container)[0];
+ }
+
+ var items = this.getElementsByClass('repeatItem', this.container),
+ lastItem = items[items.length - 1],
+ clone = this.repeatPrototype.cloneNode(true),
+ index = this.generateIndex();
+
+ qf.classes.remove(clone, 'repeatPrototype');
+ if (clone.id) {
+ clone.id = clone.id.replace(':idx:', index);
+ }
+ // maybe get rid of this and mangle innerHTML instead?
+ var elements = clone.getElementsByTagName('*');
+ for (var i = 0, element; element = elements[i]; i++) {
+ if (element.id) {
+ element.id = element.id.replace(':idx:', index);
+ }
+ if (element.name) {
+ element.name = element.name.replace(':idx:', index);
+ }
+ if (element.type && ('checkbox' == element.type || 'radio' == element.type)) {
+ element.value = element.value.replace(':idx:', index);
+ }
+ if (element.htmlFor) {
+ element.htmlFor = element.htmlFor.replace(':idx:', index);
+ }
+ // inline script found, eval() 'em
+ if ('script' == element.nodeName.toLowerCase()) {
+ eval(element.innerHTML.replace(/:idx:/g, index));
+ }
+ if (qf.classes.has(element, 'repeatAdd')) {
+ qf.events.addListener(element, 'click', qf.Repeat.addHandler);
+ }
+ if (qf.classes.has(element, 'repeatRemove')) {
+ qf.events.addListener(element, 'click', qf.Repeat.removeHandler);
+ }
+ }
+
+ lastItem.parentNode.insertBefore(clone, lastItem.nextSibling);
+
+ if (this.scriptsTpl) {
+ eval(this.scriptsTpl.replace(/:idx:/g, index));
+ }
+ if (this.rulesTpl) {
+ if (!this.form) {
+ this.form = this.findForm();
+ }
+ if (this.form.validator) {
+ var rules = eval(this.rulesTpl.replace(/:idx:/g, index)),
+ rule;
+ for (i = 0; rule = rules[i]; i++) {
+ this.form.validator.rules.push(rule);
+ }
+ }
+ }
+ },
+ /**
+ * Removes an item from repeat element
+ *
+ * @param {Node} item
+ */
+ remove: function(item)
+ {
+ if (this.rulesTpl) {
+ if (!this.form) {
+ this.form = this.findForm();
+ }
+ if (this.form.validator) {
+ var check = new qf.Map(),
+ index = this.findIndex(item),
+ rules = this.form.validator.rules,
+ trigger, rule, i;
+ for (i = 0; trigger = this.triggers[i]; i++) {
+ check.set(trigger.replace(':idx:', index), true);
+ }
+ for (i = rules.length - 1; rule = rules[i]; i--) {
+ // repeated IDs are unlikely to appear in rule.triggers
+ // without appearing in rule.owner, so we check only owner
+ if (check.hasKey(rule.owner)) {
+ rules.splice(i, 1);
+ }
+ }
+ }
+ }
+ item.parentNode.removeChild(item);
+ }
+};
View
2,040 package.xml
@@ -1,997 +1,1043 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package packagerversion="1.5.1" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>HTML_QuickForm2</name>
- <channel>pear.php.net</channel>
- <summary>PHP5 rewrite of HTML_QuickForm package</summary>
- <description>
- PHP5 rewrite of HTML_QuickForm and HTML_QuickForm_Controller packages.
-
- This package provides methods to create, validate and render HTML forms.
-
- Features:
- * Supports all form elements defined by HTML standard, provides several
- custom elements
- * Server-side and client-side validation, several common rules provided
- * Multipage forms (tabbed forms and wizards)
- * Pluggable elements, rules, renderers and renderer plugins
-
- Major advantages over PHP4 version:
- * Most of the package's functionality is covered by unit tests
- * DOM-like API for building the form structure, new streamlined API for
- elements' values handling
- * Default rendering without tables (inspired by
- HTML_QuickForm_Renderer_Tableless)
- * Renderer plugins for elements with complex rendering needs
- * Ability to chain validation rules with 'and' and 'or'
- * Client-side validation can run &quot;live&quot; on changing the form fields,
- validation errors are displayed near the fields instead of in alert()
- </description>
- <lead>
- <name>Alexey Borzov</name>
- <user>avb</user>
- <email>avb@php.net</email>
- <active>yes</active>
- </lead>
- <lead>
- <name>Bertrand Mansion</name>
- <user>mansion</user>
- <email>golgote@mamasam.com</email>
- <active>yes</active>
- </lead>
- <date>2012-03-20</date>
- <version>
- <release>2.0.0beta1</release>
- <api>2.0.0</api>
- </version>
- <stability>
- <release>beta</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>
-Feature additions
- * Added 'email' Rule (request #16906)
- * Added Stub Renderer which does minimal form processing. Useful for forms
- containing Javascript that are output manually.
- * It is easier to customize client-side validation: all methods of
- qf.Validator are public, CSS class names for validation status are kept in
- validator's property.
- * Test suite now properly runs from SVN checkout and under PHPUnit 3.6
- * PHPDoc cleanup, added @method annotations to Container
-
-Bug fixes
- * Fixed running tests for elements separately (bug #19039)
- * Fixed errors removal in client-side validation (bug #19063)
- * IDs for autogenerated elements no longer start with underscores, default
- form output no longer contains empty &lt;label&gt; tags (bug #19097)
- * HTML_QuickForm2_Controller_Action_Jump defaults to using
- $_SERVER['HTTP_HOST'] for host name (bug #19216)
- * Group::setValue() now properly allows fluent calls (bug #19307)
- * Container::validate() will now return false if any contained element
- has an error message set
- * Added abstract render() method to Node and abstract reset() to Renderer
- * DefaultAction element no longer contains invalid 'width' and 'height'
- attributes, 'src' attribute defaults to 'data:' URL
- * 'Live' client-side rules run only once on changing the form field,
- prevent errors when form HTML contains links
-
-Backwards compatibility issues
- * Items marked deprecated in version 0.6.0 are now removed
- </notes>
- <contents>
- <dir name="/">
- <dir name="HTML">
- <dir name="QuickForm2">
- <dir name="Container">
- <file name="Fieldset.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Group.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /HTML/QuickForm2/Container -->
- <dir name="Controller">
- <dir name="Action">
- <file name="Back.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Direct.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Display.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Jump.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Next.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Submit.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /HTML/QuickForm2/Controller/Action -->
- <file name="Action.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="DefaultAction.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Page.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="SessionContainer.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /HTML/QuickForm2/Controller -->
- <dir name="DataSource">
- <file name="Array.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Session.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Submit.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="SuperGlobal.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /HTML/QuickForm2/DataSource -->
- <dir name="Element">
- <file name="Button.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Date.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Hierselect.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Input.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputButton.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputCheckable.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputCheckbox.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputFile.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputHidden.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputImage.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputPassword.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputRadio.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputReset.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputSubmit.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputText.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Script.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Select.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Static.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Textarea.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /HTML/QuickForm2/Element -->
- <dir name="MessageProvider">
- <file name="Default.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Strftime.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /HTML/QuickForm2/MessageProvider -->
- <dir name="Renderer">
- <file name="Array.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Callback.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Default.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Plugin.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Proxy.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Stub.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /HTML/QuickForm2/Renderer -->
- <dir name="Rule">
- <file name="Callback.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Compare.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Each.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Email.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Empty.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Length.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="MaxFileSize.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="MimeType.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Nonempty.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="NotCallback.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="NotRegex.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Regex.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Required.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /HTML/QuickForm2/Rule -->
- <file name="Container.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Controller.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="DataSource.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Element.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Exception.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Factory.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="JavascriptBuilder.php" role="php">
- <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Loader.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="MessageProvider.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Node.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Renderer.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Rule.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /HTML/QuickForm2 -->
- <file name="QuickForm2.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /HTML -->
- <dir name="tests">
- <dir name="QuickForm2">
- <dir name="Container">
- <file name="AllTests.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="FieldsetTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="GroupTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /tests/QuickForm2/Container -->
- <dir name="Controller">
- <dir name="Action">
- <file name="AllTests.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="BackTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="DirectTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="DisplayTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="JumpTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="NextTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="SubmitTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir>
- <file name="AllTests.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="PageTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /tests/QuickForm2/Controller -->
- <dir name="DataSource">
- <file name="AllTests.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="ArrayTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="SuperGlobalTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /tests/QuickForm2/DataSource -->
- <dir name="Element">
- <file name="AllTests.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="ButtonTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="DateTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputButtonTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputCheckableTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputCheckboxTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputFileTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputHiddenTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputImageTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputPasswordTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputResetTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputSubmitTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="InputTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="SelectTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="StaticTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="TextareaTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /tests/QuickForm2/Element -->
- <dir name="Renderer">
- <file name="AllTests.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="ArrayTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="CallbackTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="DefaultTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="StubTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir>
- <dir name="Rule">
- <file name="AllTests.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="CallbackTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="CompareTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="EachTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="EmailTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="EmptyTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="LengthTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="MaxFileSizeTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="MimeTypeTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="NonemptyTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="NotCallbackTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="NotRegexTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="RegexTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="RequiredTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /QuickForm2/Rule -->
- <dir name="_files">
- <file name="1024-bytes.upload" role="test" />
- <file name="FakeElement.php" role="test" />
- <file name="FakeRule.php" role="test" />
- <file name="InvalidFile.php" role="test" />
- </dir> <!-- /tests/QuickForm2/_files -->
- <file name="AllTests.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="ContainerTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="ContainerOverloadTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="ControllerTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="ElementTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="FactoryTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="FilterTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="JavascriptBuilderTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="NodeTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="RendererTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="RuleTest.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /tests/QuickForm2 -->
- <file name="AllTests.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="QuickForm2Test.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="TestHelper.php" role="test">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /tests -->
- <dir name="docs/examples">
- <dir name="controller">
- <file name="simple.php" role="doc">
- <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
- </file>
- <file name="tabbed.php" role="doc">
- <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
- </file>
- <file name="wizard.php" role="doc">
- <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
- </file>
- </dir> <!-- /docs/examples/controller -->
- <dir name="js">
- <file name="dualselect.js" role="doc" />
- <file name="hierselect-server.php" role="doc" />
- </dir> <!-- /docs/examples/js -->
- <dir name="renderers">
- <dir name="templates">
- <file name="array-twig.tpl" role="doc" />
- </dir> <!-- /docs/examples/renderers/templates -->
- <file name="array-twig.php" role="doc">
- <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
- </file>
- </dir> <!-- /docs/examples/renderers -->
- <dir name="support">
- <file name="hierselect-loader.php" role="doc" />
- </dir> <!-- /docs/examples/support -->
- <file role="doc" name="basic-elements.php">
- <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
- </file>
- <file role="doc" name="builtin-rules.php">
- <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
- </file>
- <file role="doc" name="default-renderer.php" />
- <file role="doc" name="dualselect.php">
- <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
- </file>
- <file name="hierselect-ajax.php" role="doc">
- <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
- </file>
- </dir> <!-- /docs/examples -->
- <dir name="data/js">
- <dir name="min">
- <file name="quickform.js" role="data">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="quickform-hierselect.js" role="data">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /data/js/min -->
- <file name="quickform.js" role="data">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="quickform-hierselect.js" role="data">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /data/js -->
- <file name="data/quickform.css" role="data" />
- </dir>
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.0</min>
- </php>
- <pearinstaller>
- <min>1.5.4</min>
- </pearinstaller>
- <package>
- <name>HTML_Common2</name>
- <channel>pear.php.net</channel>
- <min>2.0.0</min>
- </package>
- </required>
- </dependencies>
- <phprelease>
- <filelist>
- <install as="quickform.css" name="data/quickform.css" />
- <install as="js/quickform.js" name="data/js/quickform.js" />
- <install as="js/quickform-hierselect.js" name="data/js/quickform-hierselect.js" />
- <install as="js/min/quickform.js" name="data/js/min/quickform.js" />
- <install as="js/min/quickform-hierselect.js" name="data/js/min/quickform-hierselect.js" />
- <install as="examples/controller/simple.php" name="docs/examples/controller/simple.php" />
- <install as="examples/controller/tabbed.php" name="docs/examples/controller/tabbed.php" />
- <install as="examples/controller/wizard.php" name="docs/examples/controller/wizard.php" />
- <install as="examples/js/dualselect.js" name="docs/examples/js/dualselect.js" />
- <install as="examples/js/hierselect-server.php" name="docs/examples/js/hierselect-server.php" />
- <install as="examples/renderers/array-twig.php" name="docs/examples/renderers/array-twig.php" />
- <install as="examples/renderers/templates/array-twig.tpl" name="docs/examples/renderers/templates/array-twig.tpl" />
- <install as="examples/support/hierselect-loader.php" name="docs/examples/support/hierselect-loader.php" />
- <install as="examples/basic-elements.php" name="docs/examples/basic-elements.php" />
- <install as="examples/builtin-rules.php" name="docs/examples/builtin-rules.php" />
- <install as="examples/default-renderer.php" name="docs/examples/default-renderer.php" />
- <install as="examples/dualselect.php" name="docs/examples/dualselect.php" />
- <install as="examples/hierselect-ajax.php" name="docs/examples/hierselect-ajax.php" />
-
- <install as="AllTests.php" name="tests/AllTests.php" />
- <install as="QuickForm2Test.php" name="tests/QuickForm2Test.php" />
- <install as="TestHelper.php" name="tests/TestHelper.php" />
- <install as="QuickForm2/AllTests.php" name="tests/QuickForm2/AllTests.php" />
- <install as="QuickForm2/ContainerOverloadTest.php" name="tests/QuickForm2/ContainerOverloadTest.php" />
- <install as="QuickForm2/ContainerTest.php" name="tests/QuickForm2/ContainerTest.php" />
- <install as="QuickForm2/ControllerTest.php" name="tests/QuickForm2/ControllerTest.php" />
- <install as="QuickForm2/ElementTest.php" name="tests/QuickForm2/ElementTest.php" />
- <install as="QuickForm2/FactoryTest.php" name="tests/QuickForm2/FactoryTest.php" />
- <install as="QuickForm2/FilterTest.php" name="tests/QuickForm2/FilterTest.php" />
- <install as="QuickForm2/JavascriptBuilderTest.php" name="tests/QuickForm2/JavascriptBuilderTest.php" />
- <install as="QuickForm2/NodeTest.php" name="tests/QuickForm2/NodeTest.php" />
- <install as="QuickForm2/RendererTest.php" name="tests/QuickForm2/RendererTest.php" />
- <install as="QuickForm2/RuleTest.php" name="tests/QuickForm2/RuleTest.php" />
- <install as="QuickForm2/Container/AllTests.php" name="tests/QuickForm2/Container/AllTests.php" />
- <install as="QuickForm2/Container/FieldsetTest.php" name="tests/QuickForm2/Container/FieldsetTest.php" />
- <install as="QuickForm2/Container/GroupTest.php" name="tests/QuickForm2/Container/GroupTest.php" />
- <install as="QuickForm2/Controller/AllTests.php" name="tests/QuickForm2/Controller/AllTests.php" />
- <install as="QuickForm2/Controller/PageTest.php" name="tests/QuickForm2/Controller/PageTest.php" />
- <install as="QuickForm2/Controller/Action/AllTests.php" name="tests/QuickForm2/Controller/Action/AllTests.php" />
- <install as="QuickForm2/Controller/Action/BackTest.php" name="tests/QuickForm2/Controller/Action/BackTest.php" />
- <install as="QuickForm2/Controller/Action/DirectTest.php" name="tests/QuickForm2/Controller/Action/DirectTest.php" />
- <install as="QuickForm2/Controller/Action/DisplayTest.php" name="tests/QuickForm2/Controller/Action/DisplayTest.php" />
- <install as="QuickForm2/Controller/Action/JumpTest.php" name="tests/QuickForm2/Controller/Action/JumpTest.php" />
- <install as="QuickForm2/Controller/Action/NextTest.php" name="tests/QuickForm2/Controller/Action/NextTest.php" />
- <install as="QuickForm2/Controller/Action/SubmitTest.php" name="tests/QuickForm2/Controller/Action/SubmitTest.php" />
- <install as="QuickForm2/DataSource/AllTests.php" name="tests/QuickForm2/DataSource/AllTests.php" />
- <install as="QuickForm2/DataSource/ArrayTest.php" name="tests/QuickForm2/DataSource/ArrayTest.php" />
- <install as="QuickForm2/DataSource/SuperGlobalTest.php" name="tests/QuickForm2/DataSource/SuperGlobalTest.php" />
- <install as="QuickForm2/Element/AllTests.php" name="tests/QuickForm2/Element/AllTests.php" />
- <install as="QuickForm2/Element/ButtonTest.php" name="tests/QuickForm2/Element/ButtonTest.php" />
- <install as="QuickForm2/Element/DateTest.php" name="tests/QuickForm2/Element/DateTest.php" />
- <install as="QuickForm2/Element/InputButtonTest.php" name="tests/QuickForm2/Element/InputButtonTest.php" />
- <install as="QuickForm2/Element/InputCheckableTest.php" name="tests/QuickForm2/Element/InputCheckableTest.php" />
- <install as="QuickForm2/Element/InputCheckboxTest.php" name="tests/QuickForm2/Element/InputCheckboxTest.php" />
- <install as="QuickForm2/Element/InputFileTest.php" name="tests/QuickForm2/Element/InputFileTest.php" />
- <install as="QuickForm2/Element/InputHiddenTest.php" name="tests/QuickForm2/Element/InputHiddenTest.php" />
- <install as="QuickForm2/Element/InputImageTest.php" name="tests/QuickForm2/Element/InputImageTest.php" />
- <install as="QuickForm2/Element/InputPasswordTest.php" name="tests/QuickForm2/Element/InputPasswordTest.php" />
- <install as="QuickForm2/Element/InputResetTest.php" name="tests/QuickForm2/Element/InputResetTest.php" />
- <install as="QuickForm2/Element/InputSubmitTest.php" name="tests/QuickForm2/Element/InputSubmitTest.php" />
- <install as="QuickForm2/Element/InputTest.php" name="tests/QuickForm2/Element/InputTest.php" />
- <install as="QuickForm2/Element/SelectTest.php" name="tests/QuickForm2/Element/SelectTest.php" />
- <install as="QuickForm2/Element/StaticTest.php" name="tests/QuickForm2/Element/StaticTest.php" />
- <install as="QuickForm2/Element/TextareaTest.php" name="tests/QuickForm2/Element/TextareaTest.php" />
- <install as="QuickForm2/Renderer/AllTests.php" name="tests/QuickForm2/Renderer/AllTests.php" />
- <install as="QuickForm2/Renderer/ArrayTest.php" name="tests/QuickForm2/Renderer/ArrayTest.php" />
- <install as="QuickForm2/Renderer/CallbackTest.php" name="tests/QuickForm2/Renderer/CallbackTest.php" />
- <install as="QuickForm2/Renderer/DefaultTest.php" name="tests/QuickForm2/Renderer/DefaultTest.php" />
- <install as="QuickForm2/Renderer/StubTest.php" name="tests/QuickForm2/Renderer/StubTest.php" />
- <install as="QuickForm2/Rule/AllTests.php" name="tests/QuickForm2/Rule/AllTests.php" />
- <install as="QuickForm2/Rule/CallbackTest.php" name="tests/QuickForm2/Rule/CallbackTest.php" />
- <install as="QuickForm2/Rule/CompareTest.php" name="tests/QuickForm2/Rule/CompareTest.php" />
- <install as="QuickForm2/Rule/EachTest.php" name="tests/QuickForm2/Rule/EachTest.php" />
- <install as="QuickForm2/Rule/EmailTest.php" name="tests/QuickForm2/Rule/EmailTest.php" />
- <install as="QuickForm2/Rule/EmptyTest.php" name="tests/QuickForm2/Rule/EmptyTest.php" />
- <install as="QuickForm2/Rule/LengthTest.php" name="tests/QuickForm2/Rule/LengthTest.php" />
- <install as="QuickForm2/Rule/MaxFileSizeTest.php" name="tests/QuickForm2/Rule/MaxFileSizeTest.php" />
- <install as="QuickForm2/Rule/MimeTypeTest.php" name="tests/QuickForm2/Rule/MimeTypeTest.php" />
- <install as="QuickForm2/Rule/NonemptyTest.php" name="tests/QuickForm2/Rule/NonemptyTest.php" />
- <install as="QuickForm2/Rule/NotCallbackTest.php" name="tests/QuickForm2/Rule/NotCallbackTest.php" />
- <install as="QuickForm2/Rule/NotRegexTest.php" name="tests/QuickForm2/Rule/NotRegexTest.php" />
- <install as="QuickForm2/Rule/RegexTest.php" name="tests/QuickForm2/Rule/RegexTest.php" />
- <install as="QuickForm2/Rule/RequiredTest.php" name="tests/QuickForm2/Rule/RequiredTest.php" />
- <install as="QuickForm2/_files/1024-bytes.upload" name="tests/QuickForm2/_files/1024-bytes.upload" />
- <install as="QuickForm2/_files/FakeElement.php" name="tests/QuickForm2/_files/FakeElement.php" />
- <install as="QuickForm2/_files/FakeRule.php" name="tests/QuickForm2/_files/FakeRule.php" />
- <install as="QuickForm2/_files/InvalidFile.php" name="tests/QuickForm2/_files/InvalidFile.php" />
- </filelist>
- </phprelease>
- <changelog>
- <release>
- <date>2011-09-29</date>
- <version>
- <release>0.6.1</release>
- <api>0.6.0</api>
- </version>
- <stability>
- <release>beta</release>
- <api>beta</api>
- </stability>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>
-Bug fixes
- * Callback renderer did not export setLabelCallback() method (bug #18833)
- * Trying to use Static element under PHP 5.2 resulted in fatal error (bug #18874)
- * persistentFreeze() is on by default for text and password elements
-
-Other features and changes
- * Added an example showing how to output the form with Twig template engine
- * Space characters are no longer allowed in 'id' attribute values (request #18683)
- * Added array type hinting to $data parameter in all elements' constructors
- * Fixed copypasted PHPDoc in several places
- </notes>
- </release>
- <release>
- <date>2011-06-13</date>
- <version>
- <release>0.6.0</release>
- <api>0.6.0</api>
- </version>
- <stability>
- <release>beta</release>
- <api>beta</api>
- </stability>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>
-Milestone 6: &quot;live&quot; validation, localization changes, moving to beta
-
-Major additions and changes
- * It is now possible to run client-side validation rules on changing the
- fields value / leaving the field (onchange / onblur) as well as on form
- submit (see request #5308)
- * Client-side validation errors are now displayed near the elements by
- default instead of in javascript alert() dialog. This is mostly similar
- to behaviour of old HTML_QuickForm_DHTMLRulesTableless package.
- * Localization messages (month and weekday names for Date, upload errors for
- InputFile) are now returned by special &quot;message provider&quot; object
- or callback (request #18341). A message provider for Date element using
- current locale data is available (request #5558)
- * Added a new optional renderer that uses PHP callbacks to render form elements
-
-Other features and changes
- * Static elements can now wrap their content in a given tag having element's
- attributes, e.g. &lt;div&gt; or &lt;img&gt; (see request #8626)
- * It is now possible to set maximum and minimum hour in Date element's hours
- select (request #4061, works for 24-hour format) and maximum and minimum
- month in its months select (request #5957)
- * File upload elements can no longer be added to method=&quot;get&quot; forms,
- form's enctype attribute is automatically set (request #16807)
- * Added a separate HTML_QuickForm2::isSubmitted() method, can be used to
- check whether the form was sumbitted instead of checking an array of its
- data sources for submit one
- * Added HTML_QuickForm2_Renderer::methodExists() method, this can be used
- to check whether a custom renderer has a necessary method / plugin and
- fall back to the Default renderer if it doesn't
- * Added default 'value' attribute for radiobuttons
- * Array renderer always returns group separator as an array of length
- count($group) - 1, making it easier to use in templates
- * Added CLIENT_SERVER and ONBLUR_CLIENT_SERVER constants to
- HTML_QuickForm2_Rule, these make calls to addRule() less verbose
- * Minified versions of javascript libraries are now provided
-
-Bug fixes
- * Unit tests can now run under PHPUnit 3.5
- * Required rule will throw an Exception if not given an error message (bug #18133)
- * Default maxYear in Date element is now current year rather than 2010 (bug #18171)
- * Group::removeChild() failed if group's name contained brackets (bug #18182)
- * Values for elements named like 'foo[]' are now properly handled by getValue()
-
-Backwards compatibility issues
- * Javascript libraries are now installed into js/ and js/min/ subdirectories
- of base data directory
- * 'errorMessages' parameter for HTML_QuickForm2_Element_InputFile is
- deprecated and will be removed in the next release. Use message providers
- </notes>
- </release>
- <release>
- <date>2010-12-09</date>
- <version>
- <release>0.5.0</release>
- <api>0.5.0</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>
-Milestone 5: Javascript support, client-side validation, filters
-
-Major additions and changes
- * It is now possible to run validation rules client-side as well as
- server-side. This is controlled by passing a parameter to addRule()
- * Implemented client-side validation for most builtin rules (MaxFileSize and
- MimeType rules for file uploads cannot work client-side)
- * Added JavascriptBuilder class, an instance of that is stored in Renderer and
- aggregates client-side rules, references to Javascript library files and
- Javascript for elements' initialization. Inline Javascript can be easily
- added with a special Script element
- * Implemented base Javascript library to support client-side validation.
- It should hopefully allow easier customization than inline Javascript in
- HTML_QuickForm 3.x
- * Implemented addFilter() and addRecursiveFilter() methods which can be used
- to (recursively) apply filter callbacks to element values when calling
- getValue(). A new getRawValue() method allows getting unfiltered values.
-
-Other features and changes
- * Ported Date element from HTML_QuickForm 3.x
- * Ported Hierselect element from HTML_QuickForm 3.x, it can now use callbacks
- to load additional options via AJAX (see enclosed hierselect-ajax.php example)
- * Ported Static element from HTML_QuickForm 3.x
- * Added HTML_QuickForm2_Node::getData() method
- * Added NotCallback and NotRegex rules, they consider element valid if callback
- returns false for its value / if the value does not match regex, respectively
- * It is now possible for autogenerated 'id' attributes to not have mandatory
- indexes appended. Use HTML_Common2::setOption('id_force_append_index', false);
- * Container rules are called after rules on contained elements (request #17576)
-
-Bug fixes
- * Added a div around form elements to prevent generating invalid HTML (bug #17217)
- * Fixed counterintuitive behaviour of DataSource_Array (reported by Cedrick Gout
- in pear-general mailing list)
-
-Backwards compatibility issues
- * Methods marked as deprecated in release 0.4.0 are now removed
- </notes>
- </release>
- <release>
- <version>
- <release>0.4.0</release>
- <api>0.4.0</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <date>2010-03-08</date>
- <notes>
-Milestone 4: port of HTML_QuickForm_Controller, group rules
-
-Major additions and changes
- * Includes a port of HTML_QuickForm_Controller. It is now possible to create
- multipage forms (wizards, tabbed forms, etc.) with HTML_QuickForm2
- * It is now possible to leverage existing rules for group validation
- (see also request #12610)
- * Rule configuration redone, now an error for an incomplete or bogus
- configuration will be thrown immediately on adding a Rule rather than on
- validating with it. Rule::getConfig() will now return the complete
- configuration rather than a local part of it.
-
-Features added
- * It is possible to disable &quot;intrinsic validation&quot; for select
- elements (request #13088)
- * Checkboxes named 'foo[]' properly get their values from data sources
- (request #16806)
- * Arrays generated by Array Renderer for fieldsets and groups contain
- 'type' keys (request #16937)
- * Added setElementTemplateForGroupClass() and setElementTemplateForGroupId()
- methods HTML_QuickForm2_Renderer_Default setting templates for grouped
- elements within a group of a given class or with a given id, respectively
-
-Bug fixes
- * E_NOTICE for an undefined index could be emitted when outputting
- a checkbox (bug #16816)
-
-Backwards compatibility issues
- * HTML_QuickForm2_Renderer_Default::setGroupedTemplateForClass() is
- deprecated
- * If you implemented custom Rules, you should rewrite them to conform
- to the new Rule configuration approach (this may require implementing
- custom mergeConfig() and setConfig() methods) and implement
- validateOwner() method instead of checkValue(). Old-style Rules will emit
- notices in 0.4.0 and will stop working completely in the next release.
- * Packaging changes: data/, docs/ and tests/ contents are installed without
- redundant subdirectories, e.g. quickform.css now resides in
- @data_dir@/HTML_QuickForm2 rather than
- @data_dir@/HTML_QuickForm2/data
- </notes>
- </release>
- <release>
- <version>
- <release>0.3.0</release>
- <api>0.3.0</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <date>2009-10-25</date>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>
-Milestone 3: renderers and groups
-
-Major additions and changes
- * Renderers implemented, Default and Array renderers ported from QuickForm 3.x
- * Groups implemented
-
-Feature requests addressed:
- * Default rendering without tables (request #9116)
- * setSeparator() method (request #9942)
-
-Bug fixes:
- * Updated PHP dependency to 5.2.0 (bug #14110, PHP bug #37632)
- * 'checked' attributed on checkboxes and radios was not updated after changing
- 'value' attribute (bug #15708)
-
-Deprecated features:
- * setOptions() and getOptions() methods of HTML_QuickForm2_Rule are
- deprecated and will be removed in the next release. Use setConfig() and
- getConfig() instead.
-
-WARNING: next release will have backwards compatibility breaks in setting Rule
-configuration data. If you are just using built-in Rules you should not be
-affected, but if you wrote custom subclasses for HTML_QuickForm2_Rule then pay
-special attention to changes in SVN.
- </notes>
- </release>
- <release>
- <version>
- <release>0.2.0</release>
- <api>0.2.0</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <date>2007-10-22</date>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>
-Milestone 2: now with server-side validation support
-
-Major additions and changes:
- * Server-side validation support added
- * API break: changed number and order of parameters for element constructors
- * Fluent interfaces: methods that previously returned nothing now return $this
- * Added method overloading to Container, allowing $form-&gt;addTextarea(...)
-
-Feature requests addressed:
- * Possibility to control validation of an element based on value of some
- other element (request #4534)
- * Rule comparing value of an element with numeric constants (request #4728)
- * Possibility to toggle validation of empty elements (request #9097)
-
-Bug fixes (bugs submitted for HTML_QuickForm package):
- * Wrong options could be selected in &lt;select&gt; elements if numeric strings
- were used as options' values (bug #10837, bug #11138)
-
-Other resources to consider:
- * QF2 development wiki: http://quickform.mamasam.com/wiki/home
- * PHPUnit package from channel pear.phpunit.de is needed to run tests
- </notes>
- </release>
- <release>
- <version>
- <release>0.1.0</release>
- <api>0.1.0</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <date>2007-04-17</date>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>
-Milestone 1
-
-Available functionality in this release:
- * Base classes
- * Standard HTML elements
- * Data sources
-
-Changes to observe for those familiar with HTML_QuickForm:
- * DOM-inspired API for working with element hierarchy
- * Streamlined API for processing the elements' values
-
-The following feature requests were addressed in this release:
- * Request #1283: Optgroup support
- * Request #1681: Better access to grouped elements
- * Request #4137: Form-wide functions for unfreezing and setting persistent freeze
- (also in request #6421)
- * Request #4564: Checkboxes can be created with arbitrary value
- * Request #4793: Fixed the misspelled 'persistent' word in method names
-
-Other resources to consider:
- * QF2 development wiki: http://quickform.mamasam.com/wiki/home
- * PHPUnit package from channel pear.phpunit.de is needed to run tests
- </notes>
- </release>
- </changelog>
-</package>
+<?xml version="1.0" encoding="UTF-8"?>
+<package packagerversion="1.5.1" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
+ http://pear.php.net/dtd/tasks-1.0.xsd
+ http://pear.php.net/dtd/package-2.0
+ http://pear.php.net/dtd/package-2.0.xsd">
+ <name>HTML_QuickForm2</name>
+ <channel>pear.php.net</channel>
+ <summary>PHP5 rewrite of HTML_QuickForm package</summary>
+ <description>
+ PHP5 rewrite of HTML_QuickForm and HTML_QuickForm_Controller packages.
+
+ This package provides methods to create, validate and render HTML forms.
+
+ Features:
+ * Supports all form elements defined by HTML standard, provides several
+ custom elements
+ * Server-side and client-side validation, several common rules provided
+ * Multipage forms (tabbed forms and wizards)
+ * Pluggable elements, rules, renderers and renderer plugins
+
+ Major advantages over PHP4 version:
+ * Most of the package's functionality is covered by unit tests
+ * DOM-like API for building the form structure, new streamlined API for
+ elements' values handling
+ * Default rendering without tables (inspired by
+ HTML_QuickForm_Renderer_Tableless)
+ * Renderer plugins for elements with complex rendering needs
+ * Ability to chain validation rules with 'and' and 'or'
+ * Client-side validation can run &quot;live&quot; on changing the form fields,
+ validation errors are displayed near the fields instead of in alert()
+ </description>
+ <lead>
+ <name>Alexey Borzov</name>
+ <user>avb</user>
+ <email>avb@php.net</email>
+ <active>yes</active>
+ </lead>
+ <lead>
+ <name>Bertrand Mansion</name>
+ <user>mansion</user>
+ <email>golgote@mamasam.com</email>
+ <active>yes</active>
+ </lead>
+ <date>2012-04-30</date>
+ <version>
+ <release>2.0.0beta2</release>
+ <api>2.0.0</api>
+ </version>
+ <stability>
+ <release>beta</release>
+ <api>stable</api>
+ </stability>
+ <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
+ <notes>
+Feature additions
+ * Repeat element
+
+Bug fixes
+ * Autogenerated 'id' attributes no longer start with numbers
+ * Group::setValue() works properly for a group containing checkboxes named 'foo[]'
+ * 'checked' attribute for a checkbox is removed if form has data sources and
+ none of them contains a value for that checkbox
+ * Explicitly given value=&quot;0&quot; for a checkbox is not replaced by value=&quot;1&quot;
+ * setValue(null) no longer causes value=&quot;value&quot; in some &lt;input&gt; elements
+ * Hierselect's value is properly updated when its name changes
+ * Unit tests use autoloader instead of explicit 'require_once', all tests now
+ can be run separately
+ </notes>
+ <contents>
+ <dir name="/">
+ <dir name="HTML">
+ <dir name="QuickForm2">
+ <dir name="Container">
+ <file name="Fieldset.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Group.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Repeat.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /HTML/QuickForm2/Container -->
+ <dir name="Controller">
+ <dir name="Action">
+ <file name="Back.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Direct.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Display.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Jump.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Next.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Submit.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /HTML/QuickForm2/Controller/Action -->
+ <file name="Action.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="DefaultAction.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Page.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="SessionContainer.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /HTML/QuickForm2/Controller -->
+ <dir name="DataSource">
+ <file name="Array.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Session.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Submit.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="SuperGlobal.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /HTML/QuickForm2/DataSource -->
+ <dir name="Element">
+ <file name="Button.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Date.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Hierselect.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Input.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputButton.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputCheckable.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputCheckbox.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputFile.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputHidden.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputImage.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputPassword.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputRadio.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputReset.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputSubmit.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputText.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Script.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Select.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Static.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Textarea.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /HTML/QuickForm2/Element -->
+ <dir name="MessageProvider">
+ <file name="Default.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Strftime.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /HTML/QuickForm2/MessageProvider -->
+ <dir name="Renderer">
+ <file name="Array.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Callback.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Default.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Plugin.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Proxy.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Stub.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /HTML/QuickForm2/Renderer -->
+ <dir name="Rule">
+ <file name="Callback.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Compare.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Each.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Email.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Empty.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Length.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="MaxFileSize.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="MimeType.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Nonempty.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="NotCallback.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="NotRegex.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Regex.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Required.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /HTML/QuickForm2/Rule -->
+ <file name="Container.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Controller.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="DataSource.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Element.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Exception.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Factory.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="JavascriptBuilder.php" role="php">
+ <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Loader.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="MessageProvider.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Node.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Renderer.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="Rule.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /HTML/QuickForm2 -->
+ <file name="QuickForm2.php" role="php">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /HTML -->
+ <dir name="tests">
+ <dir name="QuickForm2">
+ <dir name="Container">
+ <file name="AllTests.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="FieldsetTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="GroupTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="RepeatTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /tests/QuickForm2/Container -->
+ <dir name="Controller">
+ <dir name="Action">
+ <file name="AllTests.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="BackTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="DirectTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="DisplayTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="JumpTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="NextTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="SubmitTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir>
+ <file name="AllTests.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="PageTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /tests/QuickForm2/Controller -->
+ <dir name="DataSource">
+ <file name="AllTests.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="ArrayTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="SuperGlobalTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /tests/QuickForm2/DataSource -->
+ <dir name="Element">
+ <file name="AllTests.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="ButtonTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="DateTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="HierselectTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputButtonTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputCheckableTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputCheckboxTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputFileTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputHiddenTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputImageTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputPasswordTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputResetTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputSubmitTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="InputTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="SelectTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="StaticTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="TextareaTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /tests/QuickForm2/Element -->
+ <dir name="Renderer">
+ <file name="AllTests.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="ArrayTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="CallbackTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="DefaultTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="StubTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir>
+ <dir name="Rule">
+ <file name="AllTests.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="CallbackTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="CompareTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="EachTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="EmailTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="EmptyTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="LengthTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="MaxFileSizeTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="MimeTypeTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="NonemptyTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="NotCallbackTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="NotRegexTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="RegexTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="RequiredTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /QuickForm2/Rule -->
+ <dir name="_files">
+ <file name="1024-bytes.upload" role="test" />
+ <file name="FakeElement.php" role="test" />
+ <file name="FakeRule.php" role="test" />
+ <file name="InvalidFile.php" role="test" />
+ </dir> <!-- /tests/QuickForm2/_files -->
+ <file name="AllTests.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="ContainerTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="ContainerOverloadTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="ControllerTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="ElementTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="FactoryTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="FilterTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="JavascriptBuilderTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="NodeTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="RendererTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="RuleTest.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /tests/QuickForm2 -->
+ <file name="AllTests.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="QuickForm2Test.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ <file name="TestHelper.php" role="test">
+ <tasks:replace from="@package_version@" to="version" type="package-info" />
+ </file>
+ </dir> <!-- /tests -->
+ <dir name="docs/examples">
+ <dir name="controller">
+ <file name="simple.php" role="doc">
+ <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
+ </file>
+ <file name="tabbed.php" role="doc">
+ <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
+ </file>
+ <file name="wizard.php" role="doc">
+ <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
+ </file>
+ </dir> <!-- /docs/examples/controller -->
+ <dir name="js">
+ <file name="dualselect.js" role="doc" />
+ <file name="hierselect-server.php" role="doc" />
+ </dir> <!-- /docs/examples/js -->
+ <dir name="renderers">
+ <dir name="templates">
+ <file name="array-twig.tpl" role="doc" />
+ </dir> <!-- /docs/examples/renderers/templates -->
+ <file name="array-twig.php" role="doc">
+ <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
+ </file>
+ </dir> <!-- /docs/examples/renderers -->
+ <dir name="support">
+ <file name="hierselect-loader.php" role="doc" />
+ </dir> <!-- /docs/examples/support -->
+ <file role="doc" name="basic-elements.php">
+ <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />