/wp-content/plugins/wp-responder-email-autoresponder-and-newsletter-plugin/forms.php
PHP | 1395 lines | 1010 code | 371 blank | 14 comment | 98 complexity | 777f25c6a7fe8b5bb5f3c9f87145952f MD5 | raw file
- <?php
-
- include "forms.lib.php";
-
- function wpr_subscriptionforms()
- {
- if (_wpr_no_newsletters("To create subscription forms"))
- return;
- switch ($_GET['action'])
- {
- case 'create':
- _wpr_subscriptionforms_create();
- break;
- case 'form':
- $id = $_GET['fid'];
- $form = _wpr_subscriptionform_get($id);
- _wpr_subscriptionform_getcode($form,"'".$form->name."' Form HTML Code");
- return;
- break;
-
-
- case 'delete':
-
- if (isset($_POST['forms']))
- {
- $formsToDelete = $_POST['forms'];
- if (count($formsToDelete) >0)
- {
- _wpr_subscriptionforms_delete($formsToDelete);
- _wpr_subscriptionform_delete_done();
- }
- else
- {
- _wpr_subscriptionform_delete_notfound();
- }
- }
- else
- {
- _wpr_subscriptionform_delete_notfound();
-
- }
-
-
- break;
-
- case 'edit':
- $id = (int) $_GET['fid'];
- do_action("_wpr_subscriptionform_edit_form_controller",$id);
- $form = _wpr_subscriptionform_get($id);
-
-
- $form->confirm_subject = stripslashes($form->confirm_subject);
- $form->confirm_body = stripslashes($form->confirm_body);
- $form->confirmed_subject = stripslashes($form->confirmed_subject);
- $form->confirmed_body = stripslashes($form->confirmed_body);
-
- if (isset($_POST['fid']))
- {
- $checkList = array("name"=>"Name field is required","confirm_subject"=>"E-Mail Confirmation Subject Field is required","confirm_body"=>"E-Mail Confirmation Body field","confirmed_subject"=>"Confirmed Subscription subject field is required","confirmed_body"=>"Confirmed subscription body field is required");
- $errors = array();
- foreach ($checkList as $field=>$errorMessage)
- {
- $theValue = $_POST[$field];
- $theValue = trim($theValue);
- if (empty($theValue))
- {
- $errors[] = $checkList[$field];
- }
- }
- $errors = apply_filters("_wpr_subscriptionform_edit_handler_validate",$errors);
- if (count($errors) == 0)
- {
- $info['id'] = $_GET['fid'];
- $info['name'] = $_POST['name'];
- $info['return_url'] = $_POST['return_url'];
- if (!preg_match("@postseries_[0-9]+@",$_POST['followup']) && !preg_match("@autoresponder_[0-9]+@",$_POST['followup']))
- {
- $info['followup_id'] = 0;
- $info['followup_type'] = "none";
- }
- else
- {
- if (preg_match("@autoresponder_[0-9]+@",$_POST['followup']))
- {
- $followup = "autoresponder";
- $followupid = str_replace("autoresponder_","",$_POST['followup']);
- }
- else if (preg_match("@postseries_[0-9]+@",$_POST['followup']))
- {
- $followup = "postseries";
- $followupid = str_replace("postseries_","",$_POST['followup']);
- }
- else
- {
- $followup = "none";
- $followupid = 0;
- }
- }
- $info['followup_type'] = $followup;
-
- $info['followup_id'] = $followupid;
- //if it is a unknown follow-up type its probably an extended one.
-
- switch ($_POST['blogsubscription'])
- {
- case 'none':
- case 'all':
- $blogSubscription = $_POST['blogsubscription'];
- break;
- default:
- if (preg_match("@category_[0-9]+@",$_POST['blogsubscription']))
- {
- $blogSubscription = "cat";
- $blogCategory = str_replace("category_","",$_POST['blogsubscription']);
- }
-
- }
-
- $info['blogsubscription_type'] = $blogSubscription;
-
- $info['blogsubscription_id'] = $blogCategory;
-
- $info['submit_button'] = $_POST['submit_value'];
-
- $info['custom_fields'] = (isset($_POST['custom_fields']) && is_array($_POST['custom_fields']))?implode(",",$_POST['custom_fields']):"";
-
- $info['confirm_subject'] = $_POST['confirm_subject'];
-
- $info['confirm_body'] = $_POST['confirm_body'];
-
- $info['nid'] = $_POST['newsletter'];
-
- $info['confirmed_subject'] = $_POST['confirmed_subject'];
-
- $info['confirmed_body'] = $_POST['confirmed_body'];
- _wpr_subscriptionform_update($info);
- do_action("_wpr_subscriptionform_edit_handler_save",$info['id']);
- $form = _wpr_subscriptionform_get($info['id']);
- _wpr_subscriptionform_getcode($form,"Form Saved");
- return;
-
- }
-
- else
-
- $form = (object) $_POST;
-
- }
-
- _wpr_subscriptionform_form($form,$errors);
-
- break;
-
- default:
-
- _wpr_subscriptionforms_list();
-
- }
-
- }
-
- function _wpr_subscriptionform_delete_notfound()
- {
- ?>
-
- <div class="wrap">
- <h2>Invalid Input: No forms were specified.</h2>
- Did you visit this page directly? Click on the button below to go to the subscription forms list.<br />
- <input type="button" onclick="window.location='admin.php?page=wpresponder/subscriptionforms.php';" class="button-primary" value="« Back To Subscription Forms List">
- </div>
- <?php
- }
- function _wpr_subscriptionform_delete_done()
- {
- ?>
- <div class="wrap">
- <h2>The Selected Subscription Forms Have Been Deleted</h2>
- <br />
- <br />
- <a href="admin.php?page=wpresponder/subscriptionforms.php" class="button-primary">« Back To Subscription Forms List</a> </div>
- <?php
- }
-
- function _wpr_subscriptionforms_delete($list)
- {
- global $wpdb;
- $formItems = implode(",",$list);
- $formItems = "($formItems)";
- $query = "DELETE FROM ".$wpdb->prefix."wpr_subscription_form where id in $formItems;";
- $wpdb->query($query);
-
- }
-
- function _wpr_subscriptionforms_list()
- {
- global $wpdb;
- $tprefix = $wpdb->prefix;
- $query = "SELECT a.* FROM ".$tprefix."wpr_subscription_form a, ".$tprefix."wpr_newsletters b where a.nid=b.id;";
- $forms = $wpdb->get_results($query);
-
- ?>
- <div class="wrap">
- <h2>Subscription Forms</h2>
- </div>
- <script>
- function selectAllFormsCheckBox(state)
- {
- jQuery(".forms_check").attr({ checked: state});
- }
- </script>
- <ul style="padding:20px;">
- <li>Click on <em>Create New Form</em> button below to create a new subscription form. To place the newly created subscription form in the sidebar of your blog, go to the <a href="widgets.php">Widgets section</a>. To place the subscription form in a separate page or another website, copy the generated HTML code for the form and paste the code it in your own HTML page.
- </ul>
- <form name="formslist" action="admin.php?page=wpresponder/subscriptionforms.php&action=delete" method="post">
- <table class="widefat" style="margin: 10px; margin:10px 0px;;">
- <thead> <tr>
- <th><input type="checkbox" name="selectall" value="1" onclick="selectAllFormsCheckBox(this.checked);" /></th>
- <th scope="col">Name</th>
- <th>Newsletter</th>
- <th>Follow-Up</th>
- <th>Blog Subscription</th>
- <th scope="col">Actions</th>
-
- </tr> </thead>
- <?php
-
- if (count($forms) > 0 )
- {
- foreach ($forms as $form)
- {
-
- ?>
- <tr>
- <td align="center"width="20"><input type="checkbox" name="forms[]" class="forms_check" value="<?php echo $form->id ?>" /></td>
- <td><?php echo $form->name ?></td>
- <td><a href="admin.php?page=wpresponder/subscribers.php&action=nmanage&nid=<?php echo $form->nid ?>">
- <?php
- $newsletter = _wpr_newsletter_get($form->nid);
- echo $newsletter->name;
- ?>
- </a></td>
- <td><?php
-
- switch ($form->followup_type)
- {
- case 'postseries':
- $postseries = _wpr_postseries_get($form->followup_id);
-