'money' => array('textbox', 'money', 'varchar(32)'),
'dollars' => array('textbox', 'dollars', 'varchar(32)'),
'url' => array('textbox', 'url', 'varchar(200)'),
+ 'hidden' => array('hidden', 'unix', 'varchar(200)'),
+ 'password' => array('password', 'oneline', 'varchar(200)'),
'textarea' => array('textarea', 'unix', 'text'),
'pulldown' => array('pulldown', 'options', 'int'),
'checkbox' => array('checkbox', 'yesno', 'int'),
$tem->set('name', $name);
$tem->set('caption', $name); # fixme
$tem->sub($input);
- $tem->sub('row');
+ if($input != 'hidden') {
+ $tem->sub('row');
+ }
}
$tem->set('name', 'save');
$tem->set('caption', 'Save');
$tem->set('form_name', $GLOBALS['form_name']);
$fields = get_fields();
$db_fields = '';
+ $php_fields = '';
$always_field = false;
foreach($fields as $field) {
list($name, $type, $input, $format, $sql) = $field;
$tem->set('name', $name);
$tem->set('db_field', ''); # we don't want to use the value from last time
if($sql != 'n/a') {
- $tem->sub('db_field');
if($db_fields != '') $db_fields .= ',';
$db_fields .= $name;
+ if($php_fields != '') $php_fields .= ', ';
+ $php_fields .= '$' . $name;
}
$tem->sub('formats');
if(!$always_field and $input != 'checkbox' and $input != 'radio') {
# always_field is a form field that always submits (unlike say, checkboxes). It's used to detect if the form has submitted or not.
$tem->set('always_field', $always_field);
$tem->set('db_fields', $db_fields);
+ $tem->set('php_fields', $php_fields);
return $tem->run();
}
require_once('code/wfpl/template.php');
require_once('code/wfpl/format.php');
require_once('code/wfpl/email.php');
-#require_once('code/wfpl/db.php'); # fixme
function ~form_name~_get_fields() {
- $GLOBALS['~form_name~_fields'] = array();<!--~formats start~-->
-
- $value = format_~format~($_REQUEST['~name~']);
- tem_set('~name~', $value);<!--~db_field start~-->
- $GLOBALS['~form_name~_fields'][] = $value;<!--~end~--><!--~end~-->
+ $fields = array();
+ <!--~formats start~-->
+ $~name~ = format_~format~($_REQUEST['~name~']);
+ tem_set('~name~', $~name~);
+ <!--~end~-->
+ return array(~php_fields~);
}
-
-
-if(isset($_REQUEST['~always_field~'])) {
- ~form_name~_get_fields();
-
- if("you're happy with the POSTed values") {
- #db_insert('~form_name~', '~db_fields~', $GLOBALS['~form_name~_fields']); # fixme
- if($GLOBALS['~form_name~_form_recipient'] != "fixme@example.com") {
- $to = $GLOBALS['~form_name~_form_recipient'];
- if(isset($_REQUEST['email']) and valid_email($_REQUEST['email'])) {
- $from = $_REQUEST['email'];
- if($_REQUEST['name'] and ereg('^[a-zA-Z0-9_\' -]*$', $_REQUEST['name']) !== false) {
- $from = "$_REQUEST[name] <$from>";
+
+function ~form_name~() {
+ if(isset($_REQUEST['~always_field~'])) {
+ list(~php_fields~) = ~form_name~_get_fields();
+
+ if("you're happy with the POSTed values") {
+ # uncomment the following lines to save the values recieved to the
+ # database. You can use ~form_name~.sql to create the database table.
+ #require_once('db_connect.php');
+ #db_insert('~form_name~', '~db_fields~', ~php_fields~);
+ if($GLOBALS['~form_name~_form_recipient'] != "fixme@example.com") {
+ $to = $GLOBALS['~form_name~_form_recipient'];
+ if(isset($_REQUEST['email']) and valid_email($_REQUEST['email'])) {
+ $from = $_REQUEST['email'];
+ if($_REQUEST['name'] and ereg('^[a-zA-Z0-9_\' -]*$', $_REQUEST['name']) !== false) {
+ $from = "$_REQUEST[name] <$from>";
+ }
+ } else {
+ $from = $to;
}
- } else {
- $from = $to;
+ $subject = '~form_name~ form submitted';
+ $message = tem_run('~form_name~.email.txt');
+ $cc = '';
+ $bcc = '';
+ email($from, $to, $subject, $message, $cc, $bcc);
}
- $subject = '~form_name~ form submitted';
- $message = tem_run('~form_name~.email.txt');
- $cc = '';
- $bcc = '';
- email($from, $to, $subject, $message, $cc, $bcc);
+ tem_load('~form_name~.html');
+ tem_sub('thankyou');
+ tem_output();
+ exit();
}
- tem_load('~form_name~.html');
- tem_sub('thankyou');
- tem_output();
- exit();
+ # otherwise, we display the form again. ~form_name~_get_fields() has
+ # already put the posted values back into the template engine, so they will
+ # show up in the form fields. You should add some message asking people to
+ # fix their entry in whatever way you require.
}
- # otherwise, we display the form again. ~form_name~_get_fields() has
- # already put the posted values back into the template engine, so they will
- # show up in the form fields. You should add some message asking people to
- # fix their entry in whatever way you require.
+
+ tem_sub('form');
}
-tem_load('~form_name~.html');
-tem_sub('form');
-tem_output();
+# emulate run.php if it's not being used
+if(!function_exists('run_php')) {
+ tem_load('~form_name~.html');
+ ~form_name~();
+ tem_output();
+}
?>