示例#1
0
/**
 * Perform an availability lookup and return the results to the current page
 *
 * @param	str		$date		Required: The date to check
 *
 * @return
 */
function mdjm_availability_by_ajax()
{
    global $mdjm_settings;
    $date = $_POST['check_date'];
    $avail_text = !empty($_POST['avail_text']) ? $_POST['avail_text'] : $mdjm_settings['availability']['availability_check_pass_text'];
    $unavail_text = !empty($_POST['unavail_text']) ? $_POST['unavail_text'] : $mdjm_settings['availability']['availability_check_fail_text'];
    $search = array('{EVENT_DATE}', '{EVENT_DATE_SHORT}');
    $replace = array(date('l, jS F Y', strtotime($date)), date(MDJM_SHORTDATE_FORMAT, strtotime($date)));
    $avail = dj_available('', '', $date);
    if (isset($avail) && !empty($avail['available'])) {
        $result['result'] = 'available';
        $result['message'] = $GLOBALS['mdjm']->filter_content('', '', str_replace($search, $replace, $avail_text));
    } else {
        $result['result'] = 'unavailable';
        $result['message'] = $GLOBALS['mdjm']->filter_content('', '', str_replace($search, $replace, $unavail_text));
    }
    echo json_encode($result);
    die;
}
    /**
     * Front-end display of widget.
     *
     * @see WP_Widget::widget()
     *
     * @param array $args     Widget arguments.
     * @param array $instance Saved values from database.
     */
    public function widget($args, $instance)
    {
        global $mdjm_settings, $mdjm;
        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'], true) . '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'] ) ...
        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'])), date(MDJM_SHORTDATE_FORMAT, strtotime($_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']);
                    }
                }
            }
        }
        $widget_template = mdjm_get_template_part('availability', 'widget', false);
        include_once $widget_template;
        echo $args['after_widget'];
    }
示例#3
0
    /**
     * 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'];
    }
 /**
  * Execute the availability check
  *
  * @params
  *
  * @return
  */
 public static function check_availability()
 {
     global $mdjm, $mdjm_settings;
     if (!isset($_POST['mdjm_avail_submit']) || !isset($_POST['check_date'])) {
         return;
     }
     self::$dj_avail = dj_available('', '', $_POST['check_date']);
     if (isset(self::$dj_avail)) {
         // Available & redirect activatated
         if (!empty(self::$dj_avail['available']) && isset($mdjm_settings['availability']['availability_check_pass_page']) && $mdjm_settings['availability']['availability_check_pass_page'] != 'text') {
             wp_redirect(mdjm_get_formatted_url($mdjm_settings['availability']['availability_check_pass_page']) . 'mdjm_avail=1&mdjm_avail_date=' . $_POST['check_date']);
             exit;
         } else {
             if (isset($mdjm_settings['availability']['availability_check_fail_page']) && $mdjm_settings['availability']['availability_check_fail_page'] != 'text') {
                 wp_redirect(mdjm_get_formatted_url($mdjm_settings['availability']['availability_check_fail_page']));
                 exit;
             }
         }
     }
 }