# MA 02111-1307, USA.
-# This file contains basic encodings
+# This file contains basic encodings. These are used by the encoder. You can
+# specify any template tag to be encoded with this syntax: ~variable.encoding~
+#
+# this example: <p>~foo.html~</p>
+# will encode foo (using enc_html()) before displaying it, so that characters
+# such as < will display properly.
+
# encode for putting within double-quotes in SQL
function enc_sql($str) {
return '';
}
}
-
+# add a tab at the begining of each non-empty line
+function enc_tab($str) {
+ $lines = explode("\n", $str);
+ $out = '';
+ foreach($lines as $line) {
+ if($line) {
+ $out .= "\t$line";
+ }
+ $out .= "\n";
+ }
+
+ # remove the extra newline added above
+ return substr($out, 0, -1);
+}
+
+?>
'password' => array('password', 'oneline', 'varchar(200)'),
'textarea' => array('textarea', 'unix', 'text'),
'pulldown' => array('pulldown', 'options', 'int'),
- 'checkbox' => array('checkbox', 'yesno', 'int'),
- 'yesno' => array('checkbox', 'yesno', 'int'),
+ 'checkbox' => array('checkbox', 'yesno', 'varchar(3)'),
+ 'yesno' => array('checkbox', 'yesno', 'varchar(3)'),
'submit' => array('submit', 'oneline', 'n/a')
);
<!--~~form start~~--><!--~form start~-->
<h2>~form_name~ entry form</h2>
- <form action="~form_name~.php" method="post"><!--~hidden start~--><input type="hidden" name="~name~" value="~~~name~.attr~~" /><!--~end~-->
+ <form action="~form_name~.php" method="post"><!--~~editing start~~--><input type="hidden" name="~form_name~_edit_id" value="~~~form_name~_edit_id.attr~~" /><!--~~end~~-->
<table cellspacing="0" cellpadding="4" border="0" summary=""><!--~row start~-->
<tr><!--~textbox start~--><td class="caption">~caption.html~: </td><td><input type="text" name="~name~" value="~~~name~.attr~~" /></td><!--~end~--><!--~password start~--><td class="caption">~caption.html~: </td><td><input type="password" name="~name~" value="~~~name~.attr~~" /></td><!--~end~--><!--~textarea start~--><td class="caption">~caption.html~: </td><td><textarea name="~name~">~~~name~.html~~</textarea></td><!--~end~--><!--~checkbox start~--><td class="caption">~caption.html~: </td><td><input type="checkbox" name="~name~~~~name~.checked~~" /></td><!--~end~--><!--~submit start~--><td class="submit_row" colspan="2"><input type="submit" name="~name~" value="~caption.attr~" /></td><!--~end~--></tr><!--~end~-->
$fields = array();
<!--~formats start~-->
$~name~ = format_~format~($_REQUEST['~name~']);<!--~end~-->
- <!--~tem_sets~-->
+ <!--~tem_sets start~-->
tem_set('~name~', $~name~);<!--~end~-->
return array(~php_fields~);
}
function ~form_name~() {
- $event_id = format_int($_REQUEST['~form_name~_edit_id']);
+ $edit_id = format_int($_REQUEST['~form_name~_edit_id']);
if($edit_id) {
# add hidden field for database id of row we're editing
- tem_set('~form_name~_event_id', $edit_id);
+ tem_set('~form_name~_edit_id', $edit_id);
tem_sub('editing');
}
if("you're happy with the POSTed values") {
# to enable saving to a database, create a file called 'db_connect.php'
# see: code/wfpl/examples/db_connect.php
- if(file_exists('db_connect.php') {
+ if(file_exists('db_connect.php')) {
require_once('db_connect.php');
if($edit_id) {
db_update('~form_name~', '~db_fields~', ~php_fields~, 'id = %"', $edit_id);
# 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.
- }
} elseif($edit_id) {
# we've recieved an edit id, but no data. So we grab the values to be edited from the database
- list(~php_fields~) = db_get_row('events', '~db_fields~', 'id = %"', $event_id);
- ~tem_sets~
+ list(~php_fields~) = db_get_row('~form_name~', '~db_fields~', 'id = %"', $edit_id);
+ ~tem_sets.tab~
} else {
# form not submitted, you can set default values like so
#tem_set('~always_field~', 'Yes');