JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Merge branch 'master' of /home/jason/dev/git/wfpl
authorJason Woofenden <jason183@herkamire.com>
Thu, 18 Jan 2007 14:39:57 +0000 (09:39 -0500)
committerJason Woofenden <jason183@herkamire.com>
Thu, 18 Jan 2007 14:39:57 +0000 (09:39 -0500)
encode.php
metaform.php
metaform/template.html
metaform/template.php

index 3a11689..5b8eadf 100644 (file)
 #  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) {
@@ -53,5 +59,20 @@ function enc_checked($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);
+}
+
+?>
index 347717c..9fe48c9 100644 (file)
@@ -40,8 +40,8 @@ $GLOBALS['types'] = array(
        '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')
 );
 
index beb9bb4..fa10571 100644 (file)
@@ -12,7 +12,7 @@ td.caption { text-align: right; vertical-align: top; font-weight: bold; }
 <!--~~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~-->
index 2755101..d6760cf 100644 (file)
@@ -23,17 +23,17 @@ function ~form_name~_get_fields() {
        $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');
        }
 
@@ -51,7 +51,7 @@ function ~form_name~() {
                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);
@@ -86,11 +86,10 @@ function ~form_name~() {
                # 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');