/** * Insert the datepicker jQuery code * * @since: 1.1.3 * @called: * @params $args =>array * [0] = class name * [1] = alternative field name (hidden) * [2] = maximum # days from today which can be selected * [3] = minimum # days past today which can be selected * * @defaults [0] = mdjm_date * [1] = _mdjm_event_date * [2] none * * @since 1.3 * @remove 1.5 * @replacement mdjm_insert_datepicker */ function mdjm_jquery_datepicker_script($args = '') { _deprecated_function(__FUNCTION__, '1.3', 'mdjm_insert_datepicker()'); $class = !empty($args[0]) ? $args[0] : 'mdjm_date'; $altfield = !empty($args[1]) ? $args[1] : '_mdjm_event_date'; $maxdate = !empty($args[2]) ? $args[2] : ''; $mindate = !empty($args[3]) ? $args[3] : ''; return mdjm_insert_datepicker(array('class' => $class, 'altfield' => $altfield, 'mindate' => $mindate, 'maxdate' => $maxdate)); }
/** *Insert the datepicker. * * @since 1.3 * @param * @return void */ public function datepicker() { mdjm_insert_datepicker(array('class' => 'mdjm_datepicker_widget', 'altfield' => 'mdjm_enquiry_date_widget', 'mindate' => 'today')); }
/** * Renders the 'Export' tab on the Reports Page * * @since 1.4 * @return void */ function mdjm_reports_tab_export() { if (!mdjm_employee_can('run_reports')) { wp_die(__('You do not have permission to export reports', 'mobile-dj-manager'), __('Error', 'mobile-dj-manager'), array('response' => 403)); } $label_single = mdjm_get_label_singular(); $label_plural = mdjm_get_label_plural(); ?> <div id="mdjm-dashboard-widgets-wrap"> <div class="metabox-holder"> <div id="post-body"> <div id="post-body-content"> <?php do_action('mdjm_reports_tab_export_content_top'); ?> <div class="postbox mdjm-export-events-earnings"> <h3><span><?php _e('Export Transaction History', 'mobile-dj-manager'); ?> </span></h3> <div class="inside"> <p><?php _e('Download a CSV of all transactions recorded.'); ?> </p> <form id="mdjm-export-txns" class="mdjm-export-form mdjm-import-export-form" method="post"> <?php mdjm_insert_datepicker(array('id' => 'mdjm-txn-export-start', 'altfield' => 'txn_start')); ?> <?php echo MDJM()->html->date_field(array('id' => 'mdjm-txn-export-start', 'name' => 'display_start_date', 'placeholder' => __('Select Start Date', 'mobile-dj-manager'))); ?> <?php echo MDJM()->html->hidden(array('name' => 'txn_start')); ?> <?php mdjm_insert_datepicker(array('id' => 'mdjm-txn-export-end', 'altfield' => 'txn_end')); ?> <?php echo MDJM()->html->date_field(array('id' => 'mdjm-txn-export-end', 'name' => 'display_end_date', 'placeholder' => __('Select End Date', 'mobile-dj-manager'))); ?> <?php echo MDJM()->html->hidden(array('name' => 'txn_end')); ?> <select name="txn_status"> <option value=""><?php _e('All Statuses', 'mobile-dj-manager'); ?> </option> <option value="Completed"><?php _e('Completed', 'mobile-dj-manager'); ?> </option> <option value="Pending"><?php _e('Pending', 'mobile-dj-manager'); ?> </option> <option value="Cancelled"><?php _e('Cancelled', 'mobile-dj-manager'); ?> </option> </select> <?php wp_nonce_field('mdjm_ajax_export', 'mdjm_ajax_export'); ?> <input type="hidden" name="mdjm-export-class" value="MDJM_Batch_Export_Txns"/> <span> <input type="submit" value="<?php _e('Generate CSV', 'mobile-dj-manager'); ?> " class="button-secondary"/> <span class="spinner"></span> </span> </form> </div><!-- .inside --> </div><!-- .postbox --> <div class="postbox mdjm-export-events"> <h3><span><?php printf(__('Export %s', 'mobile-dj-manager'), $label_plural); ?> </span></h3> <div class="inside"> <p><?php printf(__('Download a CSV of %s data.'), $label_plural); ?> </p> <form id="mdjm-export-events" class="mdjm-export-form mdjm-import-export-form" method="post"> <?php mdjm_insert_datepicker(array('id' => 'mdjm-event-export-start', 'altfield' => 'event_start')); ?> <?php echo MDJM()->html->date_field(array('id' => 'mdjm-event-export-start', 'name' => 'display_start_date', 'placeholder' => __('Select Start Date', 'mobile-dj-manager'))); ?> <?php echo MDJM()->html->hidden(array('name' => 'event_start')); ?> <?php mdjm_insert_datepicker(array('id' => 'mdjm-event-export-end', 'altfield' => 'event_end')); ?> <?php echo MDJM()->html->date_field(array('id' => 'mdjm-event-export-end', 'name' => 'display_end_date', 'placeholder' => __('Select End Date', 'mobile-dj-manager'))); ?> <?php echo MDJM()->html->hidden(array('name' => 'event_end')); ?> <select name="event_status"> <option value="any"><?php _e('All Statuses', 'mobile-dj-manager'); ?> </option> <?php foreach (mdjm_all_event_status() as $status => $label) { ?> <option value="<?php echo $status; ?> "><?php echo $label; ?> </option> <?php } ?> </select> <?php wp_nonce_field('mdjm_ajax_export', 'mdjm_ajax_export'); ?> <input type="hidden" name="mdjm-export-class" value="MDJM_Batch_Export_Events"/> <span> <input type="submit" value="<?php _e('Generate CSV', 'mobile-dj-manager'); ?> " class="button-secondary"/> <span class="spinner"></span> </span> </form> </div><!-- .inside --> </div><!-- .postbox --> <div class="postbox mdjm-export-clients"> <h3><span><?php _e('Export Clients', 'mobile-dj-manager'); ?> </span></h3> <div class="inside"> <p><?php _e('Download a CSV of clients.', 'mobile-dj-manager'); ?> </p> <form id="mdjm-export-clients" class="mdjm-export-form mdjm-import-export-form" method="post"> <?php wp_nonce_field('mdjm_ajax_export', 'mdjm_ajax_export'); ?> <input type="hidden" name="mdjm-export-class" value="MDJM_Batch_Export_Clients"/> <input type="submit" value="<?php _e('Generate CSV', 'mobile-dj-manager'); ?> " class="button-secondary"/> </form> </div><!-- .inside --> </div><!-- .postbox --> <?php if (mdjm_is_employer()) { ?> <div class="postbox mdjm-export-employees"> <h3><span><?php _e('Export Employees', 'mobile-dj-manager'); ?> </span></h3> <div class="inside"> <p><?php _e('Download a CSV of employees.', 'mobile-dj-manager'); ?> </p> <form id="mdjm-export-employees" class="mdjm-export-form mdjm-import-export-form" method="post"> <?php wp_nonce_field('mdjm_ajax_export', 'mdjm_ajax_export'); ?> <input type="hidden" name="mdjm-export-class" value="MDJM_Batch_Export_Employees"/> <input type="submit" value="<?php _e('Generate CSV', 'mobile-dj-manager'); ?> " class="button-secondary"/> </form> </div><!-- .inside --> </div><!-- .postbox --> <?php } ?> </div><!-- .post-body-content --> </div><!-- .post-body --> </div><!-- .metabox-holder --> </div><!-- #mdjm-dashboard-widgets-wrap --> <?php }
function f_mdjm_dash_availability() { global $mdjm_settings; /* Enqueue the jQuery Datepicker Scripts */ wp_enqueue_script('jquery-ui-datepicker'); wp_enqueue_style('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css'); mdjm_insert_datepicker(array('class' => 'check_custom_date', 'altfield' => 'check_date')); ?> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <?php /* Display Availability Overview */ ?> <?php get_availability_activity(0, 0); ?> <?php /* Availability Check */ ?> <form name="availability-check" id="availability-check" method="post" action="<?php mdjm_get_admin_page('availability', 'echo'); ?> "> <?php if (!current_user_can('administrator')) { ?> <input type="hidden" name="check_employee" id="check_employee" value="<?php echo get_current_user_id(); ?> " /><?php } else { ?> <input type="hidden" name="check_employee" id="check_employee" value="all" /><?php } ?> <tr> <td colspan="2"> </td> </tr> <tr> <td colspan="2"><input type="text" name="show_check_date" id="show_check_date" class="check_custom_date" required="required" style="font-size:12px" /> <input type="hidden" name="check_date" id="check_date" /> <?php submit_button('Check Date', 'primary small', 'submit', false, ''); ?> </td> </tr> </form> </table> <?php }
/** * Output the event transaction list table * * @since 1.3.7 * @global obj $mdjm_event MDJM_Event class object * @global bool $mdjm_event_update True if this event is being updated, false if new. * @param int $event_id The event ID. * @return str */ function mdjm_event_metabox_txn_add_new_row($event_id) { global $mdjm_event, $mdjm_event_update; mdjm_insert_datepicker(array('id' => 'mdjm_txn_display_date', 'altfield' => 'mdjm_txn_date', 'maxdate' => 'today')); ?> <div id="mdjm-event-add-txn-table"> <table id="mdjm_event_add_txn_table" class="widefat mdjm_event_add_txn_table mdjm_form_fields"> <thead> <tr> <th colspan="3"><?php _e('Add Transaction', 'mobile-dj-manager'); ?> <a id="toggle_add_txn_fields" class="mdjm-small mdjm-fake"><?php _e('show form', 'mobile-dj-manager'); ?> </a></th> </tr> </thead> <tbody class="mdjm-hidden"> <tr> <td><label for="mdjm_txn_amount"><?php _e('Amount:', 'mobile-dj-manager'); ?> </label><br /> <?php echo mdjm_currency_symbol() . MDJM()->html->text(array('name' => 'mdjm_txn_amount', 'class' => 'mdjm-input-currency', 'placeholder' => mdjm_sanitize_amount('10'))); ?> </td> <td><label for="mdjm_txn_display_date"><?php _e('Date:', 'mobile-dj-manager'); ?> </label><br /> <?php echo MDJM()->html->text(array('name' => 'mdjm_txn_display_date', 'class' => '')) . MDJM()->html->hidden(array('name' => 'mdjm_txn_date')); ?> </td> <td><label for="mdjm_txn_amount"><?php _e('Direction:', 'mobile-dj-manager'); ?> </label><br /> <?php echo MDJM()->html->select(array('name' => 'mdjm_txn_direction', 'options' => array('In' => __('Incoming', 'mobile-dj-manager'), 'Out' => __('Outgoing', 'mobile-dj-manager')), 'show_option_all' => false, 'show_option_none' => false)); ?> </td> </tr> <tr> <td><span id="mdjm_txn_from_container"><label for="mdjm_txn_from"><?php _e('From:', 'mobile-dj-manager'); ?> </label><br /> <?php echo MDJM()->html->text(array('name' => 'mdjm_txn_from', 'class' => '', 'placeholder' => __('Leave empty if client', 'mobile-dj-manager'))); ?> </span> <span id="mdjm_txn_to_container" class="mdjm-hidden"><label for="mdjm_txn_to"><?php _e('To:', 'mobile-dj-manager'); ?> </label><br /> <?php echo MDJM()->html->text(array('name' => 'mdjm_txn_to', 'class' => '', 'placeholder' => __('Leave empty if client', 'mobile-dj-manager'))); ?> </span></td> <td><label for="mdjm_txn_for"><?php _e('For:', 'mobile-dj-manager'); ?> </label><br /> <?php echo MDJM()->html->txn_type_dropdown(); ?> </td> <td><label for="mdjm_txn_src"><?php _e('Paid via:', 'mobile-dj-manager'); ?> </label><br /> <?php echo MDJM()->html->select(array('name' => 'mdjm_txn_src', 'options' => mdjm_get_txn_source(), 'selected' => mdjm_get_option('default_type', 'Cash'), 'show_option_all' => false, 'show_option_none' => false)); ?> </td> </tr> <?php if (mdjm_get_option('manual_payment_cfm_template')) { ?> <tr id="mdjm-txn-email"> <td colspan="3"><?php echo MDJM()->html->checkbox(array('name' => 'mdjm_manual_txn_email', 'current' => mdjm_get_option('manual_payment_cfm_template') ? true : false, 'class' => 'mdjm-checkbox')); ?> <?php _e('Send manual payment confirmation email?', 'mobile-dj-manager'); ?> </td> </tr> <?php } ?> </tbody> </table> </div> <p id="save-event-txn" class="mdjm-hidden"><a id="save_transaction" class="button button-primary button-small"><?php _e('Add Transaction', 'mobile-dj-manager'); ?> </a></p> <?php }
function mdjm_dashboard() { global $mdjm, $my_mdjm, $current_user; if (!class_exists('MDJM_Dashboard')) { require_once MDJM_PLUGIN_DIR . '/includes/admin/mdjm-dashboard.php'; $mdjm_dash = new MDJM_Dashboard(); } wp_enqueue_script('youtube-subscribe'); ?> <?php mdjm_insert_datepicker(array('class' => 'check_custom_date', 'altfield' => 'check_date', 'mindate' => 'today')); ?> <div class="wrap"> <h1>MDJM Event Management - <?php echo $current_user->display_name; ?> (<?php if (!current_user_can('manage_options')) { echo 'DJ'; } else { echo 'Admin'; } ?> )</h1> <hr /> <h2> <?php //$dj_event_count = MDJM()->events->count_events_by_status( 'dj', get_current_user_id() ); ?> </h2> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="widefat"> <tr> <td width="60%"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="widefat"> <tr> <td colspan="2" class="alternate"><strong><?php printf(__('Monthly %s Overview for %s', 'mobile-dj-manager'), mdjm_get_option('artist'), date('F Y')); ?> </strong></td> </tr> <tr> <td width="30%"><?php _e('Active Bookings', 'mobile-dj-manager'); ?> :</td> <td width="70%"><?php echo mdjm_count_employee_events('', array('post_status' => mdjm_active_event_statuses(), 'date' => array(date('Y-m-01'), date('Y-m-t')), 'date_compare' => 'BETWEEN')); ?> </td> </tr> <?php if (mdjm_employee_can('read_events')) { ?> <tr> <td><a href="<?php echo mdjm_get_admin_page('enquiries') . '&mdjm_filter_type&mdjm_filter_date=' . date('Ym'); ?> ">Outstanding Enquiries:</a></td> <td><?php echo $dj_event_count['enquiry_month'] + $dj_event_count['unattended_month'] . (!empty($dj_event_count['unattended_month']) && $dj_event_count['unattended_month'] > 0 ? ' (<a href="' . mdjm_get_admin_page('unattended') . '&mdjm_filter_date=' . date('Ym') . '">' . $dj_event_count['unattended_month'] . ' Unattended)</a>' : ''); ?> </td> </tr> <tr> <td><a href="<?php echo mdjm_get_admin_page('events') . '&post_status=mdjm-lost&mdjm_filter_date=' . date('Ym') . '&mdjm_filter_type'; ?> ">Lost Enquiries:</a></td> <td><?php echo $dj_event_count['lost_month']; ?> </td> </tr> <?php } ?> <tr> <td><a href="<?php echo mdjm_get_admin_page('events') . '&post_status=mdjm-completed&mdjm_filter_date=' . date('Ym') . '&mdjm_filter_type'; ?> ">Completed Bookings:</a></td> <td><?php echo $dj_event_count['completed_month']; ?> </td> </tr> <?php if (mdjm_employee_can('manage_events')) { ?> <tr> <td>Potential Earnings: </td> <td><?php echo $mdjm_dash->period_earnings('month', $current_user->ID, false); ?> </td> </tr> <?php } ?> <tr> <td>Earnings so Far:</td> <td><?php echo $mdjm_dash->period_earnings('month', $current_user->ID, true); ?> </td> </tr> <tr> <td colspan="2" class="alternate"><strong>Annual DJ Overview for <?php echo date('Y'); ?> </strong></td> </tr> <?php if (mdjm_employee_can('manage_events')) { ?> <tr> <td><a href="<?php echo mdjm_get_admin_page('enquiries'); ?> ">Outstanding Enquiries:</a></td> <td><?php echo $dj_event_count['enquiry_year'] + $dj_event_count['unattended_year'] . (!empty($dj_event_count['unattended_year']) && $dj_event_count['unattended_year'] > 0 ? ' (<a href="' . mdjm_get_admin_page('unattended') . '&mdjm_filter_date=' . date('Ym') . '">' . $dj_event_count['unattended_year'] . ' Unattended)</a>' : ''); ?> </td> </tr> <tr> <td>Lost Enquiries:</td> <td><?php echo $dj_event_count['lost_year']; ?> </td> </tr> <?php } ?> <tr> <td>Completed Bookings:</td> <td><?php echo $dj_event_count['completed_year']; ?> </td> </tr> <?php if (mdjm_employee_can('manage_events')) { ?> <tr> <td>Potential Earnings:</td> <td><?php echo $mdjm_dash->period_earnings('year', $current_user->ID, false); ?> </td> </tr> <?php } ?> <tr> <td>Earnings so Far:</td> <td><?php echo $mdjm_dash->period_earnings('year', $current_user->ID, true); ?> </td> </tr> </table> </td> <td width="40%" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="widefat"> <tr> <td colspan="2" class="alternate"><strong><?php echo date('l jS F Y'); ?> </strong></td> </tr> <tr> <td width="35%">Your Status:</td> <?php $next_event = MDJM()->events->next_event($current_user->ID, 'dj'); if (!empty($next_event)) { $eventinfo = MDJM()->events->event_detail($next_event[0]->ID); } ?> <td width="65%"> <?php echo isset($eventinfo) && date('Y-m-d', $eventinfo['date']) == date('Y-m-d') ? '<a href="' . get_edit_post_link($next_event[0]->ID) . '">Booked from ' . $eventinfo['start'] . '</a>' : 'Available'; ?> </td> </tr> <?php if (current_user_can('administrator') && MDJM_MULTI == true) { $bookings_today = MDJM()->events->employee_bookings(); ?> <tr> <td>Employee Bookings:</td> <?php if (empty($bookings_today)) { ?> <td>None</td> <?php } else { echo '<td>'; $i = 1; foreach ($bookings_today as $event) { $eventinfo = MDJM()->events->event_detail($event->ID); echo '<a href="' . get_edit_post_link($event->ID) . '">' . $eventinfo['dj']->display_name . ' from ' . $eventinfo['start'] . '</a>' . ($i < count($bookings_today) ? '<br />' : ''); $i++; } echo '</td>'; } ?> </tr> <?php } ?> <form name="availability-check" id="availability-check" method="post" action="<?php echo mdjm_get_admin_page('availability'); ?> "> <?php if (!current_user_can('administrator')) { ?> <input type="hidden" name="check_employee" id="check_employee" value="<?php echo get_current_user_id(); ?> " /><?php } else { ?> <input type="hidden" name="check_employee" id="check_employee" value="all" /><?php } ?> <tr> <td><label for="show_check_date">Availability Check:</label></th> <td><input type="text" name="show_check_date" id="show_check_date" class="check_custom_date" required="required" /> <input type="hidden" name="check_date" id="check_date" /> <?php submit_button('Check Date', 'primary small', 'submit', false, ''); ?> </td> </tr> </form> <tr> <td colspan="2"><p><a href="http://twitter.com/mobiledjmanager" class="twitter-follow-button" data-show-count="false">Follow @mobiledjmanager</a> <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script></p> <p><div class="g-ytsubscribe" data-channelid="UCaD6icd6OZ8haoTBc5YjJrw" data-layout="default" data-count="hidden"></div></p></td> </tr> <tr class="alternate"> <td colspan="2"><strong>Your 7 Day Schedule</strong></td> </tr> <tr> <td colspan="2"><?php get_availability_activity(0, 0); ?> </td> </tr> </table></td> </tr> </table> <?php if (current_user_can('administrator') && MDJM_MULTI == true) { $emp_event_count = MDJM()->events->count_events_by_status(); ?> <hr /> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="widefat"> <tr> <td width="60%"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="widefat"> <tr> <td colspan="2" class="alternate"><strong>Monthly Employer Overview for <?php echo date('F Y'); ?> </strong></td> </tr> <tr> <td width="30%">Active Bookings:</td> <td width="70%"><?php echo $emp_event_count['active_month']; ?> </td> </tr> <tr> <td><a href="<?php echo mdjm_get_admin_page('enquiries') . '&mdjm_filter_type&mdjm_filter_date=' . date('Ym'); ?> ">Outstanding Enquiries:</a></td> <td><?php echo $emp_event_count['enquiry_month'] + $emp_event_count['unattended_month'] . (!empty($emp_event_count['unattended_month']) && $emp_event_count['unattended_month'] > 0 ? ' (<a href="' . mdjm_get_admin_page('unattended') . '&mdjm_filter_date=' . date('Ym') . '">' . $emp_event_count['unattended_month'] . ' Unattended)</a>' : ''); ?> </td> </tr> <tr> <td>Lost Enquiries:</td> <td><?php echo $emp_event_count['lost_month']; ?> </td> </tr> <tr> <td>Completed Bookings:</td> <td><?php echo $emp_event_count['completed_month']; ?> </td> </tr> <tr> <td>Potential Earnings:</td> <td><?php echo $mdjm_dash->period_earnings('month', '', false); ?> </td> </tr> <tr> <td>Earnings so Far:</td> <td><?php echo $mdjm_dash->period_earnings('month', '', true); ?> </td> </tr> <tr> <td colspan="2" class="alternate"><strong>Annual Employer Overview for <?php echo date('Y'); ?> </strong></td> </tr> <tr> <td><a href="<?php echo mdjm_get_admin_page('enquiries') . '&mdjm_filter_type&mdjm_filter_date=' . date('Ym'); ?> ">Outstanding Enquiries:</a></td> <td><?php echo $emp_event_count['enquiry_year'] + $emp_event_count['unattended_year'] . (!empty($emp_event_count['unattended_year']) && $emp_event_count['unattended_year'] > 0 ? ' (<a href="' . mdjm_get_admin_page('unattended') . '&mdjm_filter_date=' . date('Ym') . '">' . $emp_event_count['unattended_year'] . ' Unattended)</a>' : ''); ?> </tr> <tr> <td>Lost Enquiries:</td> <td><?php echo $emp_event_count['lost_year']; ?> </td> </tr> <tr> <td>Completed Bookings:</td> <td><?php echo $emp_event_count['completed_year']; ?> </td> </tr> <tr> <td>Potential Earnings:</td> <td><?php echo $mdjm_dash->period_earnings('year', '', false); ?> </td> </tr> <tr> <td>Earnings so Far:</td> <td><?php echo $mdjm_dash->period_earnings('year', '', true); ?> </td> </tr> </table></td> <td width="40%" valign="top"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="widefat"> <tr> <td width="100%" class="alternate"><strong>Latest News from <a href="<?php mdjm_get_admin_page('mydjplanner'); ?> ">My DJ Planner</a></strong></td> </tr> <tr> <td><?php wp_widget_rss_output('http://www.mydjplanner.co.uk/category/news/feed/rss2/', $args = array('show_author' => 0, 'show_date' => 1, 'show_summary' => 1, 'items' => 3)); ?> </td> </tr> <tr> <td width="100%" class="alternate"><strong>Latest Support Topics</strong></td> </tr> <tr> <td><?php wp_widget_rss_output('http://www.mydjplanner.co.uk/forums/feed/?post_type=topic', $args = array('show_author' => 0, 'show_date' => 0, 'show_summary' => 0, 'items' => 3)); ?> </td> </tr> </table> </td> </tr> </table> <?php } ?> </div> <?php }
/** * Front-end display of widget. * * @see WP_Widget::widget() * * @param arr $args Widget arguments. * @param arr $instance Saved values from database. */ public function widget($args, $instance) { add_action('wp_head', array(&$this, 'datepicker')); if (!empty($instance['ajax'])) { self::ajax($args, $instance); } echo $args['before_widget']; if (!empty($instance['title'])) { echo $args['before_title'] . apply_filters('widget_title', $instance['title']) . $args['after_title']; } /* Check for form submission & process */ if (isset($_POST['mdjm_widget_avail_submit']) && $_POST['mdjm_widget_avail_submit'] == $instance['submit_text']) { $dj_avail = dj_available('', $_POST['widget_check_date']); if (isset($dj_avail)) { if (!empty($dj_avail['available'])) { if (isset($instance['available_action']) && $instance['available_action'] != 'text') { ?> <script type="text/javascript"> window.location = '<?php echo mdjm_get_formatted_url($instance['available_action']) . 'mdjm_avail=1&mdjm_avail_date=' . $_POST['widget_check_date']; ?> '; </script> <?php } } else { if (isset($instance['unavailable_action']) && $instance['unavailable_action'] != 'text') { ?> <script type="text/javascript"> window.location = '<?php echo mdjm_get_formatted_url($instance['unavailable_action']); ?> '; </script> <?php } } } // if( isset( $dj_avail ) ) } // if( isset( $_POST['mdjm_avail_submit'] ) ... /* We need the jQuery Calendar */ wp_enqueue_script('jquery-ui-datepicker'); wp_enqueue_style('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css'); mdjm_insert_datepicker(array('class' => 'mdjm_widget_date', 'altfield' => 'widget_check_date', 'mindate' => '1')); if (isset($instance['intro']) && !empty($instance['intro'])) { if (isset($_POST['mdjm_widget_avail_submit']) && $_POST['mdjm_widget_avail_submit'] == $instance['submit_text']) { $search = array('{EVENT_DATE}', '{EVENT_DATE_SHORT}'); $replace = array(date('l, jS F Y', strtotime($_POST['widget_check_date'])), mdjm_format_short_date($_POST['widget_check_date'])); } if (!isset($_POST['mdjm_widget_avail_submit']) || $_POST['mdjm_widget_avail_submit'] != $instance['submit_text']) { echo '<div id="widget_avail_intro">' . $instance['intro'] . '</div>'; } else { if (!empty($instance['ajax'])) { ?> <div id="widget_availability_result"></div> <?php } else { if (!empty($dj_avail['available']) && $instance['available_action'] == 'text' && !empty($instance['available_text'])) { echo str_replace($search, $replace, $instance['available_text']); } else { echo str_replace($search, $replace, $instance['unavailable_text']); } } } } ?> <form name="mdjm-widget-availability-check" id="mdjm-widget-availability-check" method="post"> <label for="widget_avail_date"><?php echo $instance['label']; ?> </label> <input type="text" name="widget_avail_date" id="widget_avail_date" class="mdjm_widget_date" style="z-index:99;" placeholder="<?php echo mdjm_format_datepicker_date(); ?> " /> <input type="hidden" name="widget_check_date" id="widget_check_date" value="" /> <p<?php echo isset($instance['submit_centre']) && $instance['submit_centre'] == 'Y' ? ' style="text-align:center"' : ''; ?> > <input type="submit" name="mdjm_widget_avail_submit" id="mdjm_widget_avail_submit" value="<?php echo $instance['submit_text']; ?> " /> <div id="widget_pleasewait" class="page-content" style="display: none;"><?php _e('Please wait...', 'mobile-dj-manager'); ?> <img src="<?php echo MDJM_PLUGIN_URL; ?> /assets/images/loading.gif" alt="<?php _e('Please wait...', 'mobile-dj-manager'); ?> " /></div> </form> <script type="text/javascript"> jQuery(document).ready(function($){ // Configure the field validator $('#mdjm-widget-availability-check').validate({ rules: { widget_avail_date: { required: true, }, }, messages: { widget_avail_date: { required: "<?php _e('Please enter a date', 'mobile-dj-manager'); ?> ", }, }, errorClass: "mdjm-form-error", validClass: "mdjm-form-valid", } ); }); </script> <?php echo $args['after_widget']; }
/** * MDJM Availability Checker Shortcode. * * Displays the MDJM Availability Checker form which allows clients to determine if you are * available on their chosen event date. * * @since 1.3 * * @return string */ function mdjm_shortcode_availability($atts) { $atts = shortcode_atts(array('label' => __('Select Date', 'mobile-dj-manager') . ':', 'label_class' => 'mdjm-label', 'field_class' => '', 'submit_text' => __('Check Availability', 'mobile-dj-manager'), 'submit_class' => '', 'please_wait_text' => __('Please wait...', 'mobile-dj-manager'), 'please_wait_class' => '', 'display' => 'horizontal'), $atts, 'mdjm-availability'); $field_id = 'mdjm-availability-datepicker'; $search = array('{label}', '{label_class}', '{field}', '{field_class}', '{submit_text}', '{submit_class}', '{please_wait_text}', '{please_wait_class}'); $replace = array($atts['label'], $atts['label_class'], $field_id, $atts['field_class'], $atts['submit_text'], $atts['submit_class'], $atts['please_wait_text'], $atts['please_wait_class']); ob_start(); mdjm_insert_datepicker(array('class' => '', 'id' => $field_id, 'altfield' => 'availability_check_date', 'mindate' => '1')); echo '<!-- ' . __('MDJM Availability Checker', 'mobile-dj-manager') . ' (' . MDJM_VERSION_NUM . ') -->'; echo '<form name="mdjm-availability-check" id="mdjm-availability-check" method="post">'; wp_nonce_field('do_availability_check', 'mdjm_nonce', true, true); mdjm_action_field('do_availability_check'); echo '<input type="hidden" name="availability_check_date" id="availability_check_date" />'; mdjm_get_template_part('availability', $atts['display'], true); echo '</form>'; $output = ob_get_clean(); $output = str_replace($search, $replace, $output); $output = mdjm_do_content_tags($output); $output .= '<!-- ' . __('MDJM Availability Checker', 'mobile-dj-manager') . ' (' . MDJM_VERSION_NUM . ') -->'; return apply_filters('mdjm_availability_form', $output); }
/** * The Availability checker form * * @params arr $args Optional: Settings passed from the shortcode * * @return */ public static function availability_form($args = '') { global $mdjm_settings; /** * Initialise the datepicker script */ ?> <?php mdjm_insert_datepicker(array('class' => 'custom_date', 'altfield' => 'check_date', 'mindate' => 'today')); ?> <?php echo '<!-- ' . __('MDJM Availability Checker', 'mobile-dj-manager') . ' (' . MDJM_VERSION_NUM . ') -->'; /** * If we are not using AJAX and a check has been performed and we're displaying text results */ if (self::$ajax == true) { ?> <div id="availability_result"></div> <?php } else { self::display_result(); } /** * Now display the availability checker form */ echo '<form name="mdjm-availability-check" id="mdjm-availability-check" method="post">' . "\r\n"; // Label echo '<label for="avail_date"'; // Label Wrap if (!empty($args['label_wrap']) && $args['label_wrap'] == 'false') { echo ' style="display: inline;"'; } // Label Class if (!empty($args['label_class']) && $args['label_class'] != 'false') { echo ' class="' . $args['label_class'] . '"'; } echo '>' . $args['label'] . ' </label>'; if (!empty($args['label_wrap']) && $args['label_wrap'] != 'false') { echo '<br />' . "\r\n"; } // Input field echo '<input type="text" name="avail_date" id="avail_date" class="custom_date" placeholder="' . mdjm_format_datepicker_date() . '"'; // Input Wrap if (!empty($args['field_wrap']) && $args['field_wrap'] == 'false') { echo ' style="display: inline;"'; } // Input Class if (!empty($args['field_class']) && $args['field_class'] != 'false') { echo ' class="' . $args['field_class'] . '"'; } echo ' readonly required />'; // Hidden field for datepicker echo '<input type="hidden" name="check_date" id="check_date" />' . "\r\n"; if (!empty($args['submit_wrap']) && $args['submit_wrap'] != 'false') { echo '<br /><br />' . "\r\n"; } // Submit field echo '<input type="submit" name="mdjm_avail_submit" id="mdjm_avail_submit" value="' . $args['submit_text'] . '"'; // Submit wrap if (!empty($args['submit_wrap']) && $args['submit_wrap'] == 'false') { echo ' style="display: inline;"'; } // Submit Class if (!empty($args['submit_class']) && $args['submit_class'] != 'false') { echo ' class="' . $args['submit_class'] . '"'; } echo '/>' . "\r\n"; // Please wait echo '<span id="pleasewait" style="display: none;" class="page-content'; // Please wait class if (!empty($args['please_wait_class']) && $args['please_wait_class'] != 'false') { echo ' ' . $args['please_wait_class']; } echo '" >'; if (!empty($args['please_wait_text'])) { echo $args['please_wait_text']; } else { echo __('Please wait...', 'mobile-dj-manager'); } echo '<img src="/wp-admin/images/loading.gif" alt="' . __('Please wait...', 'mobile-dj-manager') . '" /></span>' . "\r\n"; echo '</form>' . "\r\n"; self::validate(); echo '<!-- ' . __('MDJM Availability Checker', 'mobile-dj-manager') . ' (' . MDJM_VERSION_NUM . ') -->'; }