<?php
-# Copyright (C) 2006 Jason Woofenden
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# This program is in the public domain within the United States. Additionally,
+# we waive copyright and related rights in the work worldwide through the CC0
+# 1.0 Universal public domain dedication, which can be found at
+# http://creativecommons.org/publicdomain/zero/1.0/
# This file writes the code for you (sql, php, html, email) to handle a form.
'opt_public_display',
'opt_public_something');
foreach($bools as $bool) {
- if($GLOBALS[$bool]) {
+ if(isset($GLOBALS[$bool]) && $GLOBALS[$bool]) {
$tem->set($bool);
}
}
function metaform_main() {
if(isset($_REQUEST['singular'])) {
- $GLOBALS['file_name'] = format_varname($_REQUEST['file_name']);
- $GLOBALS['table_name'] = format_varname($_REQUEST['table_name']);
- $GLOBALS['plural'] = format_oneline($_REQUEST['plural']);
+ $GLOBALS['file_name'] = format_varname(_REQUEST_cut('file_name'));
+ $GLOBALS['table_name'] = format_varname(_REQUEST_cut('table_name'));
+ $GLOBALS['plural'] = format_oneline(_REQUEST_cut('plural'));
# backwards compatibility:
if(isset($_REQUEST['form_name'])) {
- $GLOBALS['file_name'] = $GLOBALS['table_name'] = $GLOBALS['plural'] = format_varname($_REQUEST['form_name']);
+ $GLOBALS['file_name'] = $GLOBALS['table_name'] = $GLOBALS['plural'] = format_varname(_REQUEST_cut('form_name'));
}
- $GLOBALS['singular'] = format_oneline($_REQUEST['singular']);
- $GLOBALS['opt_email'] = format_bool($_REQUEST['opt_email']);
- $GLOBALS['opt_db'] = format_bool($_REQUEST['opt_db']);
- $GLOBALS['opt_listing'] = format_bool($_REQUEST['opt_listing']);
- $GLOBALS['opt_display'] = format_bool($_REQUEST['opt_display']);
- $GLOBALS['opt_pass'] = format_bool($_REQUEST['opt_pass']);
- $GLOBALS['opt_public_form'] = format_bool($_REQUEST['opt_public_form']);
- $GLOBALS['opt_public_display'] = format_bool($_REQUEST['opt_public_display']);
+ $GLOBALS['singular'] = format_oneline(_REQUEST_cut('singular'));
+ $GLOBALS['opt_email'] = format_bool(_REQUEST_cut('opt_email'));
+ $GLOBALS['opt_db'] = format_bool(_REQUEST_cut('opt_db'));
+ $GLOBALS['opt_listing'] = format_bool(_REQUEST_cut('opt_listing'));
+ $GLOBALS['opt_display'] = format_bool(_REQUEST_cut('opt_display'));
+ $GLOBALS['opt_pass'] = format_bool(_REQUEST_cut('opt_pass'));
+ $GLOBALS['opt_public_form'] = format_bool(_REQUEST_cut('opt_public_form'));
+ $GLOBALS['opt_public_display'] = format_bool(_REQUEST_cut('opt_public_display'));
$GLOBALS['public_file_name'] = $GLOBALS['file_name'];
if($GLOBALS['opt_public_form'] || $GLOBALS['opt_public_display']) {
$GLOBALS['opt_public_something'] = 1;
$GLOBALS['file_name'] = $GLOBALS['file_name'] . _admin;
+ } else {
+ $GLOBALS['opt_public_something'] = 0;
}
tem_init();
$fields_str = unix_newlines($_REQUEST['fields']);
$GLOBALS['gotten_fields'] = array();
$fields_str = rtrim($fields_str);
- $fields = split("\n", $fields_str);
+ $fields = explode("\n", $fields_str);
foreach($fields as $field) {
+ $first_char = substr($field, 0, 1);
$field = trim($field);
+ if ($first_char === ' ' || $first_char === "\t") {
+ $i = count($GLOBALS['gotten_fields']);
+ if($i > 0) {
+ $i -= 1;
+ if (!$GLOBALS['gotten_fields'][$i]['options']) {
+ $GLOBALS['gotten_fields'][$i]['options'] = array();
+ }
+ $GLOBALS['gotten_fields'][$i]['options'][] = $field;
+ continue;
+ }
+ }
if(substr($field, -1) == '{') {
$caption = trim(substr($field, 0, -1));
$name = format_varname($caption);
$type = '{';
$options = null;
- # FIXME restore parsing of option lists for pulldowns
} else {
$options = null;
$type = null;
# this one, that you're using to create forms
function set_form_action() {
- $action = ereg_replace('.*/', '', $_SERVER['REQUEST_URI']);
+ $action = preg_replace('|.*/|', '', $_SERVER['REQUEST_URI']);
if($action == '') $action = './';
tem_set('form_action', $action);
}
'caption' => $field['caption']
)
);
+ if($field['type'] == 'radio') {
+ $i = 0;
+ $opts = array();
+ foreach ($field['options'] as $row) {
+ if (is_array($row)) {
+ $cap = $row[1];
+ } else {
+ $cap = $row;
+ }
+ $opts[] = array('i' => $i, 'option_caption' => $cap);
+ $i += 1;
+ }
+ $visible_fields[count($visible_fields) - 1]['options'] = $opts;
+ }
}
if($field['input'] == 'image' || $field['input'] == 'file') {
$always_field = find_always_field($fields);
$image_included_yet = false;
$name_to_caption = array();
+ $has_uploads = false;
foreach($fields as $field) {
$name_to_caption[] = array('name' => $field['name'], 'caption' => $field['caption']);
if($field['input'] != 'submit') {
# 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);
+ $url = preg_replace('|view_php=[^&]*|', 'edit=yes', $url);
+ $url = preg_replace('|download_tar=[^&]*|', 'edit=yes', $url);
+ $url = preg_replace('|/[a-z0-9_.]*\?|', '/?', $url);
return $url;
}
}
$preview = $preview_tem->run();
unset($preview_tem);
- $preview = ereg_replace('type="submit"', 'type="submit" disabled="disabled"', $preview);
+ $preview = preg_replace('|type="submit"|', 'type="submit" disabled="disabled"', $preview);
tem_set('preview', $preview);
tem_show('hiddens');
set_form_action();
$files = array(
"README" => "These files are meant to work with wfpl.\n\nSee: http://sametwice.com/wfpl\n",
".htaccess" => make_htaccess(),
- "config.php" => "<?php\n\nrequire_once(__DIR__.'/'.'inc/wfpl/main.php');\nmetaform_main();\n",
+ "config.php" => "<?php\n\n# put your site-wide configuration here\n",
+ "wfpl_main.php" => read_whole_file(__DIR__.'/'.'metaform/wfpl_main.php'),
"styl.styl" => read_whole_file(__DIR__.'/'.'metaform/styl.styl'),
"template.html" => read_whole_file(__DIR__.'/'.'metaform/site-template.html'),
"$admin_name.html" => make_html(),