'image' => array('image', 'oneline', 'varchar(120)'),
'thumb' => array('image', 'oneline', 'varchar(240)'),
'file' => array('file', 'oneline', 'varchar(100)'),
- 'submit' => array('submit', 'oneline', 'n/a')
+ 'submit' => array('submit', 'n/a', 'n/a'),
+ '{' => array('fieldset', 'n/a', 'n/a'),
+ '}' => array('end_fieldset','n/a', 'n/a')
);
function list_available_types() {
$fields_str = rtrim($fields_str);
$fields = split("\n", $fields_str);
foreach($fields as $field) {
- list($name, $type, $options) = split(' *', $field);
- if($options) $options = split(',', $options);
- if(!$type) $type = $name;
+ $field = trim($field);
+ if(substr($field, -1) == '{') {
+ $name = trim(substr($field, 0, -1)); # FIXME: stop this from getting enc_caption()ed
+ $type = '{';
+ $options = null;
+ } elseif(substr($field, -1) == '{') {
+ $name = 'ignored';
+ $type = '}';
+ $options = null;
+ } else {
+ list($name, $type, $options) = split(' *', $field);
+ if($options) $options = split(',', $options);
+ if(!$type) $type = $name;
+ }
$input = field_input($type);
$format = field_format($type);
$sql = field_sql($type);
$GLOBALS['gotten_fields'][] = array($name, $type, $input, $format, $sql, $options);
}
+
return $GLOBALS['gotten_fields'];
}
default:
$display_type = 'short';
}
- $display_fields[] = array($display_type => array(
- 'name' => $name, 'caption' => format_caption($name)));
+ if($format != 'n/a') {
+ $display_fields[] = array($display_type => array(
+ 'name' => $name, 'caption' => format_caption($name)));
+ }
if(show_in_listing($type, $input, $format, $sql)) {
$listing_headers[] = array('caption' => format_caption($name));
case 'password':
case 'textarea':
case 'html':
+ case 'fieldset':
+ case 'end_fieldset':
return false;
}
if($type == 'image') {
$tem->show('pulldowns');
$tem->show('pulldown_format_extra');
}
- $tem->show('formats');
+ if($format != 'n/a') {
+ $tem->show('formats');
+ }
}
}
<p><input type="checkbox" name="opt_pass~opt_pass checked~" value="Yes"> Password protect this form.</p>
<p>Below, specify the fields you'd like in your form, one field per line. After each field name, put at least one space, then the field type. The following field types are available: <!--~types {~--><!--~types_sep {~-->, <!--~}~-->~type html~<!--~}~-->.</p>
- <p>Example:<br><pre>
+
+ <p>You can start a labeled fieldset by putting a <code>{</code> at the end of a lite with the caption. Then end the fieldset with a <code>}</code> on a line by itself</p>
+
+ <p>Example:<br><code><pre>
+email textbox
+contact info {
name textbox
phone phone
+}
comments textarea
-agree yesno</pre></p>
+agree yesno
+</pre></code></p>
+
<p>Fields:
<textarea rows="10" cols="40" name="fields">~fields html~</textarea></p>
<form action="~file_name~" method="post~enctype_attr~"><!--~opt_db {~--><!--~~editing {~~--><div style="display: none"><input type="hidden" name="~file_name~_edit_id" value="~~~file_name~_edit_id attr~~"></div><!--~~}~~--><!--~}~--><!--~uploads {~--><input type="hidden" name="MAX_FILE_SIZE" value="~~upload_max_filesize~~"><!--~}~--><!--~hidden_fields {~--><!--~ first {~-->
<div style="display: none"><!--~}~--><input type="hidden" name="~name~" value="~~~name~ attr~~"><!--~ last {~--></div><!--~}~--><!--~}~-->
-<!--~visible_fields {~--><!--~image {~-->
+<!--~visible_fields {~--><!--~fieldset {~-->
+ <fieldset><legend>~caption html~</legend><!--~}~--><!--~end_fieldset {~-->
+ </fieldset><!--~}~--><!--~image {~-->
<div class="caption">~caption html~</div>
<div class="field"><input type="file" name="~name~"><input type="hidden" name="old_~name~" value="~~~name~ attr~~"></div><!--~}~--><!--~file {~-->
<div class="caption">~caption html~</div>