+ $data['rows'] = db_get_assocs('~table_name~', 'id~listing_fields_1 {~,~name~~}~', "order by $sort $desc limit 1000");
+ tem_set('listings', $data);
+}~}~
+
+function ~file_name~_main_form($id = false) {~pulldowns {~
+ pulldown('~name~', ~pulldown_options~);~}~~has_pulldowns {~
+~}~~opt_db {~
+ if ($id) {
+ tem_set('id', $id);
+ }
+~}~
+ if (isset($_POST['~always_field~'])) {
+ $data = ~file_name~_get_fields();
+
+ if ("you're happy with the POSTed values") {~opt_db {~
+ if ($id) {
+ db_update_assoc('~table_name~', $data, 'where id=%i', $id);
+ message('~singular cap~ updated.');
+ } else {
+ db_insert_assoc('~table_name~', $data);
+ message('~singular cap~ saved.');
+ }~}~~opt_email {~
+ if ($GLOBALS['~file_name~_form_recipient'] != 'fixme@example.com') {
+ $to = $GLOBALS['~file_name~_form_recipient'];
+ $from = 'noreply@~this_domain~';
+ $reply_to = $to;
+ if (isset($data['email']) and valid_email($data['email'])) {
+ $reply_to = $data['email'];
+ if ($data['name'] and ereg('^[a-zA-Z0-9_\' -]*$', $data['name']) !== false) {
+ $reply_to = "$data[name] <$reply_to>";
+ }
+ }
+ $subject = '~plural cap~ form submitted';
+ $email_template = new tem();
+ $email_template->load('~public_file_name~.email.txt');
+ $email_template->sets($data);
+ $message = $email_template->run();
+ $cc = '';
+ $bcc = '';
+ if (email($from, $to, $subject, $message, $reply_to, $cc, $bcc)) {
+ message('Due to an internal error, your message could not be sent. Please try again later.');
+ $error = true;
+ } else {
+ message('Message sent');
+ }
+ }~}~
+ if ($error !== true) {~opt_public_something {~
+ if ($GLOBALS['wfpl_basename'] == '~file_name~') {
+ return './~file_name~';
+ } else {
+ # FIXME create this page or change this to go elsewhere
+ return './~public_file_name~_thanks';
+ }~}~~opt_public_something unset {~~opt_db unset {~
+ # FIXME create this page or change this to go elsewhere~}~
+ return './~file_name~~opt_db unset {~_thanks~}~';~}~
+ }
+ }
+ # otherwise, we display the form again. We've got the form field
+ # values in $data and will put those back in the filds below. You
+ # should add some message asking people to fix their entry in
+ # whatever way you require.~opt_db {~
+ } elseif ($id) {
+ # we've recieved an edit id, but no data. So we grab the values to be edited from the database
+ $data = db_get_assoc('~table_name~', ~file_name upper~_DB_FIELDS, 'where id=%i', $id);~}~
+ } else {
+ # form not submitted, you can set default values like so:
+ #$data = array('~always_field~' => 'Yes');
+ $data = array();
+ }~upload_max {~
+
+ tem_set('$upload_max_filesize', upload_max_filesize());~}~
+
+ tem_set('form', $data);~show_extra_headers {~
+ tem_set('$head');~}~
+}