Your IP : 216.73.216.95


Current Path : /var/www/html/anwc/wp-content/themes/khore/event-framework/components/metaboxes/
Upload File :
Current File : /var/www/html/anwc/wp-content/themes/khore/event-framework/components/metaboxes/session.php

<?php
add_action('add_meta_boxes', 'ef_session_metabox');

function ef_session_metabox() {
    global $ef_speaker_label_plural;

    add_meta_box('metabox-session', __('Session Details', 'dxef'), 'ef_metabox_session', 'session', 'normal', 'high');
    add_meta_box('metabox-session-speakers', $ef_speaker_label_plural, 'ef_metabox_session_speakers', 'session', 'normal', 'high');
}

function ef_metabox_session($post) {
    $session_date = get_post_meta($post->ID, 'session_date', true);
    $session_time = get_post_meta($post->ID, 'session_time', true);
    $session_end_time = get_post_meta($post->ID, 'session_end_time', true);
    $session_registration_code = get_post_meta($post->ID, 'session_registration_code', true);
    $session_registration_title = get_post_meta($post->ID, 'session_registration_title', true);
    $session_registration_text = get_post_meta($post->ID, 'session_registration_text', true);
    ?>
    <script type="text/javascript">
        jQuery(document).ready(function () {
            jQuery('#session_date_str').datepicker({
                changeMonth: true,
                changeYear: true,
                dateFormat: 'mm/dd/yy',
                altFormat: 'yy-mm-dd',
                altField: '#session_date'
            });
        });
    </script>  
    <p>
        <label for="session_date"><?php _e('Date', 'dxef'); ?></label>
        <input type="text" id="session_date_str" name="session_date" value="<?php echo!empty($session_date) ? date('m/d/Y', $session_date) : ''; ?>" />
    </p>   
    <p>
        <label for="session_time"><?php _e('Start Time', 'dxef'); ?></label>
        <input type="text" id="session_time" name="session_time" value="<?php echo $session_time; ?>" />
        <span><?php _e('Format hh:mm', 'dxef'); ?></span>
    <p>
        <label for="session_end_time"><?php _e('End Time', 'dxef'); ?></label>
        <input type="text" id="session_end_time" name="session_end_time" value="<?php echo $session_end_time; ?>" />
        <span><?php _e('Format hh:mm', 'dxef'); ?></span>
    </p>
    <p class="update-nag" style="margin-top: 0;">
        <?php _e('Please enter the time in 24 hours and four digits format. 9am should be inputted as 09:00 <strong>not</strong> as 9:00 - notice the lack of a zero.', 'dxef'); ?>
    </p>
    <p>
        <label for="session_registration_code"><?php _e('Registration Embed Code:', 'dxef'); ?></label><br/>
        <textarea id="session_registration_code" name="session_registration_code" cols="50" rows="5"><?php echo $session_registration_code; ?></textarea>
    </p>
    <p>
        <label for="session_registration_title"><?php _e('Registration Title:', 'dxef'); ?></label><br/>
        <input type="text" id="session_registration_title" name="session_registration_title" value="<?php echo $session_registration_title; ?>" />
    </p>
    <p>
        <label for="session_registration_text"><?php _e('Registration Text:', 'dxef'); ?></label><br/>
        <textarea id="session_registration_text" name="session_registration_text" cols="50" rows="5"><?php echo $session_registration_text; ?></textarea>
    </p>
    <?php
}

function ef_metabox_session_speakers($post) {
    global $ef_speaker_label_plural;

    $speakers = get_posts(array(
        'post_type' => 'speaker',
        'post_status' => 'publish',
        'suppress_filters' => false,
        'posts_per_page' => -1,
        'orderby' => 'title',
        'order' => 'ASC'
    ));

    $session_speakers_list = get_post_meta($post->ID, 'session_speakers_list', true);

    $meta_query = '';
    if (empty($session_speakers_list)) {
        $meta_query = array('key' => 'session_speakers_list');
    }

    $selected_speakers_query = new WP_Query(array(
        'post_type' => 'speaker',
        'post__in' => $session_speakers_list,
        'meta_query' => array($meta_query),
        'posts_per_page' => -1
    ));

    $ignored_speakers_query = new WP_Query(array(
        'post_type' => 'speaker',
        'post_status' => 'publish',
        'post__not_in' => $session_speakers_list,
        'orderby' => 'title',
        'order' => 'ASC',
        'posts_per_page' => -1
    ));
    ?>

    <script>
        jQuery(function () {
            jQuery("#selected_speakers, #ignored_speakers").sortable({
                connectWith: ".sortable1",
                update: function (event, ui) {
                    jQuery('#session_speakers_list').val(jQuery("#selected_speakers").sortable('toArray', {
                        attribute: "data-id"
                    }));
                }
            }).disableSelection();
        });
    </script>

    <div class="sortable-container">
        <p><?php echo sprintf(__('Select and order %s to show in this section', 'dxef'), $ef_speaker_label_plural); ?></p>
        <ul id="selected_speakers" class="sortable destination sortable1">
            <?php
            if (!empty($session_speakers_list[0])) {
                foreach ($session_speakers_list as $key => $speaker) {
                    ?>
                    <li class="ui-state-default" data-id="<?php echo $speaker; ?>"><?php echo get_the_title($speaker); ?></li>
                    <?php
                }
            }
            ?>
        </ul>

        <ul id="ignored_speakers" class="sortable source sortable1">
            <?php
            while ($ignored_speakers_query->have_posts()) :
                $ignored_speakers_query->the_post();
                ?>
                <li class="ui-state-default" data-id="<?php the_ID(); ?>"><?php the_title(); ?></li>
                <?php
            endwhile;
            wp_reset_query();
            wp_reset_postdata();
            ?>
        </ul>
        <input type="hidden" id="session_speakers_list" name="session_speakers_list[]" value="<?php
               if (!empty($session_speakers_list)) {
                   echo implode(',', $session_speakers_list);
               }
               ?>" />
    </div>
    <?php
}

add_action('save_post', 'ef_session_save_post');

function ef_session_save_post($id) {
    if (isset($_POST['post_type']) && $_POST['post_type'] === 'session') {

        if (isset($_POST['session_date']))
            update_post_meta($id, 'session_date', strtotime($_POST['session_date']));

        if (isset($_POST['session_time']))
            update_post_meta($id, 'session_time', $_POST['session_time']);

        if (isset($_POST['session_end_time']))
            update_post_meta($id, 'session_end_time', $_POST['session_end_time']);

        if (isset($_POST['session_registration_code']))
            update_post_meta($id, 'session_registration_code', $_POST['session_registration_code']);
        else
            delete_post_meta($id, 'session_registration_code');

        if (isset($_POST['session_registration_title']))
            update_post_meta($id, 'session_registration_title', $_POST['session_registration_title']);
        else
            delete_post_meta($id, 'session_registration_title');

        if (isset($_POST['session_registration_text']))
            update_post_meta($id, 'session_registration_text', $_POST['session_registration_text']);
        else
            delete_post_meta($id, 'session_registration_text');

        // AJAX Speakers Order
        if (isset($_POST['session_speakers_list'])) {
            $session_speakers = $_POST['session_speakers_list'];
            if (!empty($session_speakers[0])) {
                $session_speakers = explode(',', $session_speakers[0]);
                update_post_meta($id, 'session_speakers_list', $session_speakers);
            } else {
                delete_post_meta($id, 'session_speakers_list');
            }
        }
    }
}