function qem_generate_csv()
{
    if (isset($_POST['qem_create_ics'])) {
        $ics = $_POST['qem_ics'];
        $filename = $_POST['qem_filename'];
        header('Content-Description: File Transfer');
        header('Content-Disposition: attachment; filename="' . $filename . '"');
        header('Content-Type: text/csv');
        $fh = fopen("php://output", 'w');
        fwrite($fh, $ics);
        fclose($fh);
        exit;
    }
    if (isset($_POST['qem_download_csv'])) {
        $event = $_POST['qem_download_form'];
        $title = $_POST['qem_download_title'];
        $register = qem_get_stored_register();
        $filename = urlencode($title . '.csv');
        if (!$title) {
            $filename = urlencode('default.csv');
        }
        header('Content-Description: File Transfer');
        header('Content-Disposition: attachment; filename="' . $filename . '"');
        header('Content-Type: text/csv');
        $outstream = fopen("php://output", 'w');
        $message = get_option('qem_messages_' . $event);
        if (!is_array($message)) {
            $message = array();
        }
        $headerrow = array();
        if ($register['usename']) {
            array_push($headerrow, $register['yourname']);
        }
        if ($register['usemail']) {
            array_push($headerrow, $register['youremail']);
        }
        if ($register['usetelephone']) {
            array_push($headerrow, $register['yourtelephone']);
        }
        if ($register['useplaces']) {
            array_push($headerrow, $register['yourplaces']);
        }
        if ($register['usemorenames']) {
            array_push($headerrow, $register['morenames']);
        }
        if ($register['usemessage']) {
            array_push($headerrow, $register['yourmessage']);
        }
        if ($register['useblank1']) {
            array_push($headerrow, $register['yourblank1']);
        }
        if ($register['useblank2']) {
            array_push($headerrow, $register['yourblank2']);
        }
        if ($register['usedropdown']) {
            array_push($headerrow, $register['yourdropdown']);
        }
        if ($register['useselector']) {
            array_push($headerrow, $register['yourselector']);
        }
        if ($register['usenumber1']) {
            array_push($headerrow, $register['yournumber1']);
        }
        array_push($headerrow, 'Date Sent');
        fputcsv($outstream, $headerrow, ',', '"');
        foreach ($message as $value) {
            $cells = array();
            if ($register['usename']) {
                array_push($cells, $value['yourname']);
            }
            if ($register['usemail']) {
                array_push($cells, $value['youremail']);
            }
            if ($register['usetelephone']) {
                array_push($cells, $value['yourtelephone']);
            }
            if ($register['useplaces']) {
                array_push($cells, $value['yourplaces']);
            }
            if ($register['usemorenames']) {
                array_push($cells, $value['morenames']);
            }
            if ($register['usemessage']) {
                array_push($cells, $value['yourmessage']);
            }
            if ($register['useblank1']) {
                array_push($cells, $value['yourblank1']);
            }
            if ($register['useblank2']) {
                array_push($cells, $value['yourblank2']);
            }
            if ($register['usedropdown']) {
                array_push($cells, $value['yourdropdown']);
            }
            if ($register['useselector']) {
                array_push($cells, $value['yourselector']);
            }
            if ($register['usenumber1']) {
                array_push($cells, $value['yournumber1']);
            }
            array_push($cells, $value['sentdate']);
            fputcsv($outstream, $cells, ',', '"');
        }
        fclose($outstream);
        exit;
    }
}
Пример #2
0
function qem_register()
{
    $processpercent = $processfixed = $qem_apikey = '';
    if (isset($_POST['Submit']) && check_admin_referer("save_qem")) {
        $options = array('useform', 'formwidth', 'notarchive', 'useqpp', 'usename', 'usemail', 'usetelephone', 'useplaces', 'usemessage', 'useattend', 'usecaptcha', 'useblank1', 'useblank2', 'usedropdown', 'useselector', 'usenumber1', 'reqname', 'reqmail', 'reqtelephone', 'reqmessage', 'reqblank1', 'reqblank2', 'reqdropdown', 'reqnumber1', 'formborder', 'sendemail', 'subject', 'subjecttitle', 'subjectdate', 'title', 'blurb', 'yourname', 'youremail', 'yourtelephone', 'yourplaces', 'yourmessage', 'yourcaptcha', 'yourattend', 'yourblank1', 'yourblank2', 'yourdropdown', 'yourselector', 'yournumber1', 'useaddinfo', 'addinfo', 'qemsubmit', 'error', 'replytitle', 'replyblurb', 'whoscoming', 'whosavatar', 'whoscomingmessage', 'placesbefore', 'placesafter', 'eventfull', 'eventfullmessage', 'eventlist', 'showuser', 'linkback', 'usecopy', 'copyblurb', 'alreadyregistered', 'useread_more', 'read_more', 'sort', 'registeredusers', 'paypal', 'qempaypalsubmit', 'numberattending', 'numberattendingbefore', 'numberattendingafter', 'allowmultiple', 'nameremoved', 'checkremoval', 'allowtags', 'useterms', 'termslabel', 'termsurl', 'termstarget', 'ontheright', 'usemorenames', 'morenames');
        foreach ($options as $item) {
            $register[$item] = stripslashes($_POST[$item]);
            if ($_POST['allowtags']) {
                $register[$item] = strip_tags($register[$item], '<p><b><a><em><i><strong>');
            } else {
                $register[$item] = filter_var($register[$item], FILTER_SANITIZE_STRING);
            }
        }
        update_option('qem_register', $register);
        qem_create_css_file('update');
        qem_admin_notice(__('The registration form settings have been updated', 'quick-event-manager'));
    }
    if (isset($_POST['Reset']) && check_admin_referer("save_qem")) {
        delete_option('qem_register');
        qem_admin_notice(__('The registration form settings have been reset', 'quick-event-manager'));
    }
    if (isset($_POST['Validate']) && check_admin_referer("save_qem")) {
        $apikey = $_POST['qem_apikey'];
        $blogurl = get_site_url();
        $akismet = new qem_akismet($blogurl, $apikey);
        if ($akismet->isKeyValid()) {
            qem_admin_notice("Valid Akismet API Key. All messages will now be checked against the Akismet database.");
            update_option('qem-akismet', $apikey);
        } else {
            qem_admin_notice("Your Akismet API Key is not Valid");
        }
    }
    if (isset($_POST['Delete']) && check_admin_referer("save_qem")) {
        delete_option('qem-akismet');
        qem_admin_notice("Akismet validation is no longer active on the Quick Event Manager");
    }
    $register = qem_get_stored_register();
    $content = '<div class="qem-settings"><div class="qem-options">
    <form id="" method="post" action="">
    <table width="100%">
    <tr>
    <td colspan="3"><h2>' . __('General Settings', 'quick-event-manager') . '</h2></td></tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="useform"' . $register['useform'] . ' value="checked" /></td>
    <td colspan="2">' . __('Add a registration form to ALL your events', 'quick-event-manager') . '<br>
    <span class="description">' . __('To add a registration form to individual events use the event editor', 'quick-event-manager') . '.</span></td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="formborder"' . $register['formborder'] . ' value="checked" /></td>
    <td colspan="2">' . __('Add a border to the form', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td></td>
    <td colspan="2">' . __('Form Width', 'quick-event-manager') . '<input type="text" style="width:4em" name="formwidth" value="' . $register['formwidth'] . '" /> use px, em or %. Default is px.</td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="ontheright"' . $register['ontheright'] . ' value="checked" /></td>
    <td colspan="2">' . __('Display the registration form on the right below the event image and map (if used)', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="notarchive" ' . $register['notarchive'] . ' value="checked" /></td>
    <td colspan="2">' . __('Do not display registration form on old events', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="showuser" ' . $register['showuser'] . ' value="checked" /></td>
    <td colspan="2">' . __('Pre-fill user name if logged in', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="registeredusers" ' . $register['registeredusers'] . ' value="checked" /></td>
    <td colspan="2">' . __('Only users who have logged in can register', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="allowmultiple" ' . $register['allowmultiple'] . ' value="checked" /></td>
    <td colspan="2">' . __('Allow multiple registrations', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="eventfull" ' . $register['eventfull'] . ' value="checked" /></td>
    <td colspan="2">' . __('Hide registration form when event is full', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td></td>
    <td>' . __('Message to display', 'quick-event-manager') . ':</td>
    <td><input type="text" style="" name="eventfullmessage" value="' . $register['eventfullmessage'] . '" /></td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="allowtags"' . $register['allowtags'] . ' value="cheFcked" /></td>
    <td colspan="2">' . __('Allow HTML tags', 'quick-event-manager') . ' ' . __('Warning: this may leave your site open to CSRF and XSS attacks so be careful.', 'quick-event-manager') . '</td>
    </tr>
    <td colspan="3"><h2>' . __('Notifications', 'quick-event-manager') . '</h2></td>
    <tr>
    <td colspan="2">' . __('Your Email Address', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="sendemail" value="' . $register['sendemail'] . '" /><br><span class="description">' . __('This is where registration notifications will be sent', 'quick-event-manager') . '</span></td>
    </tr>
    <tr>
    <td colspan="3"><h2>' . __('Registration Form', 'quick-event-manager') . '</h2></td>
    </tr>
    <tr>
    <td colspan="2">' . __('Form title', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="title" value="' . $register['title'] . '" /></td>
    </tr>
    <tr>
    <td colspan="2">' . __('Form blurb', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="blurb" value="' . $register['blurb'] . '" /></td>
    </tr>
    <td colspan="2">' . __('Submit Button', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="qemsubmit" value="' . $register['qemsubmit'] . '" /></td>
    </tr>
    </table>
    <p>' . __('Check those fields you want to use. Drag and drop to change the order', 'quick-event-manager') . '.</p>
    <style>table#sorting{width:100%;}
    #sorting tbody tr{outline: 1px solid #888;background:#E0E0E0;}
    #sorting tbody td{padding: 2px;vertical-align:middle;}
    #sorting{border-collapse:separate;border-spacing:0 5px;}</style>
    <script>
    jQuery(function() 
    {var qem_rsort = jQuery( "#qem_rsort" ).sortable(
    {axis: "y",cursor: "move",opacity:0.8,update:function(e,ui)
    {var order = qem_rsort.sortable("toArray").join();jQuery("#qem_register_sort").val(order);}});});
    </script>
    <table id="sorting">
    <thead>
    <tr>
    <th width="5%">U</th>
    <th width="5%">R</th>
    <th width="20%">' . __('Field', 'quick-event-manager') . '</th>
    <th>' . __('Label', 'quick-event-manager') . '</th>
    </tr>
    </thead><tbody id="qem_rsort">';
    $sort = explode(",", $register['sort']);
    foreach ($sort as $name) {
        switch ($name) {
            case 'field1':
                $use = 'usename';
                $req = 'reqname';
                $label = __('Name', 'quick-event-manager');
                $input = 'yourname';
                break;
            case 'field2':
                $use = 'usemail';
                $req = 'reqmail';
                $label = __('Email', 'quick-event-manager');
                $input = 'youremail';
                break;
            case 'field3':
                $use = 'useattend';
                $req = '';
                $label = __('Not Attending', 'quick-event-manager');
                $input = 'yourattend';
                break;
            case 'field4':
                $use = 'usetelephone';
                $req = 'reqtelephone';
                $label = __('Telephone', 'quick-event-manager');
                $input = 'yourtelephone';
                break;
            case 'field5':
                $use = 'useplaces';
                $req = '';
                $label = __('Places', 'quick-event-manager');
                $input = 'yourplaces';
                break;
            case 'field6':
                $use = 'usemessage';
                $req = 'reqmessage';
                $label = __('Message', 'quick-event-manager');
                $input = 'yourmessage';
                break;
            case 'field7':
                $use = 'usecaptcha';
                $req = '';
                $label = __('Captcha', 'quick-event-manager');
                $input = 'Displays a simple maths captcha to confuse the spammers.';
                break;
            case 'field8':
                $use = 'usecopy';
                $req = '';
                $label = __('Copy Message', 'quick-event-manager');
                $input = 'copyblurb';
                break;
            case 'field9':
                $use = 'useblank1';
                $req = 'reqblank1';
                $label = __('User defined', 'quick-event-manager');
                $input = 'yourblank1';
                break;
            case 'field10':
                $use = 'useblank2';
                $req = 'reqblank2';
                $label = __('User defined', 'quick-event-manager');
                $input = 'yourblank2';
                break;
            case 'field11':
                $use = 'usedropdown';
                $req = '';
                $label = __('Dropdown', 'quick-event-manager');
                $input = 'yourdropdown';
                break;
            case 'field12':
                $use = 'usenumber1';
                $req = 'reqnumber1';
                $label = __('Number', 'quick-event-manager');
                $input = 'yournumber1';
                break;
            case 'field13':
                $use = 'useaddinfo';
                $req = '';
                $label = __('Additional Info (displays as plain text)', 'quick-event-manager');
                $input = 'addinfo';
                break;
            case 'field14':
                $use = 'useselector';
                $req = '';
                $label = __('Dropdown', 'quick-event-manager');
                $input = 'yourselector';
                break;
        }
        $content .= '<tr id="' . $name . '">
        <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="' . $use . '" ' . $register[$use] . ' value="checked" /></td>
        <td width="5%">';
        if ($req) {
            $content .= '<input type="checkbox" style="margin:0; padding: 0; border: none" name="' . $req . '" ' . $register[$req] . ' value="checked" />';
        }
        $content .= '</td><td width="20%">' . $label . '</td><td>';
        if ($name == 'field7') {
            $content .= $input;
        } else {
            $content .= '<input type="text" style="padding:1px;border: 1px solid #343838;" name="' . $input . '" value="' . $register[$input] . '" />';
        }
        $content .= '</td></tr>';
    }
    $content .= '</tbody>
    </table>
    <input type="hidden" id="qem_register_sort" name="sort" value="' . $register['sort'] . '" />
    <table>
    <td colspan="3"><h2>' . __('Show box for more names', 'quick-event-manager') . '</h2></td>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="usemorenames" ' . $register['usemorenames'] . ' value="checked" /></td>
    <td colspan="2">' . __('Show box to add more names if number attending is greater than 1') . '</td>
    </tr>
    <tr>
    <td></td>
    <td>' . __('More names label', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="morenames" value="' . $register['morenames'] . '" /></td>
    </tr>
    <tr>
    <td colspan="3"><h2>' . __('Terms and Conditions', 'quick-event-manager') . '</h2></td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="useterms" ' . $register['useterms'] . ' value="checked" />
    </td>
    <td colspan="2">' . __('Include Terms and Conditions checkbox') . '</td>
    </tr>
    <tr>
    <td></td>
    <td>' . __('T&C label', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="termslabel" value="' . $register['termslabel'] . '" /></td>
    </tr>
    <tr>
    <td></td>
    <td>' . __('T&C URL', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="termsurl" value="' . $register['termsurl'] . '" /></td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="termstarget" ' . $register['termstarget'] . ' value="checked" /></td>
    <td colspan="2">' . __('Open link in new Tab/Window') . '</td>
    </tr>
    <tr>
    <td colspan="3"><h2>' . __('Error and Thank-you messages', 'quick-event-manager') . '</h2></td>
    </tr>
    <tr>
    <td colspan="2">' . __('Thank you message title', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="replytitle" value="' . $register['replytitle'] . '" /></td>
    </tr>
    <tr>
    <td colspan="2">' . __('Thank you message blurb', 'quick-event-manager') . '</td>
    <td><textarea style="width:100%;height:100px;" name="replyblurb">' . $register['replyblurb'] . '</textarea></td>
    </tr>
    <tr>
    <td colspan="2">' . __('Error Message', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="error" value="' . $register['error'] . '" /></td>
    </tr>
    <tr>
    <td colspan="2">' . __('Already Registered', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="alreadyregistered" value="' . $register['alreadyregistered'] . '" /></td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="checkremoval" ' . $register['checkremoval'] . ' value="checked" /></td>
    <td colspan="2">' . __('Use \'Not Attending\' option to allow people to remove their names from the list', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td></td>
    <td>' . __('Name Removed Message', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="nameremoved" value="' . $register['nameremoved'] . '" /></td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="useread_more"' . $register['useread_more'] . ' value="checked" /></td>
    <td colspan="2">' . __('Display a \'return to event\' message after registration', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td></td>
    <td>' . __('Return to event message:', 'quick-event-manager') . '</td>
    <td><input type="text" style="width:100%;" label="read_more" name="read_more" value="' . $register['read_more'] . '" /></td>
    </tr>
    <tr>
    <td colspan="3"><h2>' . __('Confirmation Email', 'quick-event-manager') . '</h2></td>
    </tr>
    <tr>
    <td colspan="3">You can reply to the sender using the <a href="?page=quick-event-manager/settings.php&tab=auto">Auto Responder</a>.</td>
    </tr>
    <tr>
    <td colspan="3"><h2>' . __('Show Attendees', 'quick-event-manager') . '</h2></td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="whoscoming" ' . $register['whoscoming'] . ' value="checked" /></td>
    <td colspan="2">' . __('List attendees', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="whosavatar" ' . $register['whosavatar'] . ' value="checked" /></td>
    <td colspan="2">' . __('Show avatars', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td colspan="2">' . __('Message', 'quick-event-manager') . '</td>
    <td><input type="text" style="" name="whoscomingmessage" value="' . $register['whoscomingmessage'] . '" /></td>
    </tr>
    <tr>
    <td colspan="3"><h2>' . __('Places Available and Numbers Attending', 'quick-event-manager') . '</h2></td>
    </tr>
    <tr>
    <td colspan="3">' . __('Show how many places are left for an event', 'quick-event-manager') . '. ' . __('Set the number of places in the event editor', 'quick-event-manager') . '.</td>
    </tr>
    <tr>
    <td></td>
    <td>' . __('Message to display', 'quick-event-manager') . ':</td>
    <td><input type="text" style="width:40%;" name="placesbefore" value="' . $register['placesbefore'] . '" /> {number} <input type="text" style="width:40%;" name="placesafter" value="' . $register['placesafter'] . '" />
    </td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="eventlist" ' . $register['eventlist'] . ' value="checked" /></td>
    <td colspan="2">' . __('Show places available on event list - this only works if you have selected \'Add an attendee counter to this form\' on the event editor.', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="numberattending" ' . $register['numberattending'] . ' value="checked" /></td>
    <td colspan="2">' . __('Show number of people attending.', 'quick-event-manager') . '</td>
    </tr>
    <tr>
    <td></td><td>' . __('Message to display', 'quick-event-manager') . ':</td>
    <td><input type="text" style="width:40%; " name="numberattendingbefore" value="' . $register['numberattendingbefore'] . '" /> {number} <input type="text" style="width:40%; " name="numberattendingafter" value="' . $register['numberattendingafter'] . '" /></td>
    </tr>
    </table>
    <p><input type="submit" name="Submit" class="button-primary" style="color: #FFF;" value="' . __('Save Changes', 'quick-event-manager') . '" />
    <input type="submit" name="Reset" class="button-primary" style="color: #FFF;" value="' . __('Reset', 'quick-event-manager') . '" onclick="return window.confirm( \'' . __('Are you sure you want to reset the registration form?', 'quick-event-manager') . '\' );"/></p>
    <h2>' . __('Use Akismet Validation', 'quick-event-manager') . '</h2>
    <p>' . __('Enter your API Key to check all messages against the Akismet database.', 'quick-event-manager') . '</p> 
    <p><input type="text" label="akismet" name="qem_apikey" value="' . $qem_apikey . '" /></p>
    <p><input type="submit" name="Validate" class="button-primary" style="color: #FFF;" value="Activate Akismet Validation" /> <input type="submit" name="Delete" class="button-secondary" value="Deactivate Aksimet Validation" onclick="return window.confirm( \'This will delete the Akismet Key.\\nAre you sure you want to do this?\' );"/></p>';
    $content .= wp_nonce_field("save_qem");
    $content .= '</form>
    </div>
    <div class="qem-options" style="float:right">
    <h2>' . __('Example form', 'quick-event-manager') . '</h2>
    <p>' . __('This is an example of the form. When it appears on your site it will use your theme styles.', 'quick-event-manager') . '</p>';
    $content .= qem_loop();
    $content .= '</div></div>';
    echo $content;
}
function qem_get_stored_autoresponder()
{
    $auto = get_option('qem_autoresponder');
    if (!is_array($auto)) {
        $register = qem_get_stored_register();
        $fromemail = $register['sendemail'];
        if (empty($fromemail)) {
            global $current_user;
            get_currentuserinfo();
            $fromemail = $current_user->user_email;
        }
        $title = get_bloginfo('name');
        if ($register['sendcopy']) {
            if (!$register['emailmessage']) {
                $register['emailmessage'] = $register['replytitle'] . ' ' . $register['replyblurb'];
            }
            $auto = array('enable' => $register['sendcopy'], 'subject' => $register['subject'], 'subjecttitle' => $register['subjecttitle'], 'subjectdate' => $register['subjectdate'], 'message' => $register['emailmessage'], 'useeventdetails' => $register['useeventdetails'], 'eventdetailsblurb' => $register['eventdetailsblurb'], 'useregistrationdetails' => $register['useregistrationdetails'], 'registrationdetailsblurb' => $register['registrationdetailsblurb'], 'fromname' => $title, 'fromemail' => $fromemail, 'permalink' => $register['permalink']);
            $register['sendcopy'] = '';
            update_option('qem_register', $register);
            update_option('qem_autoresponder', $auto);
        } else {
            $auto = array('enable' => '', 'subject' => 'You have registered for ', 'subjecttitle' => 'checked', 'subjectdate' => '', 'message' => 'Thank you for registering, we will be in contact soon. If you have any questions please reply to this email.', 'useeventdetails' => '', 'eventdetailsblurb' => __('Event Details', 'quick-event-manager'), 'useregistrationdetails' => 'checked', 'registrationdetailsblurb' => __('Your registration details', 'quick-event-manager'), 'sendcopy' => 'checked', 'fromname' => $title, 'fromemail' => $fromemail, 'permalink' => '');
        }
    }
    return $auto;
}
function event_details_meta()
{
    global $post;
    $event = event_get_stored_options();
    $register = qem_get_stored_register();
    $payment = qem_get_stored_payment();
    $display = event_get_stored_display();
    $eventdate = get_event_field('event_date');
    if (empty($eventdate)) {
        $eventdate = time();
    }
    $date = date("d M Y", $eventdate);
    $localdate = date_i18n("d M Y", $eventdate);
    $eventenddate = get_event_field('event_end_date');
    if ($eventenddate) {
        $enddate = date("d M Y", $eventenddate);
        $localenddate = date_i18n("d M Y", $eventenddate);
    }
    if ($register['useform'] && !get_event_field("event_register")) {
        $useform = 'checked';
    } else {
        $useform = get_event_field("event_register");
    }
    $usepaypal = '';
    if ($register['paypal'] && !get_event_field('event_date') || get_event_field('event_paypal') == 'checked') {
        $usepaypal = 'checked';
    }
    $output .= '<p><em>' . __('Empty fields are not displayed', 'quick-event-manager') . ' ' . __('See the plugin', 'quick-event-manager') . ' <a href="options-general.php?page=quick-event-manager/settings.php">' . __('settings', 'quick-event-manager') . '</a> ' . __('page for options', 'quick-event-manager') . '.</em></p>
    <p>Event ID: ' . $post->ID . '</p>
    <table width="100%">
    <tr>
    <td width="20%"><label>' . __('Date', 'quick-event-manager') . ': </label></td>
    <td width="80%"><input type="text" class="qem_input" style="border:1px solid #415063;" id="qemdate" name="event_date" value="' . $date . '" /> <em>' . __('Local date', 'quick-event-manager') . ': ' . $localdate . '</em>.</td>
    <script type="text/javascript">jQuery(document).ready(function() {jQuery(\'#qemdate\').datepicker({dateFormat : \'dd M yy\'});});</script>
    </tr>
    <tr>
    <td width="20%"><label>' . __('End Date', 'quick-event-manager') . ': </label></td>
    <td width="80%"><input type="text" class="qem_input" style="border:1px solid #415063;"  id="qemenddate" name="event_end_date" value="' . $enddate . '" /> <em>' . __('Leave blank for one day events', 'quick-event-manager') . '.</em>';
    if ($eventenddate) {
        $output .= ' <em>' . __('Current end date', 'quick-event-manager') . ': ' . $localenddate . '</em>';
    }
    $output .= '</td>
    <script type="text/javascript">jQuery(document).ready(function() {jQuery(\'#qemenddate\').datepicker({dateFormat : \'dd M yy\'});});</script>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Short Description', 'quick-event-manager') . ': </label></td>
    <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_desc" value="' . get_event_field("event_desc") . '" />
    </td>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Time', 'quick-event-manager') . '</label></td>
    <td width="80%">' . $event['start_label'] . ' <input type="text" class="qem_input" style="border:1px solid #415063;"  name="event_start" value="' . get_event_field("event_start") . '" /> ' . $event['finish_label'] . ' <input type="text" style="width:40%;overflow:hidden;border:1px solid #415063;"   name="event_finish" value="' . get_event_field("event_finish") . '" /><br>
    <span class="description">Start times in the format 8.23 am/pm, 8.23, 8:23 and 08:23 will be used to order events by time and date. All other formats will display but won\'t contribute to the event ordering.</span> 
    </td>
    </tr>';
    if ($display['usetimezone']) {
        $tz = get_event_field("selected_timezone");
        ${$tz} = 'selected';
        $output .= '<tr>
		<td width="20%"><label>' . __('Timezone', 'quick-event-manager') . ': </label></td>
		<td width="80%">';
        if (get_event_field("event_timezone")) {
            $output .= '<b>Current timezone:</b> ' . get_event_field("event_timezone") . '.&nbsp;&nbsp;';
        }
        $output .= 'Select a new timezone or enter your own:<br>
        <select style="border:1px solid #415063;" name="event_timezone" id="event_timezone">
        <option value="">None</option>
        <option ' . $Eni . ' value="Eniwetok, Kwajalein">(GMT -12:00) Eniwetok, Kwajalein</option>       
        <option ' . $Mid . ' value="Midway Island, Samoa">(GMT -11:00) Midway Island, Samoa</option>       
        <option ' . $Hwa . ' value="Hawaii">(GMT -10:00) Hawaii</option>       
        <option ' . $Ala . ' value="Alaska">(GMT -9:00) Alaska</option>       
        <option ' . $Pac . ' value="Pacific Time (US &amp; Canada)">(GMT -8:00) Pacific Time (US &amp; Canada)</option>       
        <option ' . $Mou . ' value="Mountain Time (US &amp; Canada)">(GMT -7:00) Mountain Time (US &amp; Canada)</option>       
        <option ' . $Cen . ' value="Central Time (US &amp; Canada), Mexico City">(GMT -6:00) Central Time (US &amp; Canada), Mexico City</option>       
        <option ' . $Eas . ' value="Eastern Time (US &amp; Canada), Bogota, Lima">(GMT -5:00) Eastern Time (US &amp; Canada), Bogota, Lima</option>       
        <option ' . $Atl . ' value="Atlantic Time (Canada), Caracas, La Paz">(GMT -4:00) Atlantic Time (Canada), Caracas, La Paz</option>       
        <option ' . $New . ' value="Newfoundland">(GMT -3:30) Newfoundland</option>       
        <option ' . $Bra . ' value="Brazil, Buenos Aires, Georgetown">(GMT -3:00) Brazil, Buenos Aires, Georgetown</option>       
        <option ' . $Mia . ' value="Mid-Atlantic">(GMT -2:00) Mid-Atlantic</option>       
        <option ' . $Azo . ' value="Azores, Cape Verde Islands">(GMT -1:00 hour) Azores, Cape Verde Islands</option>       
        <option ' . $Wes . ' value="Western Europe Time, London, Lisbon, Casablanca">(GMT) Western Europe Time, London, Lisbon, Casablanca</option>       
        <option ' . $Bru . ' value="Brussels, Copenhagen, Madrid, Paris">(GMT +1:00 hour) Brussels, Copenhagen, Madrid, Paris</option>       
        <option ' . $Kal . ' value="Kaliningrad, South Africa">(GMT +2:00) Kaliningrad, South Africa</option>       
        <option ' . $Bag . ' value="Baghdad, Riyadh, Moscow, St. Petersburg">(GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersburg</option>       
        <option ' . $Teh . ' value="Tehran">(GMT +3:30) Tehran</option>       
        <option ' . $Abu . ' value="Abu Dhabi, Muscat, Baku, Tbilisi">(GMT +4:00) Abu Dhabi, Muscat, Baku, Tbilisi</option>       
        <option ' . $Kab . ' value="Kabul">(GMT +4:30) Kabul</option>       
        <option ' . $Eka . ' value="Ekaterinburg, Islamabad, Karachi, Tashkent">(GMT +5:00) Ekaterinburg, Islamabad, Karachi, Tashkent</option>       
        <option ' . $Bom . ' value="Bombay, Calcutta, Madras, New Delhi">(GMT +5:30) Bombay, Calcutta, Madras, New Delhi</option>       
        <option ' . $Kat . ' value="Kathmandu">(GMT +5:45) Kathmandu</option>       
        <option ' . $Alm . ' value="Almaty, Dhaka, Colombo">(GMT +6:00) Almaty, Dhaka, Colombo</option>       
        <option ' . $Ban . ' value="Bangkok, Hanoi, Jakarta">(GMT +7:00) Bangkok, Hanoi, Jakarta</option>       
        <option ' . $Bei . ' value="Beijing, Perth, Singapore, Hong Kong">(GMT +8:00) Beijing, Perth, Singapore, Hong Kong</option>       
        <option ' . $Tok . ' value="Tokyo, Seoul, Osaka, Sapporo, Yakutsk">(GMT +9:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk</option>       
        <option ' . $Ade . ' value="Adelaide, Darwin">(GMT +9:30) Adelaide, Darwin</option>       
        <option ' . $Aus . ' value="Eastern Australia, Guam, Vladivostok">(GMT +10:00) Eastern Australia, Guam, Vladivostok</option>       
        <option ' . $Mag . ' value="Magadan, Solomon Islands, New Caledonia">(GMT +11:00) Magadan, Solomon Islands, New Caledonia</option>       
        <option ' . $Auk . ' value="Auckland, Wellington, Fiji, Kamchatka">(GMT +12:00) Auckland, Wellington, Fiji, Kamchatka</option> 
        </select>
        <br><span class="description">The option to display timezones is set on the <a href="options-general.php?page=quick-event-manager/settings.php&tab=display">Event Display</a> page.</span>
    </td>
    </tr>';
    }
    $output .= '
    <tr>
    <td width="20%"><label>' . __('Venue', 'quick-event-manager') . ': </label></td>
    <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;"  name="event_location" value="' . get_event_field("event_location") . '" /></td>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Address', 'quick-event-manager') . ': </label></td>
    <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;"  name="event_address" value="' . get_event_field("event_address") . '" /></td>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Website', 'quick-event-manager') . ': </label></td>
    <td width="80%"><input type="text" class="qem_input" style="border:1px solid #415063;"  name="event_link" value="' . get_event_field("event_link") . '" /><label> ' . __('Display As', 'quick-event-manager') . ': </label><input type="text" style="width:40%;overflow:hidden;border:1px solid #415063;"  name="event_anchor" value="' . get_event_field("event_anchor") . '" /></td>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Cost', 'quick-event-manager') . ': </label></td>
    <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_cost" value="' . get_event_field("event_cost") . '" /></td>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Organiser', 'quick-event-manager') . ': </label></td>
    <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_organiser" value="' . get_event_field("event_organiser") . '" /></td>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Organiser Contact Details', 'quick-event-manager') . ': </label></td>
    <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_telephone" value="' . get_event_field("event_telephone") . '" /></td>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Registration Form', 'quick-event-manager') . ': </label></td>
    <td width="80%"><input type="checkbox" style="" name="event_register" value="checked" ' . $useform . '> Add registration form to this event. <a href="options-general.php?page=quick-event-manager/settings.php&tab=register">Registration form settings</a><br>
    <span class="description">If you are using the <a href="options-general.php?page=quick-event-manager/settings.php&tab=auto">autoresponder</a> you can create a reply message for this event. See the \'Registration Confirmation Message\' at the bottom of this page.</span></td>
</tr>
<tr>
<td width="20%"><label>' . __('Redirect to a URL after registration', 'quick-event-manager') . ': </label></td>
<td width="80%"><input type="text" class="qem_input" style="border:1px solid #415063;" name="event_redirect" value="' . get_event_field("event_redirect") . '" /><br>
    <input type="checkbox" style="" name="event_redirect_id" value="checked" ' . get_event_field("event_redirect_id") . ' /> Add event ID to redirect URL<td>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Event Counter', 'quick-event-manager') . ': </label></td>
    <td><input type="checkbox" style="" name="event_counter" value="checked" ' . get_event_field("event_counter") . '> Add an attendee counter to this form. Number of places available: <input type="text" class="qem_input" style="width:3em;border:1px solid #415063;" name="event_number" value="' . get_event_field("event_number") . '" /></td>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Payment', 'quick-event-manager') . ': </label></td>
<td><input type="checkbox" name="event_paypal" value="checked" ' . $usepaypal . ' /> Link to paypal after registration. <a href="options-general.php?page=quick-event-manager/settings.php&tab=payment">Payment settings</a>.</td>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Hide Event', 'quick-event-manager') . ': </label></td>
    <td width="80%"><input type="checkbox" style="" name="hide_event" value="checked" ' . get_event_field("hide_event") . '> Hide this event in the event list (only display on the calendar).</td>
    </tr>
    <tr>
    <td width="20%"><label>' . __('Event Image', 'quick-event-manager') . ': </label></td>
    <td><input id="event_image" type="text" class="qem_input" style="border:1px solid #415063;" name="event_image" value="' . get_event_field("event_image") . '" />&nbsp;
    <input id="upload_event_image" class="button" type="button" value="Upload Image" /></td>
    </tr>';
    if (get_event_field("event_image")) {
        $output .= '<tr>
    <td></td>
    <td><img class="qem-image" src=' . get_event_field("event_image") . '></td>
    </tr>';
    }
    $output .= '<tr>
    <td style="vertical-align:top"><label>' . __('Repeat Event', 'quick-event-manager') . ': </label></td>
    <td><span style="color:red;font-weight:bold;">Warning:</span> Only use once or you will get lots of duplicated events<br />
    <input style="margin:0; padding:0; border:none" type="radio" name="event_repeat" value="repeatweekly" /> ' . __('Weekly', 'quick-event-manager') . '<br />
	<input style="margin:0; padding:0; border:none" type="radio" name="event_repeat" value="repeatmonthly" /> ' . __('Monthly', 'quick-event-manager') . '<br>
    Number of repetitions: <input type="text" class="qem_input" style="width:3em;border:1px solid #415063;" name="repeatnumber" value="12" /> (maximum 52)</td>
    </tr>';
    $event = get_the_ID();
    $title = get_the_title();
    $whoscoming = get_option('qem_messages_' . $event);
    if ($whoscoming) {
        foreach ($whoscoming as $item) {
            $event_names .= $item['yourname'] . ', ';
        }
        $event_names = substr($event_names, 0, -2);
        $output .= '<tr>
        <td>Attendees (names and emails collected from the <a href="options-general.php?page=quick-event-manager/settings.php&tab=register">registration form</a>)</td>
        <td><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_names" value="' . $event_names . '" /></td>
        </tr>
        <tr>
        <td></td>
        <td><a href="admin.php?page=quick-event-manager/quick-event-messages.php&event=' . $event . '&title=' . $title . '">View Full Registration Details</a></td>
        <tr>';
    }
    $output .= '</table>';
    $output .= wp_nonce_field('qem_nonce', 'save_qem');
    echo $output;
}
function qem_messages()
{
    $event = $title = '';
    global $_GET;
    $event = isset($_GET["event"]) ? $_GET["event"] : null;
    $title = isset($_GET["title"]) ? $_GET["title"] : null;
    $unixtime = get_post_meta($event, 'event_date', true);
    $date = date_i18n("d M Y", $unixtime);
    $noregistration = '<p>No event selected</p>';
    $register = qem_get_stored_register();
    $category = 'All Categories';
    if (isset($_POST['qem_reset_message'])) {
        $event = $_POST['qem_download_form'];
        $title = get_the_title($event);
        delete_option('qem_messages_' . $event);
        delete_option($event);
        qem_admin_notice('Registrants for ' . $title . ' have been deleted.');
        $eventnumber = get_post_meta($event, 'event_number', true);
        update_option($event . 'places', $eventnumber);
    }
    if (isset($_POST['category'])) {
        $category = $_POST["category"];
    }
    if (isset($_POST['select_event']) || isset($_POST['eventid'])) {
        $event = $_POST["eventid"];
        if ($event) {
            $unixtime = get_post_meta($event, 'event_date', true);
            $date = date_i18n("d M Y", $unixtime);
            $title = get_the_title($event);
            $noregistration = '<h2>' . $title . ' | ' . $date . '</h2><p>Nobody has registered for ' . $title . ' yet</p>';
        } else {
            $noregistration = '<p>No event selected</p>';
        }
    }
    if (isset($_POST['changeoptions'])) {
        $options = array('showevents', 'category');
        foreach ($options as $item) {
            $messageoptions[$item] = stripslashes($_POST[$item]);
        }
        $category = $messageoptions['category'];
        update_option('qem_messageoptions', $messageoptions);
    }
    if (isset($_POST['qem_delete_selected'])) {
        $event = $_POST["qem_download_form"];
        $message = get_option('qem_messages_' . $event);
        $eventnumber = get_option($event . 'places');
        $check = get_post_meta($event, 'event_counter', true);
        for ($i = 0; $i <= 100; $i++) {
            if ($_POST[$i] == 'checked') {
                $num = $message[$i]['yourplaces'] ? $message[$i]['yourplaces'] : 1;
                if ($check) {
                    $eventnumber = $eventnumber + $num;
                }
                unset($message[$i]);
            }
        }
        $message = array_values($message);
        update_option('qem_messages_' . $event, $message);
        if ($check) {
            update_option($event . 'places', $eventnumber);
        }
        qem_admin_notice('Selected registrations have been deleted.');
    }
    if (isset($_POST['qem_emaillist'])) {
        $event = $_POST["qem_download_form"];
        $title = $_POST["qem_download_title"];
        $message = get_option('qem_messages_' . $event);
        $register = qem_get_stored_register();
        $content = '';
        $content = qem_build_registration_table($register, $message, '', '', '', '');
        global $current_user;
        get_currentuserinfo();
        $qem_email = $current_user->user_email;
        $headers = "From: {<{$qem_email}>\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: text/html; charset=\"utf-8\"\r\n";
        wp_mail($qem_email, $title, $content, $headers);
        qem_admin_notice('Registration list has been sent to ' . $qem_email . '.');
    }
    qem_generate_csv();
    $content = $current = $all = '';
    $messageoptions = qem_get_stored_msg();
    ${$messageoptions}['showevents'] = "checked";
    $message = get_option('qem_messages_' . $event);
    $places = get_option($event . 'places');
    $check = get_post_meta($event, 'event_counter', true);
    if (!is_array($message)) {
        $message = array();
    }
    $dashboard = '<div class="wrap">
<h1>Event Registation Report</h1>
<p><form method="post" action="">' . qem_message_categories($category) . '
&nbsp;&nbsp;' . qem_get_eventlist($event, $register, $messageoptions, $category) . '
&nbsp;&nbsp;<b>Show:</b> <input style="margin:0; padding:0; border:none;" type="radio" name="showevents" value="all" ' . $all . ' /> All Events <input style="margin:0; padding:0; border:none;" type="radio" name="showevents" value="current" ' . $current . ' /> Current Events&nbsp;&nbsp;<input type="submit" name="changeoptions" class="button-secondary" value="Update options" />
</form>
</p>
<div id="qem-widget">
<form method="post" id="qem_download_form" action="">';
    $content = qem_build_registration_table($register, $message, $check, '', $event);
    if ($content) {
        $dashboard .= '<h2>' . $title . ' | ' . $date . '</h2>';
        $dashboard .= '<p>Event ID: ' . $event . '</p>';
        $dashboard .= $content;
        $dashboard .= '<input type="hidden" name="qem_download_form" value = "' . $event . '" />
    <input type="hidden" name="qem_download_title" value = "' . $title . '" />
    <input type="submit" name="qem_download_csv" class="button-primary" value="Export to CSV" />
    <input type="submit" name="qem_emaillist" class="button-primary" value="Email List" />
    <input type="submit" name="qem_reset_message" class="button-secondary" value="Delete All Registrants" onclick="return window.confirm( \'Are you sure you want to delete all the registrants for ' . $title . '?\' );"/>
    <input type="submit" name="qem_delete_selected" class="button-secondary" value="Delete Selected" onclick="return window.confirm( \'Are you sure you want to delete the selected registrants?\' );"/>
    </form>';
    } else {
        $dashboard .= $noregistration;
    }
    $dashboard .= '</div></div>';
    echo $dashboard;
}