JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
db_printf()'s %s, dwt_append(), states pulldown, tem_top_subs()
[wfpl.git] / metaform.php
index 52a41fc..f5c71f2 100644 (file)
@@ -4,25 +4,25 @@
 #
 #  This file is part of wfpl.
 #
-#  wfpl is free software; you can redistribute it and/or modify it
-#  under the terms of the GNU General Public License as published by
-#  the Free Software Foundation; either version 2, or (at your option)
+#  wfpl is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU Lesser General Public License as published by the Free
+#  Software Foundation; either version 2.1 of the License, or (at your option)
 #  any later version.
 #
-#  wfpl is distributed in the hope that it will be useful, but
-#  WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  General Public License for more details.
+#  wfpl is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+#  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+#  more details.
 #
-#  You should have received a copy of the GNU General Public License
-#  along with wfpl; see the file COPYING.  If not, write to the
-#  Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-#  MA 02111-1307, USA.
+#  You should have received a copy of the GNU Lesser General Public License
+#  along with wfpl; if not, write to the Free Software Foundation, Inc., 51
+#  Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
 
 # This file writes the code for you (sql, php, html, email) to handle a form.
 
 require_once('code/wfpl/template.php');
+require_once('code/wfpl/http.php');
 require_once('code/wfpl/tar.php');
 
 # see code/wfpl/metaform/template.html for the html templates for these elements
@@ -30,9 +30,11 @@ $GLOBALS['types'] = array(
 #    type                  input          format        sql     
        'name' =>       array('textbox',     'oneline',    'varchar(200)'),
        'textbox' =>    array('textbox',     'oneline',    'varchar(200)'),
-       'int' =>        array('textbox',     'int',        'varchar(100)'),
+       'int' =>        array('textbox',     'int',        'int'),
+       'bigint' =>     array('textbox',     'int',        'varchar(100)'), # up to 100 digits, stored as a string
        'email' =>      array('textbox',     'email',      'varchar(100)'),
        'phone' =>      array('textbox',     'phone',      'varchar(32)'),
+       'state' =>      array('states',      'oneline',    'varchar(2)'),
        'money' =>      array('textbox',     'money',      'varchar(32)'),
        'dollars' =>    array('textbox',     'dollars',    'varchar(32)'),
        'url' =>        array('textbox',     'url',        'varchar(200)'),
@@ -232,9 +234,19 @@ function make_php() {
        $tem->set('always_field', $always_field);
        $tem->set('db_fields', $db_fields);
        $tem->set('php_fields', $php_fields);
+       $tem->set('metaform_url', edit_url());
        return $tem->run();
 }
 
+# make a URL for the edit page with all the fields filled in
+function edit_url() {
+       $url = this_url();
+       $url = ereg_replace('view_php=[^&]*', 'edit=yes', $url);
+       $url = ereg_replace('download_tar=[^&]*', 'edit=yes', $url);
+       $url = ereg_replace('/[a-z0-9_.]*\?', '/?', $url);
+       return $url;
+}
+
 function view_php() {
        view_headers();
        echo make_php();
@@ -250,7 +262,11 @@ function make_email() {
                list($name, $type, $input, $format, $sql) = $field;
                $tem->set('name', $name);
                $tem->set('caption', $name); # fixme
-               $tem->sub('fields');
+               if($type == 'textarea') {
+                       $tem->sub('multi_line');
+               } else {
+                       $tem->sub('fields');
+               }
        }
        return $tem->run();
 }
@@ -281,7 +297,7 @@ function download_tar() {
                "$name.sql" => make_sql(),
                "$name.email.txt" => make_email(),
                "$name.php" => make_php());
-       make_tar($name, $data);
+       make_wfpl_tar($name, $data);
 }
 
 ?>