コード例 #1
0
function mc_list_events()
{
    global $wpdb;
    $mcdb = $wpdb;
    if (current_user_can('mc_approve_events') || current_user_can('mc_manage_events') || current_user_can('mc_add_events')) {
        $action = !empty($_POST['event_action']) ? $_POST['event_action'] : '';
        $event_id = !empty($_POST['event_id']) ? $_POST['event_id'] : '';
        if ($action == 'delete') {
            $message = mc_delete_event($event_id);
            echo $message;
        }
        if (isset($_GET['order'])) {
            $sortdir = isset($_GET['order']) && $_GET['order'] == 'ASC' ? 'ASC' : 'default';
            $sortdir = isset($_GET['order']) && $_GET['order'] == 'DESC' ? 'DESC' : $sortdir;
        } else {
            $sortdir = 'default';
        }
        $default_direction = get_option('mc_default_direction') == '' ? 'ASC' : get_option('mc_default_direction');
        $sortbydirection = $sortdir == 'default' ? $default_direction : $sortdir;
        $sortby = isset($_GET['sort']) ? $_GET['sort'] : get_option('mc_default_sort');
        if (empty($sortby)) {
            $sortbyvalue = 'event_begin';
        } else {
            switch ($sortby) {
                case 1:
                    $sortbyvalue = 'event_ID';
                    break;
                case 2:
                    $sortbyvalue = 'event_title';
                    break;
                case 3:
                    $sortbyvalue = 'event_desc';
                    break;
                case 4:
                    $sortbyvalue = "event_begin {$sortbydirection}, event_time";
                    break;
                case 5:
                    $sortbyvalue = 'event_author';
                    break;
                case 6:
                    $sortbyvalue = 'event_category';
                    break;
                case 7:
                    $sortbyvalue = 'event_label';
                    break;
                default:
                    $sortbyvalue = "event_begin {$sortbydirection}, event_time";
            }
        }
        $sorting = $sortbydirection == 'DESC' ? "&order=ASC" : '&order=DESC';
        $allow_filters = true;
        $status = isset($_GET['limit']) ? $_GET['limit'] : 'all';
        $restrict = isset($_GET['restrict']) ? $_GET['restrict'] : 'all';
        switch ($status) {
            case 'all':
                $limit = '';
                break;
            case 'reserved':
                $limit = 'WHERE event_approved <> 1';
                break;
            case 'published':
                $limit = 'WHERE event_approved = 1';
                break;
            default:
                $limit = '';
        }
        switch ($restrict) {
            case 'all':
                $filter = '';
                break;
            case 'where':
                $filter = isset($_GET['filter']) ? $_GET['filter'] : '';
                $restrict = "event_label";
                break;
            case 'author':
                $filter = isset($_GET['filter']) ? (int) $_GET['filter'] : '';
                $restrict = "event_author";
                break;
            case 'category':
                $filter = isset($_GET['filter']) ? (int) $_GET['filter'] : '';
                $restrict = "event_category";
                break;
            case 'flagged':
                $filter = isset($_GET['filter']) ? (int) $_GET['filter'] : '';
                $restrict = "event_flagged";
                break;
            default:
                $filter = '';
        }
        if (!current_user_can('mc_manage_events') && !current_user_can('mc_approve_events')) {
            $restrict = 'event_author';
            $filter = get_current_user_id();
            $allow_filters = false;
        }
        $filter = esc_sql(urldecode($filter));
        if ($restrict == "event_label") {
            $filter = "'{$filter}'";
        }
        if ($limit == '' && $filter != '') {
            $limit = "WHERE {$restrict} = {$filter}";
        } else {
            if ($limit != '' && $filter != '') {
                $limit .= "AND {$restrict} = {$filter}";
            }
        }
        if ($filter == '' || !$allow_filters) {
            $filtered = "";
        } else {
            $filtered = "<span class='dashicons dashicons-no'></span><a href='" . admin_url('admin.php?page=my-calendar-manage') . "'>" . __('Clear filters', 'my-calendar') . "</a>";
        }
        $current = empty($_GET['paged']) ? 1 : intval($_GET['paged']);
        $user = get_current_user_id();
        $screen = get_current_screen();
        $option = $screen->get_option('per_page', 'option');
        $items_per_page = get_user_meta($user, $option, true);
        if (empty($items_per_page) || $items_per_page < 1) {
            $items_per_page = $screen->get_option('per_page', 'default');
        }
        // default limits
        if ($limit == '') {
            $limit .= $restrict != 'event_flagged' ? " WHERE event_flagged = 0" : '';
        } else {
            $limit .= $restrict != 'event_flagged' ? " AND event_flagged = 0" : '';
        }
        if (isset($_POST['mcs'])) {
            $query = $_POST['mcs'];
            $limit .= mc_prepare_search_query($query);
        }
        $limit .= $restrict != 'archived' ? " AND event_status = 1" : ' AND event_status = 0';
        $events = $mcdb->get_results("SELECT SQL_CALC_FOUND_ROWS event_id FROM " . my_calendar_table() . " {$limit} ORDER BY {$sortbyvalue} {$sortbydirection} LIMIT " . ($current - 1) * $items_per_page . ", " . $items_per_page);
        $found_rows = $wpdb->get_col("SELECT FOUND_ROWS();");
        $items = $found_rows[0];
        if ((function_exists('akismet_http_post') || function_exists('bs_checker')) && $allow_filters) {
            ?>
			<ul class="links">
			<li>
				<a <?php 
            echo isset($_GET['restrict']) && $_GET['restrict'] == 'flagged' ? 'class="active-link"' : '';
            ?>
					href="<?php 
            echo admin_url('admin.php?page=my-calendar-manage&amp;restrict=flagged&amp;filter=1');
            ?>
"><?php 
            _e('Spam', 'my-calendar');
            ?>
</a>
			</li>
			</ul><?php 
        }
        ?>
		<div class='mc-search'>
			<form action="<?php 
        echo esc_url(add_query_arg($_GET, admin_url('admin.php')));
        ?>
" method="post">
				<div><input type="hidden" name="_wpnonce"
				            value="<?php 
        echo wp_create_nonce('my-calendar-nonce');
        ?>
"/>
				</div>
				<div>
					<label for="mc_search" class='screen-reader-text'><?php 
        _e('Search', 'my-calendar');
        ?>
</label>
					<input type='text' role='search' name='mcs' id='mc_search'
					       value='<?php 
        if (isset($_POST['mcs'])) {
            esc_attr_e($_POST['mcs']);
        }
        ?>
'/> <input type='submit' value='<?php 
        _e('Search Events', 'my-calendar');
        ?>
'
					                      class='button-secondary'/>
				</div>
			</form>
		</div>
		<?php 
        if (get_option('mc_event_approve') == 'true') {
            ?>
			<ul class="links">
			<li>
				<a <?php 
            echo isset($_GET['limit']) && $_GET['limit'] == 'published' ? 'class="active-link"' : '';
            ?>
					href="<?php 
            echo admin_url('admin.php?page=my-calendar-manage&amp;limit=published');
            ?>
"><?php 
            _e('Published', 'my-calendar');
            ?>
</a>
			</li>
			<li>
				<a <?php 
            echo isset($_GET['limit']) && $_GET['limit'] == 'reserved' ? 'class="active-link"' : '';
            ?>
					href="<?php 
            echo admin_url('admin.php?page=my-calendar-manage&amp;limit=reserved');
            ?>
"><?php 
            _e('Reserved', 'my-calendar');
            ?>
</a>
			</li>
			<li>
				<a <?php 
            echo isset($_GET['limit']) && $_GET['limit'] == 'all' || !isset($_GET['limit']) ? 'class="active-link"' : '';
            ?>
					href="<?php 
            echo admin_url('admin.php?page=my-calendar-manage&amp;restrict=archived');
            ?>
"><?php 
            _e('Archived', 'my-calendar');
            ?>
</a>
			</li>
			<li>
				<a <?php 
            echo isset($_GET['limit']) && $_GET['limit'] == 'all' || !isset($_GET['limit']) ? 'class="active-link"' : '';
            ?>
					href="<?php 
            echo admin_url('admin.php?page=my-calendar-manage&amp;limit=all');
            ?>
"><?php 
            _e('All', 'my-calendar');
            ?>
</a>
			</li>
			</ul><?php 
        }
        echo $filtered;
        $num_pages = ceil($items / $items_per_page);
        if ($num_pages > 1) {
            $page_links = paginate_links(array('base' => add_query_arg('paged', '%#%'), 'format' => '', 'prev_text' => __('&laquo; Previous<span class="screen-reader-text"> Events</span>', 'my-calendar'), 'next_text' => __('Next<span class="screen-reader-text"> Events</span> &raquo;', 'my-calendar'), 'total' => $num_pages, 'current' => $current, 'mid_size' => 1));
            printf("<div class='tablenav'><div class='tablenav-pages'>%s</div></div>", $page_links);
        }
        if (!empty($events)) {
            ?>
			<form action="<?php 
            echo esc_url(add_query_arg($_GET, admin_url('admin.php')));
            ?>
" method="post">
			<div><input type="hidden" name="_wpnonce" value="<?php 
            echo wp_create_nonce('my-calendar-nonce');
            ?>
"/>
			</div>
			<div class='mc-actions'>
				<input type="submit" class="button-secondary delete" name="mass_delete"
				       value="<?php 
            _e('Delete events', 'my-calendar');
            ?>
"/>
				<?php 
            if (current_user_can('mc_approve_events')) {
                ?>
					<input type="submit" class="button-secondary mc-approve" name="mass_approve"
					       value="<?php 
                _e('Approve events', 'my-calendar');
                ?>
"/>
				<?php 
            }
            ?>
				<?php 
            if (!(isset($_GET['restrict']) && $_GET['restrict'] == 'archived')) {
                ?>
					<input type="submit" class="button-secondary mc-archive" name="mass_archive"
					       value="<?php 
                _e('Archive events', 'my-calendar');
                ?>
"/>
				<?php 
            } else {
                ?>
					<input type="submit" class="button-secondary mc-archive" name="mass_undo_archive"
					       value="<?php 
                _e('Remove from archive', 'my-calendar');
                ?>
"/>				
				<?php 
            }
            ?>
			</div>

			<table class="widefat wp-list-table" id="my-calendar-admin-table">
				<thead>
				<tr>
					<th scope="col" style="width: 50px;"><input type='checkbox' class='selectall' id='mass_edit'/>
						<label for='mass_edit' class="screen-reader-text"><?php 
            _e('Check/Uncheck all', 'my-calendar');
            ?>
</label> <a
							href="<?php 
            echo admin_url("admin.php?page=my-calendar-manage&amp;sort=1{$sorting}");
            ?>
"><?php 
            _e('ID', 'my-calendar');
            ?>
</a>
					</th>
					<th scope="col"><a
							href="<?php 
            echo admin_url("admin.php?page=my-calendar-manage&amp;sort=2{$sorting}");
            ?>
"><?php 
            _e('Title', 'my-calendar');
            ?>
</a>
					</th>
					<th scope="col"><a
							href="<?php 
            echo admin_url("admin.php?page=my-calendar-manage&amp;sort=7{$sorting}");
            ?>
"><?php 
            _e('Location', 'my-calendar');
            ?>
</a>
					</th>
					<th scope="col"><a
							href="<?php 
            echo admin_url("admin.php?page=my-calendar-manage&amp;sort=4{$sorting}");
            ?>
"><?php 
            _e('Date/Time', 'my-calendar');
            ?>
</a>
					</th>
					<th scope="col"><a
							href="<?php 
            echo admin_url("admin.php?page=my-calendar-manage&amp;sort=5{$sorting}");
            ?>
"><?php 
            _e('Author', 'my-calendar');
            ?>
</a>
					</th>
					<th scope="col"><a
							href="<?php 
            echo admin_url("admin.php?page=my-calendar-manage&amp;sort=6{$sorting}");
            ?>
"><?php 
            _e('Category', 'my-calendar');
            ?>
</a>
					</th>
				</tr>
				</thead>
				<?php 
            $class = '';
            $sql = "SELECT * FROM " . my_calendar_categories_table();
            $categories = $mcdb->get_results($sql);
            foreach (array_keys($events) as $key) {
                $event =& $events[$key];
                $event = mc_get_event_core($event->event_id);
                if (!is_object($event)) {
                    continue;
                }
                $class = $class == 'alternate' ? 'even' : 'alternate';
                $pending = $event->event_approved == 0 ? 'pending' : '';
                $author = $event->event_author != 0 ? get_userdata($event->event_author) : 'Public Submitter';
                if ($event->event_flagged == 1 && (isset($_GET['restrict']) && $_GET['restrict'] == 'flagged')) {
                    $spam = 'spam';
                    $pending = '';
                    $spam_label = '<strong>' . __('Possible spam', 'my-calendar') . ':</strong> ';
                } else {
                    $spam = '';
                    $spam_label = '';
                }
                $edit_url = admin_url("admin.php?page=my-calendar&amp;mode=edit&amp;event_id={$event->event_id}");
                $copy_url = admin_url("admin.php?page=my-calendar&amp;mode=copy&amp;event_id={$event->event_id}");
                $view_url = mc_get_details_link($event);
                $group_url = admin_url("admin.php?page=my-calendar-groups&amp;mode=edit&amp;event_id={$event->event_id}&amp;group_id={$event->event_group_id}");
                $delete_url = admin_url("admin.php?page=my-calendar-manage&amp;mode=delete&amp;event_id={$event->event_id}");
                $check = mc_test_occurrence_overlap($event, true);
                $problem = $check != '' ? 'problem' : '';
                if (current_user_can('mc_manage_events') || current_user_can('mc_approve_events') || mc_can_edit_event($event->event_id)) {
                    ?>
						<tr class="<?php 
                    echo "{$class} {$spam} {$pending} {$problem}";
                    ?>
">
							<th scope="row">
								<input type="checkbox" value="<?php 
                    echo $event->event_id;
                    ?>
" name="mass_edit[]" id="mc<?php 
                    echo $event->event_id;
                    ?>
" <?php 
                    echo $event->event_flagged == 1 ? 'checked="checked"' : '';
                    ?>
 />
								<label for="mc<?php 
                    echo $event->event_id;
                    ?>
"><?php 
                    echo $event->event_id;
                    ?>
</label>
							</th>
							<td title="<?php 
                    echo esc_attr(substr(strip_tags(stripslashes($event->event_desc)), 0, 240));
                    ?>
">
								<strong><?php 
                    if (mc_can_edit_event($event->event_id)) {
                        ?>
									<a href="<?php 
                        echo $edit_url;
                        ?>
" class='edit'>
										<?php 
                    }
                    ?>
										<?php 
                    echo $spam_label;
                    echo strip_tags(stripslashes($event->event_title));
                    ?>
									<?php 
                    if (mc_can_edit_event($event->event_id)) {
                        echo "</a>";
                        if ($check != '') {
                            echo '<br /><strong class="error">' . sprintf(__('There is a problem with this event. <a href="%s">View</a>', 'my-calendar'), $edit_url) . '</strong>';
                        }
                    }
                    ?>
</strong>

								<div class='row-actions' style="visibility:visible;">
									<?php 
                    if (mc_event_published($event)) {
                        ?>
										<a href="<?php 
                        echo $view_url;
                        ?>
"
									   class='view'><?php 
                        _e('View', 'my-calendar');
                        ?>
</a> |
									<?php 
                    }
                    ?>
									<a href="<?php 
                    echo $copy_url;
                    ?>
"
									   class='copy'><?php 
                    _e('Copy', 'my-calendar');
                    ?>
</a> |
									<?php 
                    if (mc_can_edit_event($event->event_id)) {
                        ?>
										<a href="<?php 
                        echo $edit_url;
                        ?>
" class='edit'><?php 
                        _e('Edit', 'my-calendar');
                        ?>
</a> 
										<?php 
                        if (mc_event_is_grouped($event->event_group_id)) {
                            ?>
											| <a href="<?php 
                            echo $group_url;
                            ?>
" class='edit group'><?php 
                            _e('Edit Group', 'my-calendar');
                            ?>
</a>
										<?php 
                        }
                        ?>
										| <a href="<?php 
                        echo $delete_url;
                        ?>
" class="delete"><?php 
                        _e('Delete', 'my-calendar');
                        ?>
</a>
									<?php 
                    } else {
                        _e("Not editable.", 'my-calendar');
                    }
                    if (get_option('mc_event_approve') == 'true') {
                        ?>
										|
										<?php 
                        if (current_user_can('mc_approve_events')) {
                            // Added by Roland P.
                            if ($event->event_approved == '1') {
                                $mo = 'reject';
                                $te = __('Reject', 'my-calendar');
                            } else {
                                $mo = 'publish';
                                $te = __('Approve', 'my-calendar');
                            }
                            ?>
											<a href="<?php 
                            echo admin_url("admin.php?page=my-calendar-manage&amp;mode={$mo}&amp;event_id={$event->event_id}");
                            ?>
"
											   class='<?php 
                            echo $mo;
                            ?>
'><?php 
                            echo $te;
                            ?>
</a>
										<?php 
                        } else {
                            switch ($event->event_approved) {
                                case 1:
                                    _e('Approved', 'my-calendar');
                                    break;
                                case 2:
                                    _e('Rejected', 'my-calendar');
                                    break;
                                default:
                                    _e('Awaiting Approval', 'my-calendar');
                            }
                        }
                    }
                    ?>
								</div>
							</td>
							<td>
								<?php 
                    if ($event->event_label != '') {
                        ?>
<a class='mc_filter' href='<?php 
                        $elabel = urlencode($event->event_label);
                        echo admin_url("admin.php?page=my-calendar-manage&amp;filter={$elabel}&amp;restrict=where");
                        ?>
' title="<?php 
                        _e('Filter by location', 'my-calendar');
                        ?>
"><span class="screen-reader-text"><?php 
                        _e('Show only: ', 'my-calendar');
                        ?>
</span><?php 
                        echo strip_tags(stripslashes($event->event_label));
                        ?>
</a><?php 
                    }
                    ?>
							</td>
							<?php 
                    if ($event->event_endtime != "23:59:59") {
                        $eventTime = date_i18n(get_option('mc_time_format'), strtotime($event->event_time));
                    } else {
                        $eventTime = mc_notime_label($event);
                    }
                    ?>
							<td><?php 
                    $date_format = get_option('mc_date_format') == '' ? get_option('date_format') : get_option('mc_date_format');
                    $begin = date_i18n($date_format, strtotime($event->event_begin));
                    echo "{$begin}, {$eventTime}";
                    ?>
								<div class="recurs">
									<strong><?php 
                    _e('Recurs', 'my-calendar');
                    ?>
</strong>
									<?php 
                    $recurs = str_split($event->event_recur, 1);
                    $recur = $recurs[0];
                    $every = isset($recurs[1]) ? $recurs[1] : 1;
                    // Interpret the DB values into something human readable
                    switch ($recur) {
                        case 'S':
                            _e('Never', 'my-calendar');
                            break;
                        case 'D':
                            $every == 1 ? _e('Daily', 'my-calendar') : printf(__('Every %d days', 'my-calendar'), $every);
                            break;
                        case 'E':
                            $every == 1 ? _e('Weekdays', 'my-calendar') : printf(__('Every %d weekdays', 'my-calendar'), $every);
                            break;
                        case 'W':
                            $every == 1 ? _e('Weekly', 'my-calendar') : printf(__('Every %d weeks', 'my-calendar'), $every);
                            break;
                        case 'B':
                            _e('Bi-Weekly', 'my-calendar');
                            break;
                        case 'M':
                            $every == 1 ? _e('Monthly (by date)', 'my-calendar') : printf(__('Every %d months (by date)', 'my-calendar'), $every);
                            break;
                        case 'U':
                            _e('Monthly (by day)', 'my-calendar');
                            break;
                        case 'Y':
                            $every == 1 ? _e('Yearly', 'my-calendar') : printf(__('Every %d years', 'my-calendar'), $every);
                            break;
                    }
                    $eternity = _mc_increment_values($recur);
                    if ($recur == 'S') {
                    } else {
                        if ($event->event_repeats > 0) {
                            printf(__('&ndash; %d Times', 'my-calendar'), $event->event_repeats);
                        } else {
                            if ($eternity) {
                                printf(__('&ndash; %d Times', 'my-calendar'), $eternity);
                            }
                        }
                    }
                    ?>
								</div>
							</td>
							<td><a class='mc_filter' href="<?php 
                    $auth = is_object($author) ? $author->ID : 0;
                    echo admin_url("admin.php?page=my-calendar-manage&amp;filter={$auth}&amp;restrict=author");
                    ?>
"
							       title="<?php 
                    _e('Filter by author', 'my-calendar');
                    ?>
"><span
										class="screen-reader-text"><?php 
                    _e('Show only: ', 'my-calendar');
                    ?>
</span><?php 
                    echo is_object($author) ? $author->display_name : $author;
                    ?>
								</a></td>
							<?php 
                    if (!$event->event_category) {
                        // events *must* have a category
                        mc_update_event('event_category', 1, $event->event_id, '%d');
                    }
                    $color = strip_tags(mc_get_category_detail($event->event_category, 'category_color'));
                    ?>
							<td>
								<div class="category-color"
								     style="background-color:<?php 
                    echo strpos($color, '#') !== 0 ? '#' : '';
                    echo $color;
                    ?>
;">
								</div>
								<a class='mc_filter'
								   href='<?php 
                    echo admin_url("admin.php?page=my-calendar-manage&amp;filter={$event->event_category}&amp;restrict=category");
                    ?>
'
								   title="<?php 
                    _e('Filter by category', 'my-calendar');
                    ?>
"><span
										class="screen-reader-text"><?php 
                    _e('Show only: ', 'my-calendar');
                    ?>
</span><?php 
                    echo mc_kses_post(mc_get_category_detail($event->event_category, 'category_name'));
                    ?>
								</a></td>
						</tr>
					<?php 
                }
            }
            ?>
			</table>
			<p>
				<input type="submit" class="button-secondary delete" name="mass_delete"
				       value="<?php 
            _e('Delete events', 'my-calendar');
            ?>
"/>
				<?php 
            if (current_user_can('mc_approve_events')) {
                ?>
					<input type="submit" class="button-secondary mc-approve" name="mass_approve"
					       value="<?php 
                _e('Approve events', 'my-calendar');
                ?>
"/>
				<?php 
            }
            ?>
				<?php 
            if (!(isset($_GET['restrict']) && $_GET['restrict'] == 'archived')) {
                ?>
					<input type="submit" class="button-secondary mc-archive" name="mass_archive"
					       value="<?php 
                _e('Archive events', 'my-calendar');
                ?>
"/>
				<?php 
            }
            ?>
			</p>

			<p>
				<?php 
            if (!(isset($_GET['restrict']) && $_GET['restrict'] == 'archived')) {
                ?>
					<a class='mc_filter'
					   href='<?php 
                echo admin_url("admin.php?page=my-calendar-manage&amp;restrict=archived");
                ?>
'><?php 
                _e('View Archived Events', 'my-calendar');
                ?>
</a>
				<?php 
            } else {
                ?>
					<a class='mc_filter'
					   href='<?php 
                echo admin_url("admin.php?page=my-calendar-manage");
                ?>
'><?php 
                _e('Return to Manage Events', 'my-calendar');
                ?>
</a>
				<?php 
            }
            ?>
			</p>
			</form>
		<?php 
        } else {
            ?>
			<p class='mc-none'><?php 
            _e("There are no events in the database meeting your current criteria.", 'my-calendar');
            ?>
</p><?php 
        }
    }
}
コード例 #2
0
function my_event_post($action, $data, $new_event)
{
    if (!get_option('mcs_create_post') == 'true') {
        return;
    }
    // if the event save was successful.
    $options = get_option('mcs_event_post');
    switch ($options['content']) {
        case 'event':
            $content = "[my_calendar_event event='{$new_event}' template='details' list='']";
            break;
        case 'custom':
            $content = isset($_POST['mcs_custom_content']) ? $_POST['mcs_custom_content'] : '';
            break;
        default:
            $content = $data['event_desc'];
            break;
    }
    if ($options['content'] == 'custom') {
        $event = mc_get_first_event($new_event);
        $details = mc_create_tags($event);
        $content = jd_draw_template($details, apply_filters('mcs_new_post_template', $content, $event));
    }
    switch ($options['title']) {
        case 'custom':
            $title = sprintf($options['custom_title'], $data['event_title']);
            break;
        default:
            $title = $data['event_title'];
    }
    switch ($options['author']) {
        case 'host':
            $auth = $data['event_host'];
            break;
        default:
            $auth = $data['event_author'];
    }
    switch ($options['excerpt']) {
        case 'event_short':
            $excerpt = $data['event_short'];
            break;
        case 'auto':
            $excerpt = wp_trim_words($data['event_desc']);
            break;
        case 'custom':
            $excerpt = isset($_POST['mcs_custom_content']) ? $_POST['mcs_custom_content'] : '';
            break;
        default:
            $excerpt = $data['event_short'];
    }
    if ($options['excerpt'] == 'custom') {
        $event = mc_get_first_event($new_event);
        $details = mc_create_tags($event);
        $excerpt = jd_draw_template($details, apply_filters('mcs_new_post_template', $excerpt, $event));
    }
    $status = isset($options['status']) ? $options['status'] : 'publish';
    switch ($options['timestamp']) {
        case 'event':
            $date = strtotime($data['event_begin'] . ' ' . $data['event_time']);
            break;
        case 'custom':
            if ($options['custom_time'] < 0) {
                $date = strtotime($data['event_begin'] . ' ' . $data['event_time']) - intval($options['custom_time']);
            } else {
                $date = current_time('timestamp') + intval($options['custom_time']);
            }
            break;
        default:
            $date = current_time('timestamp');
    }
    $type = isset($options['post_type']) ? $options['post_type'] : 'post';
    if ($action == 'add' && !(isset($_POST['event_source']) && $_POST['event_source'] == 'post')) {
        $my_post = array('post_title' => $title, 'post_content' => $content, 'post_excerpt' => $excerpt, 'post_status' => $status, 'post_author' => $auth, 'post_name' => sanitize_title($title), 'post_date' => date('Y-m-d H:i:s', $date), 'post_type' => $type);
        $post_id = wp_insert_post($my_post);
        $attachment_id = isset($_POST['event_image_id']) && is_numeric($_POST['event_image_id']) ? $_POST['event_image_id'] : false;
        if ($attachment_id) {
            set_post_thumbnail($post_id, $attachment_id);
        }
        $category = mc_get_category_detail($data['event_category'], 'category_name');
        $taxonomy = 'category';
        wp_set_post_tags($post_id, $category);
        wp_set_post_terms($post_id, $category, $taxonomy);
        add_post_meta($post_id, '_mc_event_id', $new_event);
        $event = mc_get_first_event($new_event);
        $event_id = $event->event_post;
        add_post_meta($event_id, '_mc_related_post', $post_id);
        do_action('mcp_post_published', $post_id, $event);
        wp_publish_post($post_id);
    }
}
コード例 #3
0
function mc_events_class($events, $date = false)
{
    $class = $events_class = '';
    if (!is_array($events) || !count($events)) {
        $events_class = "no-events";
    } else {
        foreach (array_keys($events) as $key) {
            $event =& $events[$key];
            if ($event->event_endtime == '00:00:00' && date('Y-m-d', strtotime($event->occur_end)) == $date && date('Y-m-d', strtotime($event->occur_begin)) != $date) {
                continue;
            }
            $author = ' author' . $event->event_author;
            if (strpos($class, $author) === false) {
                $class .= $author;
            }
            $cat = ' mcat_' . sanitize_title($event->category_name);
            if (strpos($class, $cat) === false) {
                $class .= $cat;
            }
            if (mc_get_category_detail($event->category_id, 'category_private') == 1 && !is_user_logged_in()) {
                $class = '';
            }
        }
        if ($class) {
            $events_class = "has-events{$class}";
        }
    }
    return $events_class;
}
コード例 #4
0
function mc_create_event_post($data, $event_id)
{
    $post_id = mc_get_event_post($event_id);
    if (!$post_id) {
        $term = mc_get_category_detail($data['event_category'], 'category_term');
        $privacy = mc_get_category_detail($data['event_category'], 'category_private') == 1 ? 'private' : 'publish';
        $title = $data['event_title'];
        $template = apply_filters('mc_post_template', 'details', $term);
        $data['shortcode'] = "[my_calendar_event event='{$event_id}' template='{$template}' list='']";
        $description = $data['event_desc'];
        $excerpt = $data['event_short'];
        $location_id = isset($_POST['location_preset']) ? (int) $_POST['location_preset'] : 0;
        $post_status = $privacy;
        $auth = $data['event_author'];
        $type = 'mc-events';
        $my_post = array('post_title' => $title, 'post_content' => $description, 'post_status' => $post_status, 'post_author' => $auth, 'post_name' => sanitize_title($title), 'post_date' => date('Y-m-d H:i:s', current_time('timestamp')), 'post_type' => $type, 'post_excerpt' => $excerpt);
        $post_id = wp_insert_post($my_post);
        wp_set_object_terms($post_id, (int) $term, 'mc-event-category');
        $attachment_id = isset($_POST['event_image_id']) && is_numeric($_POST['event_image_id']) ? $_POST['event_image_id'] : false;
        if ($attachment_id) {
            set_post_thumbnail($post_id, $attachment_id);
        }
        mc_update_event('event_post', $post_id, $event_id);
        mc_update_event('event_location', $location_id, $event_id);
        do_action('mc_update_event_post', $post_id, $_POST, $data, $event_id);
        wp_publish_post($post_id);
    }
    return $post_id;
}