pieforms-commit Mailing List for Pieforms
Status: Alpha
Brought to you by:
oracleshinoda
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(73) |
Dec
(83) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(16) |
Feb
(19) |
Mar
(12) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(14) |
Sep
(2) |
Oct
(1) |
Nov
(2) |
Dec
(45) |
2008 |
Jan
(20) |
Feb
(3) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(1) |
2009 |
Jan
(2) |
Feb
(2) |
Mar
|
Apr
(2) |
May
(1) |
Jun
(5) |
Jul
(1) |
Aug
(2) |
Sep
(1) |
Oct
|
Nov
(7) |
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
1
|
2
|
3
|
4
(4) |
5
|
6
|
7
|
8
|
9
(2) |
10
|
11
(4) |
12
|
13
|
14
(2) |
15
|
16
|
17
|
18
|
19
(5) |
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
(2) |
28
|
|
|
|
From: <ora...@us...> - 2007-02-27 04:47:11
|
Revision: 191 http://svn.sourceforge.net/pieforms/?rev=191&view=rev Author: oracleshinoda Date: 2007-02-26 20:47:10 -0800 (Mon, 26 Feb 2007) Log Message: ----------- Merged Jeremy's fix to trunk Modified Paths: -------------- pieforms-php5/trunk/src/pieform.php Modified: pieforms-php5/trunk/src/pieform.php =================================================================== --- pieforms-php5/trunk/src/pieform.php 2007-02-27 04:42:39 UTC (rev 190) +++ pieforms-php5/trunk/src/pieform.php 2007-02-27 04:47:10 UTC (rev 191) @@ -524,7 +524,7 @@ $submitted = false; foreach ($this->get_elements() as $element) { if (!empty($element['submitelement']) && isset($global[$element['name']])) { - $function = "{$this->name}_submit_{$element['name']}"; + $function = "{$this->data['successcallback']}_{$element['name']}"; if (function_exists($function)) { $function($this, $values); $submitted = true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-27 04:42:40
|
Revision: 190 http://svn.sourceforge.net/pieforms/?rev=190&view=rev Author: oracleshinoda Date: 2007-02-26 20:42:39 -0800 (Mon, 26 Feb 2007) Log Message: ----------- When the successcallback is overridden, allow each submit button to have its own success function named after the overridden name (thanks to Jeremy for that) Modified Paths: -------------- pieforms-php5/branches/0.2.0/src/pieform.php Modified: pieforms-php5/branches/0.2.0/src/pieform.php =================================================================== --- pieforms-php5/branches/0.2.0/src/pieform.php 2007-02-19 23:17:52 UTC (rev 189) +++ pieforms-php5/branches/0.2.0/src/pieform.php 2007-02-27 04:42:39 UTC (rev 190) @@ -524,7 +524,7 @@ $submitted = false; foreach ($this->get_elements() as $element) { if (!empty($element['submitelement']) && isset($global[$element['name']])) { - $function = "{$this->name}_submit_{$element['name']}"; + $function = "{$this->data['successcallback']}_{$element['name']}"; if (function_exists($function)) { $function($this, $values); $submitted = true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-19 23:17:52
|
Revision: 189 http://svn.sourceforge.net/pieforms/?rev=189&view=rev Author: oracleshinoda Date: 2007-02-19 15:17:52 -0800 (Mon, 19 Feb 2007) Log Message: ----------- Added support for disabling individual option values in a select box. Also added support for labelling options, which unfortunately isn't supported by any common user agent yet. Modified Paths: -------------- pieforms-php5/trunk/src/pieform/elements/select.php Modified: pieforms-php5/trunk/src/pieform/elements/select.php =================================================================== --- pieforms-php5/trunk/src/pieform/elements/select.php 2007-02-19 22:30:27 UTC (rev 188) +++ pieforms-php5/trunk/src/pieform/elements/select.php 2007-02-19 23:17:52 UTC (rev 189) @@ -48,6 +48,9 @@ if (!empty($element['collapseifoneoption']) && isset($element['options']) && is_array($element['options']) && count($element['options']) == 1) { foreach ($element['options'] as $key => $value) { + if (is_array($value)) { + $value = $value['value']; + } $result = $value . '<input type="hidden" name="' . $element['name'] . '" value="' . $key . '">'; } return $result; @@ -79,7 +82,36 @@ else { $selected = ''; } - $result .= "\t<option value=\"" . Pieform::hsc($key) . "\"$selected>" . Pieform::hsc($value) . "</option>\n"; + + // Disable the option if necessary + if (is_array($value) && !empty($value['disabled'])) { + $disabled = ' disabled="disabled"'; + } + else { + $disabled = ''; + } + + // Add a label if necessary. None of the common browsers actually render + // this properly at the moment, but that may change in future. + if (is_array($value) && isset($value['label'])) { + $label = ' label="' . Pieform::hsc($value['label']) . '"'; + } + else { + $label = ''; + } + + // Get the value to display/put in the value attribute + if (is_array($value)) { + if (!isset($value['value'])) { + Pieform::info('No value set for option "' . $key . '" of select element "' . $element['name'] . '"'); + $value = ''; + } + else { + $value = $value['value']; + } + } + + $result .= "\t<option value=\"" . Pieform::hsc($key) . "\"{$selected}{$label}{$disabled}>" . Pieform::hsc($value) . "</option>\n"; } if (!$optionselected && !is_array($values) && $values !== null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-19 22:30:28
|
Revision: 188 http://svn.sourceforge.net/pieforms/?rev=188&view=rev Author: oracleshinoda Date: 2007-02-19 14:30:27 -0800 (Mon, 19 Feb 2007) Log Message: ----------- Added support for calling a help callback. Also added tbody tags to the renderer for IE's benefit Modified Paths: -------------- pieforms-php5/trunk/src/pieform/renderers/table.php Modified: pieforms-php5/trunk/src/pieform/renderers/table.php =================================================================== --- pieforms-php5/trunk/src/pieform/renderers/table.php 2007-02-19 22:23:32 UTC (rev 187) +++ pieforms-php5/trunk/src/pieform/renderers/table.php 2007-02-19 22:30:27 UTC (rev 188) @@ -42,17 +42,17 @@ $closelegendpos = strpos($builtelement, '</legend>'); if ($closelegendpos !== false) { $closelegendpos += 9; - $builtelement = substr($builtelement, 0, $closelegendpos) . '<table>' . substr($builtelement, $closelegendpos); + $builtelement = substr($builtelement, 0, $closelegendpos) . '<table><tbody>' . substr($builtelement, $closelegendpos); } else { $pos = strpos($builtelement, '>') + 1; - $builtelement = substr($builtelement, 0, $pos) . '<table>' . substr($builtelement, $pos); + $builtelement = substr($builtelement, 0, $pos) . '<table><tbody>' . substr($builtelement, $pos); } } else { - $builtelement = substr($builtelement, 0, 11) . '<table>' . substr($builtelement, 11); + $builtelement = substr($builtelement, 0, 11) . '<table><tbody>' . substr($builtelement, 11); } - $builtelement = substr($builtelement, 0, -12) . '</table></fieldset>'; + $builtelement = substr($builtelement, 0, -12) . '</tbody></table></fieldset>'; $result = "\t<tr>\n\t\t<td colspan=\"2\">"; $result .= $builtelement; @@ -83,7 +83,13 @@ // Contextual help if (!empty($rawelement['help'])) { - $result .= ' <span class="help"><a href="#" title="' . Pieform::hsc($rawelement['help']) . '">?</a></span>'; + $function = $form->get_property('helpcallback'); + if (function_exists($function)) { + $result .= $function($form, $rawelement); + } + else { + $result .= ' <span class="help"><a href="#" title="' . Pieform::hsc($rawelement['help']) . '">?</a></span>'; + } } $result .= "</td>\n\t</tr>\n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-19 22:23:37
|
Revision: 187 http://svn.sourceforge.net/pieforms/?rev=187&view=rev Author: oracleshinoda Date: 2007-02-19 14:23:32 -0800 (Mon, 19 Feb 2007) Log Message: ----------- Added support for defining a helpcallback that can be called for drawing the help. Modified Paths: -------------- pieforms-php5/trunk/src/pieform/renderers/div.php Modified: pieforms-php5/trunk/src/pieform/renderers/div.php =================================================================== --- pieforms-php5/trunk/src/pieform/renderers/div.php 2007-02-19 22:10:30 UTC (rev 186) +++ pieforms-php5/trunk/src/pieform/renderers/div.php 2007-02-19 22:23:32 UTC (rev 187) @@ -60,7 +60,13 @@ // Contextual help if (!empty($rawelement['help'])) { - $result .= ' <span class="help"><a href="#" title="' . Pieform::hsc($rawelement['help']) . '">?</a></span>'; + $function = $form->get_property('helpcallback'); + if (function_exists($function)) { + $result .= $function($form, $rawelement); + } + else { + $result .= ' <span class="help"><a href="#" title="' . Pieform::hsc($rawelement['help']) . '">?</a></span>'; + } } // Description - optional description of the element, or other note that should be visible This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-19 22:10:31
|
Revision: 186 http://svn.sourceforge.net/pieforms/?rev=186&view=rev Author: oracleshinoda Date: 2007-02-19 14:10:30 -0800 (Mon, 19 Feb 2007) Log Message: ----------- Merged oneline renderer fix from trunk Modified Paths: -------------- pieforms-php5/branches/0.2.0/src/pieform/renderers/oneline.php Modified: pieforms-php5/branches/0.2.0/src/pieform/renderers/oneline.php =================================================================== --- pieforms-php5/branches/0.2.0/src/pieform/renderers/oneline.php 2007-02-19 22:07:20 UTC (rev 185) +++ pieforms-php5/branches/0.2.0/src/pieform/renderers/oneline.php 2007-02-19 22:10:30 UTC (rev 186) @@ -70,4 +70,11 @@ return $result; } +function pieform_renderer_oneline_get_js($id) { + return <<<EOF +function {$id}_remove_all_errors () {} +function {$id}_set_error () {} +EOF; +} + ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-19 22:08:42
|
Revision: 185 http://svn.sourceforge.net/pieforms/?rev=185&view=rev Author: oracleshinoda Date: 2007-02-19 14:07:20 -0800 (Mon, 19 Feb 2007) Log Message: ----------- Added implementation of get_js for the oneline renderer, which allows it to be used as a jsform (although it doesn't show errors) Modified Paths: -------------- pieforms-php5/trunk/src/pieform/renderers/oneline.php Modified: pieforms-php5/trunk/src/pieform/renderers/oneline.php =================================================================== --- pieforms-php5/trunk/src/pieform/renderers/oneline.php 2007-02-14 08:53:11 UTC (rev 184) +++ pieforms-php5/trunk/src/pieform/renderers/oneline.php 2007-02-19 22:07:20 UTC (rev 185) @@ -70,4 +70,11 @@ return $result; } +function pieform_renderer_oneline_get_js($id) { + return <<<EOF +function {$id}_remove_all_errors () {} +function {$id}_set_error () {} +EOF; +} + ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-14 08:53:16
|
Revision: 184 http://svn.sourceforge.net/pieforms/?rev=184&view=rev Author: oracleshinoda Date: 2007-02-14 00:53:11 -0800 (Wed, 14 Feb 2007) Log Message: ----------- Tagged the 0.2.1 release Added Paths: ----------- pieforms-php5/tags/0.2.1/ Copied: pieforms-php5/tags/0.2.1 (from rev 183, pieforms-php5/branches/0.2.0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-14 08:37:03
|
Revision: 183 http://svn.sourceforge.net/pieforms/?rev=183&view=rev Author: oracleshinoda Date: 2007-02-14 00:37:02 -0800 (Wed, 14 Feb 2007) Log Message: ----------- Fixed the rules-apply-differently-depending-on-element thing. Not sure how this fix wasn't already checked in... Modified Paths: -------------- pieforms-php5/branches/0.2.0/src/pieform.php Modified: pieforms-php5/branches/0.2.0/src/pieform.php =================================================================== --- pieforms-php5/branches/0.2.0/src/pieform.php 2007-02-11 09:43:21 UTC (rev 182) +++ pieforms-php5/branches/0.2.0/src/pieform.php 2007-02-14 08:37:02 UTC (rev 183) @@ -831,7 +831,7 @@ if (!$this->get_error($element['name'])) { // See if this element has a function that describes // how this rule should apply to it - $function = 'pieform_element_' . $element['name'] . '_rule_' . $rule; + $function = 'pieform_element_' . $element['type'] . '_rule_' . $rule; if (!function_exists($function)) { // Try instead the default rule function $function = 'pieform_rule_' . $rule; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-11 09:43:21
|
Revision: 182 http://svn.sourceforge.net/pieforms/?rev=182&view=rev Author: oracleshinoda Date: 2007-02-11 01:43:21 -0800 (Sun, 11 Feb 2007) Log Message: ----------- Merged r180 to the stable 0.2.0 branch Modified Paths: -------------- pieforms-php5/branches/0.2.0/src/pieform/elements/select.php Modified: pieforms-php5/branches/0.2.0/src/pieform/elements/select.php =================================================================== --- pieforms-php5/branches/0.2.0/src/pieform/elements/select.php 2007-02-11 09:40:51 UTC (rev 181) +++ pieforms-php5/branches/0.2.0/src/pieform/elements/select.php 2007-02-11 09:43:21 UTC (rev 182) @@ -27,6 +27,10 @@ /** * Renders a dropdown list, including support for multiple choices. * + * @todo Currently, putting a junk defaultvalue/value for a multiple select + * does not trigger any kind of error, it should perhaps trigger a + * Pieform::info + * * @param Pieform $form The form to render the element for * @param array $element The element to render * @return string The HTML for the element @@ -36,7 +40,13 @@ $element['name'] .= '[]'; } - if (!empty($element['collapseifoneoption']) && count($element['options']) == 1) { + $optionsavailable = true; + if (!isset($element['options']) || !is_array($element['options']) || count($element['options']) < 1) { + $optionsavailable = false; + Pieform::info('Select elements should have at least one option'); + } + + if (!empty($element['collapseifoneoption']) && isset($element['options']) && is_array($element['options']) && count($element['options']) == 1) { foreach ($element['options'] as $key => $value) { $result = $value . '<input type="hidden" name="' . $element['name'] . '" value="' . $key . '">'; } @@ -47,32 +57,22 @@ . $form->element_attributes($element) . (!empty($element['multiple']) ? ' multiple="multiple"' : '') . ">\n"; - if (!isset($element['options']) || !is_array($element['options']) || count($element['options']) < 1) { - $result .= "\t<option></option>\n"; - Pieform::info('Select elements should have at least one option'); + if (!$optionsavailable) { + $result .= "\t<option></option>\n</select>"; + return $result; } - if (empty($element['multiple'])) { - $values = array($form->get_value($element)); - } - else { - if (isset($element['value'])) { - $values = (array) $element['value']; - } - // @todo use $global instead of $_POST - else if (isset($_POST[$element['name']])) { - $values = (array) $_POST[$element['name']]; - } - else if (isset($element['defaultvalue'])) { - $values = (array) $element['defaultvalue']; - } - else { - $values = array(); - } - } + $values = $form->get_value($element); $optionselected = false; foreach ($element['options'] as $key => $value) { - if (in_array($key, $values)) { + // Select the element if it's in the values or if there are no values + // and this is the first option + if ( + (!is_array($values) && $key == $values) + || + (is_array($values) && + (in_array($key, $values) + || (isset($values[0]) && $values[0] === null && !$optionselected)))) { $selected = ' selected="selected"'; $optionselected = true; } @@ -82,7 +82,7 @@ $result .= "\t<option value=\"" . Pieform::hsc($key) . "\"$selected>" . Pieform::hsc($value) . "</option>\n"; } - if (!$optionselected && $values) { + if (!$optionselected && !is_array($values) && $values !== null) { Pieform::info('Invalid value for select "' . $element['name'] .'"'); } @@ -96,4 +96,45 @@ return $element; } +function pieform_element_select_get_value(Pieform $form, $element) { + if (empty($element['multiple'])) { + $global = ($form->get_property('method') == 'get') ? $_GET : $_POST; + if (isset($element['value'])) { + $values = (array) $element['value']; + } + else if (isset($global[$element['name']])) { + $values = (array) $global[$element['name']]; + } + else if (isset($element['defaultvalue'])) { + $values = (array) $element['defaultvalue']; + } + else { + $values = array(null); + } + + if (count($values) != 1) { + Pieform::info('The select element "' . $element['name'] . '" has ' + . 'more than one value, but has not been declared multiple'); + } + return $values[0]; + } + else { + $global = ($form->get_property('method') == 'get') ? $_GET : $_POST; + if (isset($element['value'])) { + $values = (array) $element['value']; + } + else if (isset($global[$element['name']])) { + $values = (array) $global[$element['name']]; + } + else if (!$form->is_submitted() && isset($element['defaultvalue'])) { + $values = (array) $element['defaultvalue']; + } + else { + $values = array(); + } + } + + return $values; +} + ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-11 09:40:52
|
Revision: 181 http://svn.sourceforge.net/pieforms/?rev=181&view=rev Author: oracleshinoda Date: 2007-02-11 01:40:51 -0800 (Sun, 11 Feb 2007) Log Message: ----------- Fixed SF bug #1635520 - select elements no longer require a default value. Also fixed some other minor annoyances around how the select element behaves. Now the only thing that is not done is triggering a notice if a multiselect does not have a correct value Modified Paths: -------------- pieforms-php5/trunk/src/pieform/elements/select.php Modified: pieforms-php5/trunk/src/pieform/elements/select.php =================================================================== --- pieforms-php5/trunk/src/pieform/elements/select.php 2007-02-11 05:39:21 UTC (rev 180) +++ pieforms-php5/trunk/src/pieform/elements/select.php 2007-02-11 09:40:51 UTC (rev 181) @@ -27,6 +27,10 @@ /** * Renders a dropdown list, including support for multiple choices. * + * @todo Currently, putting a junk defaultvalue/value for a multiple select + * does not trigger any kind of error, it should perhaps trigger a + * Pieform::info + * * @param Pieform $form The form to render the element for * @param array $element The element to render * @return string The HTML for the element @@ -36,7 +40,13 @@ $element['name'] .= '[]'; } - if (!empty($element['collapseifoneoption']) && count($element['options']) == 1) { + $optionsavailable = true; + if (!isset($element['options']) || !is_array($element['options']) || count($element['options']) < 1) { + $optionsavailable = false; + Pieform::info('Select elements should have at least one option'); + } + + if (!empty($element['collapseifoneoption']) && isset($element['options']) && is_array($element['options']) && count($element['options']) == 1) { foreach ($element['options'] as $key => $value) { $result = $value . '<input type="hidden" name="' . $element['name'] . '" value="' . $key . '">'; } @@ -47,32 +57,22 @@ . $form->element_attributes($element) . (!empty($element['multiple']) ? ' multiple="multiple"' : '') . ">\n"; - if (!isset($element['options']) || !is_array($element['options']) || count($element['options']) < 1) { - $result .= "\t<option></option>\n"; - Pieform::info('Select elements should have at least one option'); + if (!$optionsavailable) { + $result .= "\t<option></option>\n</select>"; + return $result; } - if (empty($element['multiple'])) { - $values = array($form->get_value($element)); - } - else { - if (isset($element['value'])) { - $values = (array) $element['value']; - } - // @todo use $global instead of $_POST - else if (isset($_POST[$element['name']])) { - $values = (array) $_POST[$element['name']]; - } - else if (isset($element['defaultvalue'])) { - $values = (array) $element['defaultvalue']; - } - else { - $values = array(); - } - } + $values = $form->get_value($element); $optionselected = false; foreach ($element['options'] as $key => $value) { - if (in_array($key, $values)) { + // Select the element if it's in the values or if there are no values + // and this is the first option + if ( + (!is_array($values) && $key == $values) + || + (is_array($values) && + (in_array($key, $values) + || (isset($values[0]) && $values[0] === null && !$optionselected)))) { $selected = ' selected="selected"'; $optionselected = true; } @@ -82,7 +82,7 @@ $result .= "\t<option value=\"" . Pieform::hsc($key) . "\"$selected>" . Pieform::hsc($value) . "</option>\n"; } - if (!$optionselected && $values) { + if (!$optionselected && !is_array($values) && $values !== null) { Pieform::info('Invalid value for select "' . $element['name'] .'"'); } @@ -96,4 +96,45 @@ return $element; } +function pieform_element_select_get_value(Pieform $form, $element) { + if (empty($element['multiple'])) { + $global = ($form->get_property('method') == 'get') ? $_GET : $_POST; + if (isset($element['value'])) { + $values = (array) $element['value']; + } + else if (isset($global[$element['name']])) { + $values = (array) $global[$element['name']]; + } + else if (isset($element['defaultvalue'])) { + $values = (array) $element['defaultvalue']; + } + else { + $values = array(null); + } + + if (count($values) != 1) { + Pieform::info('The select element "' . $element['name'] . '" has ' + . 'more than one value, but has not been declared multiple'); + } + return $values[0]; + } + else { + $global = ($form->get_property('method') == 'get') ? $_GET : $_POST; + if (isset($element['value'])) { + $values = (array) $element['value']; + } + else if (isset($global[$element['name']])) { + $values = (array) $global[$element['name']]; + } + else if (!$form->is_submitted() && isset($element['defaultvalue'])) { + $values = (array) $element['defaultvalue']; + } + else { + $values = array(); + } + } + + return $values; +} + ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-11 05:39:21
|
Revision: 180 http://svn.sourceforge.net/pieforms/?rev=180&view=rev Author: oracleshinoda Date: 2007-02-10 21:39:21 -0800 (Sat, 10 Feb 2007) Log Message: ----------- Merged changes from revision 179 to branch Revision Links: -------------- http://svn.sourceforge.net/pieforms/?rev=179&view=rev Modified Paths: -------------- pieforms-php5/branches/0.2.0/CHANGELOG pieforms-php5/branches/0.2.0/INSTALL pieforms-php5/branches/0.2.0/README Modified: pieforms-php5/branches/0.2.0/CHANGELOG =================================================================== --- pieforms-php5/branches/0.2.0/CHANGELOG 2007-02-11 05:37:20 UTC (rev 179) +++ pieforms-php5/branches/0.2.0/CHANGELOG 2007-02-11 05:39:21 UTC (rev 180) @@ -1,7 +1,7 @@ Pieforms - Advanced web forms made easy Nigel McNie - http://nigel.mcnie.name/ - (C) 2006 Catalyst IT Ltd - http://catalyst.net.nz/ + (C) 2006, 2007 Catalyst IT Ltd - http://catalyst.net.nz/ For a list of changes between versions, please see the sourceforge release notes and changes for the release you have downloaded. This contains both a Modified: pieforms-php5/branches/0.2.0/INSTALL =================================================================== --- pieforms-php5/branches/0.2.0/INSTALL 2007-02-11 05:37:20 UTC (rev 179) +++ pieforms-php5/branches/0.2.0/INSTALL 2007-02-11 05:39:21 UTC (rev 180) @@ -1,7 +1,7 @@ Pieforms - Advanced web forms made easy Nigel McNie - http://nigel.mcnie.name/ - (C) 2006 Catalyst IT Ltd - http://catalyst.net.nz/ + (C) 2006, 2007 Catalyst IT Ltd - http://catalyst.net.nz/ Requirements ------------ Modified: pieforms-php5/branches/0.2.0/README =================================================================== --- pieforms-php5/branches/0.2.0/README 2007-02-11 05:37:20 UTC (rev 179) +++ pieforms-php5/branches/0.2.0/README 2007-02-11 05:39:21 UTC (rev 180) @@ -1,7 +1,7 @@ Pieforms - Advanced web forms made easy Nigel McNie - http://nigel.mcnie.name/ - (C) 2006 Catalyst IT Ltd - http://catalyst.net.nz/ + (C) 2006, 2007 Catalyst IT Ltd - http://catalyst.net.nz/ For installation instructions, please see the INSTALL file in this folder @@ -9,7 +9,7 @@ -------------- Pieforms provides a simple, unified way to create, validate and process web -forms all with a common look and field. It supports many more types of form +forms all with a common look and feel. It supports many more types of form controls (elements) than the standard HTML controls, for example date pickers and ajax comboboxes. In addition, each element can have pluggable rules applied to it, and the elements can be rendered inside custom containers, @@ -55,7 +55,7 @@ Pieforms is licensed under the GNU GPL. For more information, please see the COPYING file that comes with this package. -Pieforms is copyright (C) 2006 Catalyst IT Ltd. +Pieforms is copyright (C) 2006, 2007 Catalyst IT Ltd. Pieforms includes parts of MochiKit [1], which is required for the AJAX post functionality. MochiKit is dual licensed under the MIT license or Academic @@ -65,11 +65,12 @@ functionality, if the json extension for PHP is not installed or enabled. Services_JSON is licensed under the BSD license. -Pieforms includes the free version of the dynarch javascript calendar, which +Pieforms includes the free version of the dynarch javascript calendar [3], which is required for the 'calendar' element to function properly. The calendar is licensed under the LGPL. [1] http://mochikit.com/ [2] http://pear.php.net/pepr/pepr-proposal-show.php?id=198 +[3] http://www.dynarch.com/projects/calendar/ -- Nigel McNie <ni...@ca...> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-11 05:37:25
|
Revision: 179 http://svn.sourceforge.net/pieforms/?rev=179&view=rev Author: oracleshinoda Date: 2007-02-10 21:37:20 -0800 (Sat, 10 Feb 2007) Log Message: ----------- Corrected copyright years, one typo, and linked to the JS calendar Modified Paths: -------------- pieforms-php5/trunk/CHANGELOG pieforms-php5/trunk/INSTALL pieforms-php5/trunk/README Modified: pieforms-php5/trunk/CHANGELOG =================================================================== --- pieforms-php5/trunk/CHANGELOG 2007-02-09 08:38:01 UTC (rev 178) +++ pieforms-php5/trunk/CHANGELOG 2007-02-11 05:37:20 UTC (rev 179) @@ -1,7 +1,7 @@ Pieforms - Advanced web forms made easy Nigel McNie - http://nigel.mcnie.name/ - (C) 2006 Catalyst IT Ltd - http://catalyst.net.nz/ + (C) 2006, 2007 Catalyst IT Ltd - http://catalyst.net.nz/ For a list of changes between versions, please see the sourceforge release notes and changes for the release you have downloaded. This contains both a Modified: pieforms-php5/trunk/INSTALL =================================================================== --- pieforms-php5/trunk/INSTALL 2007-02-09 08:38:01 UTC (rev 178) +++ pieforms-php5/trunk/INSTALL 2007-02-11 05:37:20 UTC (rev 179) @@ -1,7 +1,7 @@ Pieforms - Advanced web forms made easy Nigel McNie - http://nigel.mcnie.name/ - (C) 2006 Catalyst IT Ltd - http://catalyst.net.nz/ + (C) 2006, 2007 Catalyst IT Ltd - http://catalyst.net.nz/ Requirements ------------ Modified: pieforms-php5/trunk/README =================================================================== --- pieforms-php5/trunk/README 2007-02-09 08:38:01 UTC (rev 178) +++ pieforms-php5/trunk/README 2007-02-11 05:37:20 UTC (rev 179) @@ -1,7 +1,7 @@ Pieforms - Advanced web forms made easy Nigel McNie - http://nigel.mcnie.name/ - (C) 2006 Catalyst IT Ltd - http://catalyst.net.nz/ + (C) 2006, 2007 Catalyst IT Ltd - http://catalyst.net.nz/ For installation instructions, please see the INSTALL file in this folder @@ -9,7 +9,7 @@ -------------- Pieforms provides a simple, unified way to create, validate and process web -forms all with a common look and field. It supports many more types of form +forms all with a common look and feel. It supports many more types of form controls (elements) than the standard HTML controls, for example date pickers and ajax comboboxes. In addition, each element can have pluggable rules applied to it, and the elements can be rendered inside custom containers, @@ -55,7 +55,7 @@ Pieforms is licensed under the GNU GPL. For more information, please see the COPYING file that comes with this package. -Pieforms is copyright (C) 2006 Catalyst IT Ltd. +Pieforms is copyright (C) 2006, 2007 Catalyst IT Ltd. Pieforms includes parts of MochiKit [1], which is required for the AJAX post functionality. MochiKit is dual licensed under the MIT license or Academic @@ -65,11 +65,12 @@ functionality, if the json extension for PHP is not installed or enabled. Services_JSON is licensed under the BSD license. -Pieforms includes the free version of the dynarch javascript calendar, which +Pieforms includes the free version of the dynarch javascript calendar [3], which is required for the 'calendar' element to function properly. The calendar is licensed under the LGPL. [1] http://mochikit.com/ [2] http://pear.php.net/pepr/pepr-proposal-show.php?id=198 +[3] http://www.dynarch.com/projects/calendar/ -- Nigel McNie <ni...@ca...> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-09 08:38:04
|
Revision: 178 http://svn.sourceforge.net/pieforms/?rev=178&view=rev Author: oracleshinoda Date: 2007-02-09 00:38:01 -0800 (Fri, 09 Feb 2007) Log Message: ----------- Merged commit 177 from trunk Modified Paths: -------------- pieforms-php5/branches/0.2.0/src/pieform.php Modified: pieforms-php5/branches/0.2.0/src/pieform.php =================================================================== --- pieforms-php5/branches/0.2.0/src/pieform.php 2007-02-09 07:50:51 UTC (rev 177) +++ pieforms-php5/branches/0.2.0/src/pieform.php 2007-02-09 08:38:01 UTC (rev 178) @@ -890,8 +890,6 @@ * without the breakage. */ private function submit_js() { - $strprocessingform = get_string('processingform'); - $result = <<<EOF connect($('{$this->name}'), 'onsubmit', function(e) { if (typeof(tinyMCE) != 'undefined') { tinyMCE.triggerSave(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-09 07:50:51
|
Revision: 177 http://svn.sourceforge.net/pieforms/?rev=177&view=rev Author: oracleshinoda Date: 2007-02-08 23:50:51 -0800 (Thu, 08 Feb 2007) Log Message: ----------- Removed call to get_string that is causing problems Modified Paths: -------------- pieforms-php5/trunk/src/pieform.php Modified: pieforms-php5/trunk/src/pieform.php =================================================================== --- pieforms-php5/trunk/src/pieform.php 2007-02-04 23:00:03 UTC (rev 176) +++ pieforms-php5/trunk/src/pieform.php 2007-02-09 07:50:51 UTC (rev 177) @@ -890,8 +890,6 @@ * without the breakage. */ private function submit_js() { - $strprocessingform = get_string('processingform'); - $result = <<<EOF connect($('{$this->name}'), 'onsubmit', function(e) { if (typeof(tinyMCE) != 'undefined') { tinyMCE.triggerSave(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-04 23:00:06
|
Revision: 176 http://svn.sourceforge.net/pieforms/?rev=176&view=rev Author: oracleshinoda Date: 2007-02-04 15:00:03 -0800 (Sun, 04 Feb 2007) Log Message: ----------- Merged fixes from trunk Modified Paths: -------------- pieforms-php5/branches/0.2.0/src/pieform/elements/fieldset.php pieforms-php5/branches/0.2.0/src/pieform/renderers/table.php pieforms-php5/branches/0.2.0/src/pieform.php Added Paths: ----------- pieforms-php5/branches/0.2.0/src/pieform/elements/bytes.php Copied: pieforms-php5/branches/0.2.0/src/pieform/elements/bytes.php (from rev 171, pieforms-php5/trunk/src/pieform/elements/bytes.php) =================================================================== --- pieforms-php5/branches/0.2.0/src/pieform/elements/bytes.php (rev 0) +++ pieforms-php5/branches/0.2.0/src/pieform/elements/bytes.php 2007-02-04 23:00:03 UTC (rev 176) @@ -0,0 +1,151 @@ +<?php +/** + * This program is part of Pieforms + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * @package pieform + * @subpackage element + * @author Martyn Smith <ma...@ca...> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL + * @copyright (C) 2006 Catalyst IT Ltd http://catalyst.net.nz + * + */ + +/** + * Provides a size chooser, with a text box for a number and a + * select box to choose the units, in bytes, kilobytes, or megabytes + * + * @param Pieform $form The form to render the element for + * @param array $element The element to render + * @return string The HTML for the element + */ +function pieform_element_bytes(Pieform $form, $element) { + $formname = $form->get_name(); + $result = ''; + $name = $element['name']; + if (!isset($element['defaultvalue'])) { + $element['defaultvalue'] = null; + } + + $global = ($form->get_property('method') == 'get') ? $_GET : $_POST; + + // Get the value of the element for rendering. + if (isset($element['value'])) { + $bytes = $element['value']; + $values = pieform_element_bytes_get_bytes_from_bytes($element['value']); + } + else if (isset($global[$element['name']]) + && isset($global[$element['name'] . '_units'])) { + $values = array('number' => $global[$element['name']], + 'units' => $global[$element['name'] . '_units']); + $bytes = $values['number'] * pieform_element_bytes_in($values['units']); + } + else if (isset($element['defaultvalue'])) { + $bytes = $element['defaultvalue']; + $values = pieform_element_bytes_get_bytes_from_bytes($bytes); + } + else { + $values = array('number' => '0', 'units' => 'bytes'); + $bytes = 0; + } + + // @todo probably create with an actual input element, as tabindex doesn't work here for one thing + // Same with the select. And do the events using mochikit signal instead of dom events + $numberinput = '<input'; + $numberinput .= ' type="text" size="8" name="' . $name . '"'; + $numberinput .= ' id="' . $formname . '_' . $name . '" value="' . $values['number'] . '" tabindex="' . $element['tabindex'] . '"'; + $numberinput .= (isset($element['error']) ? ' class="error"' : '') . ">\n"; + + $uselect = '<select onchange="' . $name . '_change()" '; + $uselect .= 'name="' . $name . '_units" id="' . $formname . '_' . $name . '_units"' . ' tabindex="' . $element['tabindex'] . "\">\n"; + foreach (pieform_element_bytes_get_bytes_units() as $u) { + $uselect .= "\t<option value=\"$u\"" . (($values['units'] == $u) ? ' selected="selected"' : '') . '>' + . $form->i18n('element', 'bytes', $u, $element) . "</option>\n"; + } + $uselect .= "</select>\n"; + + return $numberinput . $uselect; +} + +/** + * Gets the value of the expiry element and converts it to a time in seconds. + * + * @param Pieform $form The form the element is attached to + * @param array $element The element to get the value for + * @return int The number of seconds until expiry + */ +function pieform_element_bytes_get_value(Pieform $form, $element) { + $name = $element['name']; + + $global = ($form->get_property('method') == 'get') ? $_GET : $_POST; + $unit = $global[$name . '_units']; + $allunits = pieform_element_bytes_get_bytes_units(); + $number = $global[$name]; + + if (!is_numeric($number)) { + $form->set_error($name, $form->i18n('element', 'bytes', 'invalidvalue', $element)); + } + + if (!in_array($unit,$allunits) || $number < 0) { + return null; + } + return $number * pieform_element_bytes_in($unit); +} + +function pieform_element_bytes_in($units) { + switch ($units) { + case 'megabytes': + return 1048576; + break; + case 'kilobytes': + return 1024; + break; + default: + return 1; + break; + }; +} + +function pieform_element_bytes_i18n() { + return array( + 'en.utf8' => array( + 'bytes' => 'Bytes', + 'kilobytes' => 'Kilobytes', + 'megabytes' => 'Megabytes', + 'invalidvalue' => 'Value must be a number', + ), + ); +} + +function pieform_element_bytes_get_bytes_units() { + return array('bytes', 'kilobytes', 'megabytes'); +} + +function pieform_element_bytes_get_bytes_from_bytes($bytes) { + if ($bytes == null) { + return array('number' => '0', 'units' => 'bytes'); + } + + foreach (array('megabytes', 'kilobytes') as $units) { + if ( $bytes > pieform_element_bytes_in($units) ) { + return array('number' => $bytes / pieform_element_bytes_in($units) , 'units' => $units); + } + } + + return array('number' => $bytes, 'units' => 'bytes'); +} + +?> Modified: pieforms-php5/branches/0.2.0/src/pieform/elements/fieldset.php =================================================================== --- pieforms-php5/branches/0.2.0/src/pieform/elements/fieldset.php 2007-02-04 22:40:21 UTC (rev 175) +++ pieforms-php5/branches/0.2.0/src/pieform/elements/fieldset.php 2007-02-04 23:00:03 UTC (rev 176) @@ -34,8 +34,11 @@ */ function pieform_element_fieldset(Pieform $form, $element) { $result = "\n<fieldset"; - if (!empty($element['collapsable'])) { - $classes = array('collapsable'); + if (!empty($element['collapsible'])) { + if (!isset($element['legend']) || $element['legend'] === '') { + Pieform::info('Collapsible fieldsets should have a legend so they can be toggled'); + } + $classes = array('collapsible'); // Work out whether any of the children have errors on them $error = false; foreach ($element['elements'] as $subelement) { @@ -52,7 +55,7 @@ $result .= ">\n"; if (isset($element['legend'])) { $result .= '<legend'; - if (!empty($element['collapsable'])) { + if (!empty($element['collapsible'])) { $id = substr(md5(microtime()), 0, 4); $result .= ' id="' . $id . '">'; $result .= '<script type="text/javascript">'; Modified: pieforms-php5/branches/0.2.0/src/pieform/renderers/table.php =================================================================== --- pieforms-php5/branches/0.2.0/src/pieform/renderers/table.php 2007-02-04 22:40:21 UTC (rev 175) +++ pieforms-php5/branches/0.2.0/src/pieform/renderers/table.php 2007-02-04 23:00:03 UTC (rev 176) @@ -39,8 +39,15 @@ if ($rawelement['type'] == 'fieldset') { // Add table tags to the build element, to preserve HTML compliance if (0 === strpos($builtelement, "\n<fieldset")) { - $closelegendpos = strpos($builtelement, '</legend>') + 9; - $builtelement = substr($builtelement, 0, $closelegendpos) . '<table>' . substr($builtelement, $closelegendpos); + $closelegendpos = strpos($builtelement, '</legend>'); + if ($closelegendpos !== false) { + $closelegendpos += 9; + $builtelement = substr($builtelement, 0, $closelegendpos) . '<table>' . substr($builtelement, $closelegendpos); + } + else { + $pos = strpos($builtelement, '>') + 1; + $builtelement = substr($builtelement, 0, $pos) . '<table>' . substr($builtelement, $pos); + } } else { $builtelement = substr($builtelement, 0, 11) . '<table>' . substr($builtelement, 11); Modified: pieforms-php5/branches/0.2.0/src/pieform.php =================================================================== --- pieforms-php5/branches/0.2.0/src/pieform.php 2007-02-04 22:40:21 UTC (rev 175) +++ pieforms-php5/branches/0.2.0/src/pieform.php 2007-02-04 23:00:03 UTC (rev 176) @@ -325,6 +325,22 @@ throw new PieformException('Forms must have a list of elements'); } + // Rename all the keys to have nice compliant names + // @todo: + // - This isn't done for elements inside fieldsets + // - There's no easy way for other things do do all this preprocessing if they + // need. It should be a method so that other things (like multirecord) + // can use it. + $elements = array(); + foreach ($this->data['elements'] as $name => $element) { + $newname = preg_replace('/[^a-zA-Z0-9_]/', '_', $name); + if (isset($elements[$name])) { + throw new PieformException('Element "' . $name . '" has a dangerous name that interferes with another element'); + } + $elements[$newname] = $element; + } + $this->data['elements'] = $elements; + // Remove elements to ignore foreach ($this->data['elements'] as $name => $element) { if (isset($element['type']) && $element['type'] == 'fieldset') { @@ -867,6 +883,12 @@ return $result; } + /** + * Builds the javascript for submitting the form. Note that the iframe is + * not hidden with display: none, as safari/konqueror/ns6 ignore things with + * display: none. Positioning it absolute and 'hidden' has the same effect + * without the breakage. + */ private function submit_js() { $strprocessingform = get_string('processingform'); @@ -885,9 +907,9 @@ if (!iframe) { iframe = createDOM('iframe', { 'name': '{$this->name}_iframe', - 'id' : '{$this->name}_iframe' + 'id' : '{$this->name}_iframe', + 'style': 'position: absolute; visibility: hidden;' }); - hideElement(iframe); insertSiblingNodesAfter($('{$this->name}'), iframe); window.pieformHandler_{$this->name} = function(data) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-04 22:40:21
|
Revision: 175 http://svn.sourceforge.net/pieforms/?rev=175&view=rev Author: oracleshinoda Date: 2007-02-04 14:40:21 -0800 (Sun, 04 Feb 2007) Log Message: ----------- Handle having no legend better Modified Paths: -------------- pieforms-php5/trunk/src/pieform/renderers/table.php Modified: pieforms-php5/trunk/src/pieform/renderers/table.php =================================================================== --- pieforms-php5/trunk/src/pieform/renderers/table.php 2007-02-04 22:39:59 UTC (rev 174) +++ pieforms-php5/trunk/src/pieform/renderers/table.php 2007-02-04 22:40:21 UTC (rev 175) @@ -39,8 +39,15 @@ if ($rawelement['type'] == 'fieldset') { // Add table tags to the build element, to preserve HTML compliance if (0 === strpos($builtelement, "\n<fieldset")) { - $closelegendpos = strpos($builtelement, '</legend>') + 9; - $builtelement = substr($builtelement, 0, $closelegendpos) . '<table>' . substr($builtelement, $closelegendpos); + $closelegendpos = strpos($builtelement, '</legend>'); + if ($closelegendpos !== false) { + $closelegendpos += 9; + $builtelement = substr($builtelement, 0, $closelegendpos) . '<table>' . substr($builtelement, $closelegendpos); + } + else { + $pos = strpos($builtelement, '>') + 1; + $builtelement = substr($builtelement, 0, $pos) . '<table>' . substr($builtelement, $pos); + } } else { $builtelement = substr($builtelement, 0, 11) . '<table>' . substr($builtelement, 11); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-04 22:39:59
|
Revision: 174 http://svn.sourceforge.net/pieforms/?rev=174&view=rev Author: oracleshinoda Date: 2007-02-04 14:39:59 -0800 (Sun, 04 Feb 2007) Log Message: ----------- Fixed the form submission support under safari, by hiding the iframe instead of removing it. Try to normalise the names of the elements if possible (although this does not check inside fieldsets and needs some work) Modified Paths: -------------- pieforms-php5/trunk/src/pieform.php Modified: pieforms-php5/trunk/src/pieform.php =================================================================== --- pieforms-php5/trunk/src/pieform.php 2007-02-04 22:38:38 UTC (rev 173) +++ pieforms-php5/trunk/src/pieform.php 2007-02-04 22:39:59 UTC (rev 174) @@ -325,6 +325,22 @@ throw new PieformException('Forms must have a list of elements'); } + // Rename all the keys to have nice compliant names + // @todo: + // - This isn't done for elements inside fieldsets + // - There's no easy way for other things do do all this preprocessing if they + // need. It should be a method so that other things (like multirecord) + // can use it. + $elements = array(); + foreach ($this->data['elements'] as $name => $element) { + $newname = preg_replace('/[^a-zA-Z0-9_]/', '_', $name); + if (isset($elements[$name])) { + throw new PieformException('Element "' . $name . '" has a dangerous name that interferes with another element'); + } + $elements[$newname] = $element; + } + $this->data['elements'] = $elements; + // Remove elements to ignore foreach ($this->data['elements'] as $name => $element) { if (isset($element['type']) && $element['type'] == 'fieldset') { @@ -867,6 +883,12 @@ return $result; } + /** + * Builds the javascript for submitting the form. Note that the iframe is + * not hidden with display: none, as safari/konqueror/ns6 ignore things with + * display: none. Positioning it absolute and 'hidden' has the same effect + * without the breakage. + */ private function submit_js() { $strprocessingform = get_string('processingform'); @@ -885,9 +907,9 @@ if (!iframe) { iframe = createDOM('iframe', { 'name': '{$this->name}_iframe', - 'id' : '{$this->name}_iframe' + 'id' : '{$this->name}_iframe', + 'style': 'position: absolute; visibility: hidden;' }); - hideElement(iframe); insertSiblingNodesAfter($('{$this->name}'), iframe); window.pieformHandler_{$this->name} = function(data) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-02-04 22:38:39
|
Revision: 173 http://svn.sourceforge.net/pieforms/?rev=173&view=rev Author: oracleshinoda Date: 2007-02-04 14:38:38 -0800 (Sun, 04 Feb 2007) Log Message: ----------- Corrected spelling of 'collapsible'. Inform the user if a collapsible fieldset does not have a legend Modified Paths: -------------- pieforms-php5/trunk/src/pieform/elements/fieldset.php Modified: pieforms-php5/trunk/src/pieform/elements/fieldset.php =================================================================== --- pieforms-php5/trunk/src/pieform/elements/fieldset.php 2007-01-25 23:11:58 UTC (rev 172) +++ pieforms-php5/trunk/src/pieform/elements/fieldset.php 2007-02-04 22:38:38 UTC (rev 173) @@ -34,8 +34,11 @@ */ function pieform_element_fieldset(Pieform $form, $element) { $result = "\n<fieldset"; - if (!empty($element['collapsable'])) { - $classes = array('collapsable'); + if (!empty($element['collapsible'])) { + if (!isset($element['legend']) || $element['legend'] === '') { + Pieform::info('Collapsible fieldsets should have a legend so they can be toggled'); + } + $classes = array('collapsible'); // Work out whether any of the children have errors on them $error = false; foreach ($element['elements'] as $subelement) { @@ -52,7 +55,7 @@ $result .= ">\n"; if (isset($element['legend'])) { $result .= '<legend'; - if (!empty($element['collapsable'])) { + if (!empty($element['collapsible'])) { $id = substr(md5(microtime()), 0, 4); $result .= ' id="' . $id . '">'; $result .= '<script type="text/javascript">'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |