X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=metaform.php;h=a16e92f11028628e83887f3458c8c0098cf5d72e;hb=e4b8789f2bfc73fe01549bab2ab390166ac9a514;hp=35652c806f23881e9ed5cbcd0c8401283bbd1b3a;hpb=7da703686e6dd157999a52aa021a4dde6417a4ea;p=wfpl.git diff --git a/metaform.php b/metaform.php index 35652c8..a16e92f 100644 --- a/metaform.php +++ b/metaform.php @@ -26,32 +26,33 @@ require_once('code/wfpl/format.php'); # see code/wfpl/metaform/template.html for the html templates for these elements $GLOBALS['types'] = array( # type input format sql - 'varname' => array('textbox', 'varname', 'varchar(50)'), - 'name' => array('textbox', 'oneline', 'varchar(200)'), - 'textbox' => array('textbox', 'oneline', 'varchar(200)'), + 'varname' => array('textbox', 'varname', 'varchar(50) binary'), + 'name' => array('textbox', 'oneline', 'varchar(200) binary'), + 'textbox' => array('textbox', 'oneline', 'varchar(200) binary'), 'int' => array('textbox', 'int', 'int'), - 'decimal' => array('textbox', 'decimal', 'decimal(12,12)'), - 'bigint' => array('textbox', 'int', 'varchar(100)'), # up to 100 digits, stored as a string - 'zip' => array('textbox', 'zip', 'varchar(20)'), - 'email' => array('textbox', 'email', 'varchar(100)'), - 'phone' => array('textbox', 'phone', 'varchar(32)'), - 'state' => array('states', 'oneline', 'varchar(2)'), - 'money' => array('textbox', 'money', 'varchar(32)'), - 'date' => array('date', 'mdy_to_ymd', 'char(10)'), - 'dollars' => array('textbox', 'dollars', 'varchar(32)'), - 'url' => array('textbox', 'url', 'varchar(200)'), - 'hidden' => array('hidden', 'unix', 'varchar(200)'), - 'password' => array('password', 'oneline', 'varchar(200)'), - 'textarea' => array('textarea', 'unix', 'text'), - 'html' => array('html', 'unix', 'text'), - 'pulldown' => array('pulldown', 'options', 'varchar(100)'), - 'radio' => array('radio', 'options', 'varchar(100)'), + 'decimal' => array('textbox', 'decimal', 'decimal(12,2)'), + 'bigint' => array('textbox', 'int', 'varchar(100) binary'), # up to 100 digits, stored as a string + 'zip' => array('textbox', 'zip', 'varchar(20) binary'), + 'email' => array('email', 'email', 'varchar(100) binary'), + 'search' => array('search', 'oneline', 'varchar(200) binary'), + 'phone' => array('textbox', 'phone', 'varchar(32) binary'), + 'state' => array('states', 'oneline', 'varchar(2) binary'), + 'money' => array('textbox', 'money', 'varchar(32) binary'), + 'date' => array('date', 'mdy_to_ymd', 'char(10) binary'), + 'dollars' => array('textbox', 'dollars', 'varchar(32) binary'), + 'url' => array('textbox', 'url', 'varchar(200) binary'), + 'hidden' => array('hidden', 'unix', 'varchar(200) binary'), + 'password' => array('password', 'oneline', 'varchar(200) binary'), + 'textarea' => array('textarea', 'unix', 'text binary'), + 'html' => array('html', 'unix', 'mediumtext binary'), + 'pulldown' => array('pulldown', 'options', 'varchar(100) binary'), + 'radio' => array('radio', 'options', 'varchar(100) binary'), 'checkbox' => array('checkbox', 'bool', 'int(1)'), - 'yesno' => array('checkbox', 'yesno', 'varchar(3)'), + 'yesno' => array('checkbox', 'yesno', 'varchar(3) binary'), 'delete' => array('checkbox', 'yesno', 'n/a'), - 'image' => array('image', 'oneline', 'varchar(120)'), - 'thumb' => array('image', 'oneline', 'varchar(240)'), - 'file' => array('file', 'oneline', 'varchar(100)'), + 'image' => array('image', 'oneline', 'varchar(120) binary'), + 'thumb' => array('image', 'oneline', 'varchar(240) binary'), + 'file' => array('file', 'oneline', 'varchar(100) binary'), 'submit' => array('submit', 'n/a', 'n/a'), '{' => array('fieldset', 'n/a', 'n/a'), '}' => array('end_fieldset','n/a', 'n/a') @@ -70,6 +71,7 @@ function list_available_types() { function tem_set_globals(&$tem) { $vars = array( 'file_name', + 'public_file_name', 'table_name', 'plural', 'singular'); @@ -84,7 +86,8 @@ function tem_set_globals(&$tem) { 'opt_display', 'opt_pass', 'opt_public_form', - 'opt_public_display'); + 'opt_public_display', + 'opt_public_something'); foreach($bools as $bool) { if($GLOBALS[$bool]) { $tem->set($bool); @@ -111,6 +114,12 @@ function metaform() { $GLOBALS['opt_public_form'] = format_bool($_REQUEST['opt_public_form']); $GLOBALS['opt_public_display'] = format_bool($_REQUEST['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; + } + tem_init(); tem_set_globals($GLOBALS['wfpl_template']); } @@ -295,7 +304,7 @@ function make_html($whole_file = true) { } if(show_in_listing($type, $input, $format, $sql)) { - $listing_headers[] = array('caption' => format_caption($name)); + $listing_headers[] = array('caption' => format_caption($name), 'name' => $name); $listing_field = array('name' => $name); if($format == 'bool' || $format == 'yesno') { $listing_field['enc'] = 'yesno'; @@ -321,9 +330,12 @@ function make_html($whole_file = true) { 'caption' => 'Save')); } - $tem->set('form', array( - 'visible_fields' => $visible_fields, - 'hidden_fields' => $hidden_fields)); + $form_fields = array(); + $form_fields['visible_fields'] = $visible_fields; + if($hidden_fields) { + $form_fields['hidden_fields'] = $hidden_fields; + } + $tem->set('form', $form_fields); # opt_display and opt_listing control whether these are actually displayed $tem->set('display_fields', $display_fields); @@ -421,6 +433,7 @@ function make_php() { } elseif($input == 'pulldown' || $input == 'radio') { $pulldown_options = pulldown_options_array($options); $tem->set('pulldown_options', $pulldown_options); + $tem->set('has_pulldowns'); $tem->show('pulldowns'); $tem->show('pulldown_format_extra'); } @@ -534,21 +547,27 @@ function preview() { } function download_tar() { - $name = $GLOBALS['file_name']; - $data = array( + $admin_name = $GLOBALS['file_name']; + $nice_name = $GLOBALS['public_file_name']; + $files = array( "INSTALL" => read_whole_file('code/wfpl/metaform/INSTALL'), ".htaccess" => make_htaccess(), - #"run.php ->" => 'code/wfpl/run.php', - "style.css" => read_whole_file('code/wfpl/metaform/style.css'), - "$name.html" => make_html(), - "$name.php" => make_php()); + "run.php ->" => 'code/wfpl/run.php', + "style.less" => read_whole_file('code/wfpl/metaform/style.less'), + "template.html" => read_whole_file('code/wfpl/metaform/site-template.html'), + "$admin_name.html" => make_html(), + "$admin_name.php" => make_php()); + if($GLOBALS['opt_public_something']) { + $files["$nice_name.html ->"] = "$admin_name.html"; + $files["$nice_name.php ->"] = "$admin_name.php"; + } if($GLOBALS['opt_db']) { - $data["$name.sql"] = make_sql(); + $files["$nice_name.sql"] = make_sql(); } if($GLOBALS['opt_email']) { - $data["$name.email.txt"] = make_email(); + $files["$nice_name.email.txt"] = make_email(); } - make_tar($name, $data); + make_tar($nice_name, $files); }