[Pieforms-commit] SF.net SVN: pieforms: [149] pieforms-php5/trunk/src/pieform/elements/ fieldset.ph
Status: Alpha
Brought to you by:
oracleshinoda
|
From: <ora...@us...> - 2006-12-27 05:28:00
|
Revision: 149
http://svn.sourceforge.net/pieforms/?rev=149&view=rev
Author: oracleshinoda
Date: 2006-12-26 21:27:58 -0800 (Tue, 26 Dec 2006)
Log Message:
-----------
Added support for 'collapsable' fieldsets (doesn't depend on 'jsform'). Listens to 'collapsable' and 'collapsed' options. If there is an error with form submission in a collapsed fieldset it is expanded.
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 2006-12-27 04:58:00 UTC (rev 148)
+++ pieforms-php5/trunk/src/pieform/elements/fieldset.php 2006-12-27 05:27:58 UTC (rev 149)
@@ -33,9 +33,37 @@
* @return string The HTML for the element
*/
function pieform_element_fieldset(Pieform $form, $element) {
- $result = "\n<fieldset>\n";
+ $result = "\n<fieldset";
+ if (!empty($element['collapsable'])) {
+ $classes = array('collapsable');
+ // Work out whether any of the children have errors on them
+ $error = false;
+ foreach ($element['elements'] as $subelement) {
+ if (isset($subelement['error'])) {
+ $error = true;
+ break;
+ }
+ }
+ if (!empty($element['collapsed']) && !$error) {
+ $classes[] = 'collapsed';
+ }
+ $result .= ' class="' . implode(' ', $classes) . '"';
+ }
+ $result .= ">\n";
if (isset($element['legend'])) {
- $result .= '<legend>' . Pieform::hsc($element['legend']) . "</legend>\n";
+ $result .= '<legend';
+ if (!empty($element['collapsable'])) {
+ $id = substr(md5(microtime()), 0, 4);
+ $result .= ' id="' . $id . '">';
+ $result .= '<script type="text/javascript">';
+ $result .= "var a = A({'href':''}, " . json_encode($element['legend']) . "); ";
+ $result .= "connect(a, 'onclick', function(e) { toggleElementClass('collapsed', $('{$id}').parentNode); e.stop(); });";
+ $result .= "replaceChildNodes('{$id}', a);</script>";
+ }
+ else {
+ $result .= '>' . Pieform::hsc($element['legend']);
+ }
+ $result .= "</legend>\n";
}
foreach ($element['elements'] as $subname => $subelement) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|