[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. |