From: Jason Woofenden Date: Tue, 5 Jun 2007 08:40:20 +0000 (-0400) Subject: fixed conflict X-Git-Url: https://jasonwoof.com/gitweb/?a=commitdiff_plain;ds=sidebyside;h=030f09ab36a49e16a65163e8a537a7ccdb3061e4;hp=-c;p=wfpl.git fixed conflict --- 030f09ab36a49e16a65163e8a537a7ccdb3061e4 diff --combined format.php index a658dbb,a513722..cf59504 --- a/format.php +++ b/format.php @@@ -32,8 -32,8 +32,8 @@@ function format_zip($str) function format_filename($str) { $str = strtolower($str); - $str = ereg_replace('[^a-z0-9_.-]', '_', $str); - return ereg_replace('^[0-9.-]*', '', $str); + $str = ereg_replace('[^a-z0-9_.]', '_', $str); + return ereg_replace('^[.]*', '', $str); } function format_varname($str) { @@@ -52,10 -52,10 +52,10 @@@ function format_unix($str) } function format_yesno($str) { - if($str) { - return "Yes"; + if($str && $str != 'No') { + return 'Yes'; } else { - return "No"; + return 'No'; } } diff --combined metaform.php index 8215394,88dd437..7bfa9f7 --- a/metaform.php +++ b/metaform.php @@@ -24,7 -24,6 +24,7 @@@ require_once('code/wfpl/template.php'); require_once('code/wfpl/http.php'); require_once('code/wfpl/tar.php'); +require_once('code/wfpl/format.php'); # see code/wfpl/metaform/template.html for the html templates for these elements $GLOBALS['types'] = array( @@@ -42,7 -41,6 +42,7 @@@ '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', 'int'), 'radio' => array('radio', 'oneline', 'varchar(200)'), 'checkbox' => array('checkbox', 'yesno', 'varchar(3)'), @@@ -52,62 -50,43 +52,62 @@@ 'submit' => array('submit', 'oneline', 'n/a') ); -if(isset($_REQUEST['form_name'])) { - $GLOBALS['form_name'] = ereg_replace('[^a-z0-9_-]', '', $_REQUEST['form_name']); -} else { - $GLOBALS['form_name'] = 'some_form'; +function list_available_types() { + $types = ''; + foreach($GLOBALS['types'] as $key => $value) { + if($types) { + $types .= ', '; + } + $types .= $key; + } + tem_set('available_types', $types); } -if(isset($_REQUEST['fields'])) { - if(isset($_REQUEST['view_sql'])) { - view_sql(); - exit(); - } elseif(isset($_REQUEST['view_php'])) { - view_php(); - exit(); - } elseif(isset($_REQUEST['view_template'])) { - view_template(); - exit(); - } elseif(isset($_REQUEST['view_email'])) { - view_email(); - exit(); - } elseif(isset($_REQUEST['download_tar'])) { - download_tar(); - exit(); - } elseif(isset($_REQUEST['preview'])) { - preview(); - exit(); - } elseif(isset($_REQUEST['edit'])) { - tem_set('fields', $_REQUEST['fields']); - tem_set('form_name', $GLOBALS['form_name']); - # fall through + +function metaform() { + if(isset($_REQUEST['form_name'])) { + $GLOBALS['form_name'] = ereg_replace('[^a-z0-9_-]', '', $_REQUEST['form_name']); + $GLOBALS['opt_email'] = format_yesno($_REQUEST['opt_email']); + tem_set('opt_email', $GLOBALS['opt_email']); + $GLOBALS['opt_db'] = format_yesno($_REQUEST['opt_db']); + tem_set('opt_db', $GLOBALS['opt_db']); } else { - die("Sorry... couldn't tell which button you pressed"); + $GLOBALS['form_name'] = 'some_form'; } -} -set_form_action(); -tem_output('code/wfpl/metaform/main.html'); -exit(); + if(isset($_REQUEST['fields'])) { + if(isset($_REQUEST['view_sql'])) { + view_sql(); + exit(); + } elseif(isset($_REQUEST['view_php'])) { + view_php(); + exit(); + } elseif(isset($_REQUEST['view_html'])) { + view_html(); + exit(); + } elseif(isset($_REQUEST['view_email'])) { + view_email(); + exit(); + } elseif(isset($_REQUEST['download_tar'])) { + download_tar(); + exit(); + } elseif(isset($_REQUEST['preview'])) { + preview(); + exit(); + } elseif(isset($_REQUEST['edit'])) { + tem_set('fields', $_REQUEST['fields']); + tem_set('form_name', $GLOBALS['form_name']); + # fall through + } else { + die("Sorry... couldn't tell which button you pressed"); + } + } + + + set_form_action(); + list_available_types(); + tem_output('code/wfpl/metaform/main.html'); +} function field_input($type) { return $GLOBALS['types'][$type][0]; } @@@ -175,9 -154,8 +175,9 @@@ function view_sql() # pass false if you want to exclude the and tag etc. -function make_template($whole_file = true) { +function make_html($whole_file = true) { $uploads_output_already = false; + $has_html_editors = false; $tem = new tem(); $tem->load('code/wfpl/metaform/template.html'); $tem->set('form_name', $GLOBALS['form_name']); @@@ -194,28 -172,13 +194,28 @@@ $tem->sub('uploads'); $tem->set('enctype_attr', '" enctype="multipart/form-data'); $uploads_output_already = true; + } elseif($input == 'html') { + $has_html_editors = true; + $tem->set('html_field_name', $name); + $tem->sub('replace_textarea'); } } + + if($GLOBALS['opt_db'] == 'Yes') { + $tem->sub('opt_db_1'); + } else { + $tem->sub('opt_db_1_else'); + } $tem->set('name', 'save'); $tem->set('caption', 'Save'); $tem->sub('submit'); $tem->sub('row'); $tem->sub('form'); + + if($has_html_editors) { + $tem->sub('html_editor_headers'); + } + if($whole_file) { return $tem->run(); } else { @@@ -223,9 -186,9 +223,9 @@@ } } -function view_template() { +function view_html() { view_headers(); - echo make_template(); + echo make_html(); } @@@ -261,8 -224,8 +261,8 @@@ function make_php() } } else { $tem->sub('formats'); - $tem->sub('tem_sets'); } + $tem->sub('tem_sets'); if(!$always_field and $input != 'checkbox' and $input != 'radio') { $always_field = $name; } @@@ -273,17 -236,6 +273,17 @@@ $tem->set('db_fields', $db_fields); $tem->set('php_fields', $php_fields); $tem->set('metaform_url', edit_url()); + if($GLOBALS['opt_db'] == 'Yes') { + $tem->sub('opt_db_1'); + $tem->sub('opt_db_2'); + $tem->sub('opt_db_3'); + $tem->sub('opt_db_4'); + $tem->sub('opt_db_5'); + } + if($GLOBALS['opt_email'] == 'Yes') { + $tem->sub('opt_email_1'); + $tem->sub('opt_email_2'); + } return $tem->run(); } @@@ -320,12 -272,6 +320,12 @@@ function make_email() return $tem->run(); } +function make_htaccess() { + $tem = new tem(); + $tem->set('form', $GLOBALS['form_name']); + return $tem->run('code/wfpl/metaform/template.htaccess'); +} + function view_email() { view_headers(); echo make_email(); @@@ -333,33 -279,26 +333,33 @@@ function preview() { - $tem = new tem(); - $tem->load('code/wfpl/metaform/preview.html'); - $tem->set('form_name', $GLOBALS['form_name']); - $tem->set('fields', $_REQUEST['fields']); + tem_load('code/wfpl/metaform/preview.html'); + tem_set('form_name', $GLOBALS['form_name']); + tem_set('fields', $_REQUEST['fields']); $preview_tem = new tem(); - $preview = $preview_tem->run(make_template(false)); + $preview = $preview_tem->run(make_html(false)); unset($preview_tem); - $tem->set('preview', $preview); + tem_set('preview', $preview); set_form_action(); - $tem->output(); + tem_output(); } function download_tar() { $name = $GLOBALS['form_name']; $data = array( - "$name.html" => make_template(), + ".htaccess" => make_htaccess(), + "run.php ->" => 'code/wfpl/run.php', + "$name.html" => make_html(), "$name.sql" => make_sql(), - "$name.email.txt" => make_email(), "$name.php" => make_php()); + if($GLOBALS['opt_email'] == 'Yes') { + $data["$name.email.txt"] = make_email(); + } make_wfpl_tar($name, $data); } + +metaform(); +exit(); + ?> diff --combined metaform/template.html index d5a2a5a,bd641dd..a7c0e88 --- a/metaform/template.html +++ b/metaform/template.html @@@ -4,35 -4,24 +4,35 @@@ ~form_name~ entry +--> + + + -

Add a new entryEdit entry "~~name.html~~"

+

Add a new entryEdit entry "~~name.html~~"~form_name~ entry form

~error_message.html~

- - - - ++
~caption.html~: ~caption.html~: ~caption.html~: ~caption.html~: ~caption.html~:
~caption.html~: ~caption.html~:
~caption.html~: ~caption.html~: ~caption.html~: ~caption.html~: ~caption.html~: ~caption.html~:
~caption.html~: ~caption.html~: ~caption.html~: ~caption.html~: ~caption.html~:
~caption.html~: ~caption.html~:
diff --combined metaform/template.php index fc1263b,754b710..84755d4 --- a/metaform/template.php +++ b/metaform/template.php @@@ -8,39 -8,44 +8,43 @@@ # # ~metaform_url~ -# This code can send form results by e-mail and/or save them to a database. See -# the next two comments to enable either or both. - +# SETUP + # To send results by e-mail, all you have to do is set your e-mail address here: $GLOBALS['~form_name~_form_recipient'] = "fixme@example.com"; - + +# To save results to a database, you'll need to create the ~form_name~ table +# (the file ~form_name~.sql should help with this), and create a file called +# 'db_connect.php' or 'code/db_connect.php' which calls db_connect() see: +# code/wfpl/examples/db_connect.php + # Set this to the path to your uploads directory. It can be relative to the # location of this script. IT MUST END WITH A SLASH $GLOBALS['upload_directory'] = 'uploads/'; -# To save results to a database, you'll need to create the ~form_name~ table -# (the file ~form_name~.sql should help with this), and create a file called -# 'db_connect.php' which calls db_connect() see: -# code/wfpl/examples/db_connect.php if(!file_exists('code/wfpl/template.php')) { die('This form requires wfpl.'); } require_once('code/wfpl/template.php'); require_once('code/wfpl/format.php'); require_once('code/wfpl/messages.php'); -require_once('code/wfpl/email.php'); -require_once('code/wfpl/db.php'); +require_once('code/wfpl/email.php'); +require_once('code/wfpl/db.php'); require_once('code/wfpl/upload.php'); -function ~form_name~_get_fields() { - +function ~form_name~_get_fields() { $~name~ = format_~format~($_REQUEST['~name~']); - $~name~ = save_uploaded_image('~name~', $GLOBALS['upload_directory']); + if($_FILE['~name~'] && $_FILE['~name~']['error'] == 0) { + $~name~ = substr(save_uploaded_image('~name~', $GLOBALS['upload_directory']), strlen($GLOBALS['upload_directory'])); + } else { + $~name~ = format_filename($_REQUEST['old_~name~']); + } tem_set('~name~', $~name~); return array(~php_fields~); } -function ~form_name~() { +function ~form_name~() { $edit_id = format_int($_REQUEST['~form_name~_edit_id']); unset($_REQUEST['~form_name~_edit_id']); if($edit_id) { @@@ -62,14 -67,20 +66,14 @@@ if(!$edit_id && !$delet_id) { tem_sub('new_msg'); - } + } if(isset($_REQUEST['~always_field~'])) { list(~php_fields~) = ~form_name~_get_fields(); - 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') || file_exists('code/db_connect.php')) { - if(file_exists('db_connect.php') { - require_once('db_connect.php'); - } else { - require_once('code/db_connect.php'); - } + if("you're happy with the POSTed values") { + if(file_exists($db_connector = 'db_connect.php') || file_exists($db_connector = 'code/db_connect.php')) { + require_once($db_connector); if($edit_id) { # uploading nothing means leaving it as is. if(!$~name~ && $delete_~name~ != 'Yes') { @@@ -82,7 -93,7 +86,7 @@@ db_insert('~form_name~', '~db_fields~', ~php_fields~); message('Entry saved.'); } - } + } if($GLOBALS['~form_name~_form_recipient'] != "fixme@example.com") { $to = $GLOBALS['~form_name~_form_recipient']; if(isset($_REQUEST['email']) and valid_email($_REQUEST['email'])) { @@@ -102,7 -113,7 +106,7 @@@ tem_sub('error'); $error = true; } - } + } if($error !== true) { tem_load('~form_name~.html'); tem_sub('thankyou'); @@@ -113,11 -124,11 +117,11 @@@ # otherwise, we display the form again. ~form_name~_get_fields() has # 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. + # 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('~form_name~', '~db_fields~', 'where id=%i', $edit_id); - ~tem_sets.tab~ + ~tem_sets.tab~ } else { # form not submitted, you can set default values like so: #tem_set('~always_field~', 'Yes');