本文整理匯總了PHP中jd_draw_template函數的典型用法代碼示例。如果您正苦於以下問題:PHP jd_draw_template函數的具體用法?PHP jd_draw_template怎麽用?PHP jd_draw_template使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了jd_draw_template函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: my_event_email
function my_event_email($details, $event, $type, $time)
{
if (my_calendar_date_xcomp($event->occur_end, date('Y-m-d', current_time('timestamp')))) {
$data = mc_create_tags($event);
// this is just a sample template; you'd want to customize it.
$details = jd_draw_template($data, '<h2>{title}</h2>{image}');
}
return $details;
}
示例2: my_calendar_ical
function my_calendar_ical()
{
$p = isset($_GET['span']) ? 'year' : false;
$y = isset($_GET['yr']) ? $_GET['yr'] : date('Y');
$m = isset($_GET['month']) ? $_GET['month'] : date('n');
$ny = isset($_GET['nyr']) ? $_GET['nyr'] : $y;
$nm = isset($_GET['nmonth']) ? $_GET['nmonth'] : $m;
if ($p) {
$from = "{$y}-1-1";
$to = "{$y}-12-31";
} else {
$d = date('t', mktime(0, 0, 0, $m, 1, $y));
$from = "{$y}-{$m}-1";
$to = "{$ny}-{$nm}-{$d}";
}
$from = apply_filters('mc_ical_download_from', $from, $p);
$to = apply_filters('mc_ical_download_to', $to, $p);
$atts = array('category' => null, 'ltype' => '', 'lvalue' => '', 'source' => 'calendar', 'author' => null, 'host' => null);
$atts = apply_filters('mc_ical_attributes', $atts);
extract($atts);
global $mc_version;
// establish template
$template = "BEGIN:VEVENT\nUID:{dateid}-{id}\nLOCATION:{ical_location}\nSUMMARY:{title}\nDTSTAMP:{ical_start}\nORGANIZER;CN={host}:MAILTO:{host_email}\nDTSTART:{ical_start}\nDTEND:{ical_end}\nURL;VALUE=URI:{link}\nDESCRIPTION:{ical_desc}\nCATEGORIES:{category}\nEND:VEVENT";
// add ICAL headers
$output = 'BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
PRODID:-//Accessible Web Design//My Calendar//http://www.joedolson.com//v' . $mc_version . '//EN';
// to do : add support for other arguments
$events = my_calendar_grab_events($from, $to);
if (is_array($events) && !empty($events)) {
foreach (array_keys($events) as $key) {
$event =& $events[$key];
if (is_object($event)) {
if (!($event->category_private == 1 && !is_user_logged_in())) {
$array = mc_create_tags($event);
$output .= "\n" . jd_draw_template($array, $template, 'ical');
}
}
}
}
$output .= "\nEND:VCALENDAR";
$output = html_entity_decode(preg_replace("~(?<!\r)\n~", "\r\n", $output));
if (!(isset($_GET['sync']) && $_GET['sync'] == 'true')) {
header("Content-Type: text/calendar; charset=" . get_bloginfo('charset'));
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Disposition: inline; filename=my-calendar.ics");
}
echo $output;
}
示例3: mc_format_rss
function mc_format_rss($events)
{
$template = "\n<item>\n\t\t<title>{rss_title}</title>\n\t\t<link>{details_link}</link>\n\t\t<pubDate>{rssdate}</pubDate>\n\t\t<dc:creator>{author}</dc:creator> \t\n\t\t<description><![CDATA[{rss_description}]]></description>\n\t\t<date>{dtstart}</date>\n\t\t<dateSubmitted>{rssdate}</dateSubmitted>\n\t\t<content:encoded><![CDATA[<div class='vevent'>\n\t\t<h1 class='summary'>{rss_title}</h1>\n\t\t<div class='description'>{rss_description}</div>\n\t\t<p class='dtstart' title='{ical_start}'>Begins: {time} on {date}</p>\n\t\t<p class='dtend' title='{ical_end}'>Ends: {endtime} on {enddate}</p>\t\n\t\t<p>Recurrance: {recurs}</p>\n\t\t<p>Repetition: {repeats} times</p>\n\t\t<div class='location'>{rss_hcard}</div>\n\t\t{rss_link_title}\n\t\t</div>]]></content:encoded>\n\t\t<dc:format xmlns:dc='http://purl.org/dc/elements/1.1/'>text/html</dc:format>\n\t\t<dc:source xmlns:dc='http://purl.org/dc/elements/1.1/'>" . home_url() . "</dc:source>\t\n\t\t{guid}\n\t </item>\n";
$charset = get_bloginfo('charset');
$output = '<?xml version="1.0" encoding="' . $charset . '"?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
<channel>
<title>' . get_bloginfo('name') . ' Calendar</title>
<link>' . home_url() . '</link>
<description>' . get_bloginfo('description') . ': My Calendar Events</description>
<language>' . get_bloginfo('language') . '</language>
<managingEditor>' . get_bloginfo('admin_email') . ' (' . get_bloginfo('name') . ' Admin)</managingEditor>
<generator>My Calendar WordPress Plugin http://www.joedolson.com/articles/my-calendar/</generator>
<lastBuildDate>' . mysql2date('D, d M Y H:i:s +0000', current_time('timestamp')) . '</lastBuildDate>
<atom:link href="' . htmlentities(add_query_arg($_GET, mc_get_current_url())) . '" rel="self" type="application/rss+xml" />';
foreach ($events as $date) {
foreach (array_keys($date) as $key) {
$event =& $date[$key];
$array = mc_create_tags($event);
$output .= jd_draw_template($array, $template, 'rss');
}
}
$output .= '</channel>
</rss>';
return mc_strip_to_xml($output);
}
示例4: mc_get_details_label
function mc_get_details_label($event, $e)
{
$templates = get_option('mc_templates');
$e_template = !empty($templates['label']) ? stripcslashes($templates['label']) : sprintf(__('Event Details %s', 'my-calendar'), '<span class="screen-reader-text">about {title}</span> »');
$e_label = wp_kses(jd_draw_template($e, $e_template), array('span' => array('class' => array('screen-reader-text')), 'em', 'strong'));
return $e_label;
}
示例5: mcs_payment_form
function mcs_payment_form()
{
$ret = $form = '';
if (isset($_GET['response_code'])) {
$mcs = $_GET['response_code'];
$provider = get_option('mcs_gateway') == 2 ? 'Authorize.net' : 'PayPal';
switch ($mcs) {
case 'thanks':
$ret = "<p class='notice'>" . sprintf(__("Thank you for your purchase! You can view your purchase information at %s. You will receive an email with your payment key once your payment is finalized.", 'my-calendar-submissions'), $provider) . "</p>";
break;
case 'cancel':
$ret = __("Sorry that you decided to cancel your purchase! Contact us if you have any questions!", 'my-calendar-submissions');
break;
}
}
if (mcs_payment_required()) {
$price = mcs_get_price(is_user_logged_in());
$currency = get_option('mcs_currency');
$quantity = get_option('mcs_quantity');
$discounts = mcs_check_discount();
$discount_rate = (int) $discounts['rate'];
$discount = $discount_rate != 0 ? true : false;
if (isset($_GET['response_code'])) {
$message = '';
} else {
$message = wpautop(jd_draw_template(array('price' => $price, 'currency' => $currency, 'discount' => $discount_rate, 'begins' => $discounts['begins'], 'ends' => $discounts['ends']), get_option('mcs_payment_message')));
}
$form = "<div class='mc-payments-form " . get_option('mcs_gateway') . "'>\n\t\t {$ret}\n\t\t {$message}";
$nonce = wp_create_nonce('mcs-payments-nonce');
if (get_option('mcs_gateway') == 'authorizenet') {
if (get_option('mcs_quantity') != 'true' || (get_option('mcs_quantity') == 'true' && isset($_POST['mcs_quantity']) || isset($_GET['response_code']))) {
require_once 'gateways/AuthorizeNet.php';
// The SDK
$url = mcs_replace_http(add_query_arg('mcsipn', 'true', get_permalink()));
$rand = time() . rand(100000, 999999);
$mcs_quantity = isset($_POST['mcs_quantity']) ? (int) $_POST['mcs_quantity'] : 1;
$price = mcs_calculate_price($mcs_quantity, $price, $discount, $discount_rate);
$form .= AuthorizeNetDPM::directPost($url, $price, $rand, $nonce);
} else {
$form .= mcs_set_quantity_form($price);
}
} else {
$form .= mcs_paypal_form($price, $currency, $discount_rate, $discounts, $discount, $quantity);
}
$form .= "</div>";
}
return $form;
}
示例6: my_calendar_send_email
function my_calendar_send_email($event)
{
$details = mc_create_tags($event);
// shift to boolean
$send_email_option = get_option('mc_event_mail') == 'true' ? true : false;
$send_email = apply_filters('mc_send_notification', $send_email_option, $details);
if ($send_email == true) {
add_filter('wp_mail_content_type', create_function('', 'return "text/html";'));
}
if (get_option('mc_event_mail') == 'true') {
$to = apply_filters('mc_event_mail_to', get_option('mc_event_mail_to'), $details);
$from = get_option('mc_event_mail_from') == '' ? get_bloginfo('admin_email') : get_option('mc_event_mail_from');
$from = apply_filters('mc_event_mail_from', $from, $details);
$from = "From: " . __('Event Notifications', 'my-calendar') . " <{$from}>";
$subject = jd_draw_template($details, get_option('mc_event_mail_subject'));
$message = jd_draw_template($details, get_option('mc_event_mail_message'));
$mail = wp_mail($to, $subject, $message, $from);
}
if (get_option('mc_html_email') == 'true') {
remove_filter('wp_mail_content_type', create_function('', 'return "text/html";'));
}
}
示例7: my_calendar_show_locations
function my_calendar_show_locations($show = 'list', $datatype = 'name', $template = '')
{
global $wpdb;
$mcdb = $wpdb;
if (get_option('mc_remote') == 'true' && function_exists('mc_remote_db')) {
$mcdb = mc_remote_db();
}
switch ($datatype) {
case "name":
case "location":
$data = "location_label";
break;
case "city":
$data = "location_city";
break;
case "state":
$data = "location_state";
break;
case "zip":
$data = "location_postcode";
break;
case "country":
$data = "location_country";
break;
case "hcard":
$data = "location_label";
break;
case "region":
$data = "location_region";
break;
default:
$data = "location_label";
}
$locations = $mcdb->get_results("SELECT DISTINCT * FROM " . MY_CALENDAR_LOCATIONS_TABLE . " ORDER BY {$data} ASC");
if ($locations) {
$output = "<ul class='mc-locations'>";
foreach ($locations as $key => $value) {
$id = $value->location_id;
if ($datatype != 'hcard' && $template == '') {
$label = stripslashes($value->{$data});
$url = mc_maplink($value, 'url', $source = 'location');
if ($url) {
$output .= "<li>{$url}</li>";
} else {
$output .= "<li>{$label}</li>";
}
} else {
if ($datatype == 'hcard') {
$label = mc_hcard($value, true, true, 'location');
$output .= "<li>{$label}</li>";
} else {
if ($template != '') {
$values = array('id' => $value->location_id, 'label' => $value->location_label, 'street' => $value->location_street, 'street2' => $value->location_street2, 'city' => $value->location_city, 'state' => $value->location_state, 'postcode' => $value->location_postcode, 'region' => $value->location_region, 'url' => $value->location_url, 'country' => $value->location_country, 'longitude' => $value->location_longitude, 'latitude' => $value->location_latitude, 'zoom' => $value->location_zoom, 'phone' => $value->location_phone);
$label = jd_draw_template($values, $template);
$output .= "<li>{$label}</li>";
}
}
}
}
$output .= "</ul>";
$output = apply_filters('mc_location_list', $output, $locations);
return $output;
}
}
示例8: my_calendar_events_now
function my_calendar_events_now($category = 'default', $template = '<strong>{link_title}</strong> {timerange}')
{
global $wpdb;
$mcdb = $wpdb;
if (get_option('mc_remote') == 'true' && function_exists('mc_remote_db')) {
$mcdb = mc_remote_db();
}
$arr_events = array();
$limit_string = "event_flagged <> 1 AND event_approved = 1";
$select_category = $category != 'default' ? mc_select_category($category) : '';
// may add support for location/author/host later.
$select_location = $select_author = $select_host = '';
$now = date('Y-m-d H:i:s', current_time('timestamp'));
$event_query = "SELECT *, UNIX_TIMESTAMP(occur_begin) AS ts_occur_begin, UNIX_TIMESTAMP(occur_end) AS ts_occur_end\n\t\t\t\t\tFROM " . MY_CALENDAR_EVENTS_TABLE . " AS e \n\t\t\t\t\tJOIN " . MY_CALENDAR_TABLE . " AS t \n\t\t\t\t\tON (event_id=occur_event_id) \t\t\t\t\t\n\t\t\t\t\tJOIN " . MY_CALENDAR_CATEGORIES_TABLE . " AS c \n\t\t\t\t\tON (event_category=category_id) \n\t\t\t\t\tWHERE {$select_category} {$select_location} {$select_author} {$select_host} {$limit_string} \n\t\t\t\t\tAND ( CAST('{$now}' AS DATETIME) BETWEEN occur_begin AND occur_end ) \n\t\t\t\t\t\tORDER BY " . apply_filters('mc_primary_sort', 'occur_begin') . ", " . apply_filters('mc_secondary_sort', 'event_title ASC');
$events = $mcdb->get_results($event_query);
if (!empty($events)) {
foreach (array_keys($events) as $key) {
$event =& $events[$key];
$arr_events[] = $event;
}
}
if (!empty($arr_events)) {
$event = mc_create_tags($arr_events[0]);
$output = jd_draw_template($event, apply_filters('mc_happening_now_template', $template, $event));
return get_option('mc_process_shortcodes') == 'true' ? do_shortcode($output) : $output;
} else {
return '';
}
}
示例9: mc_instance_list
function mc_instance_list($id, $occur = false, $template = '<h3>{title}</h3>{description}', $list = '<li>{date}, {time}</li>', $before = "<ul>", $after = "</ul>", $instance = false)
{
global $wpdb;
$id = (int) $id;
$output = '';
if ($instance == true) {
$sql = "SELECT * FROM " . my_calendar_event_table() . " WHERE occur_id={$id}";
} else {
$sql = "SELECT * FROM " . my_calendar_event_table() . " WHERE occur_event_id={$id}";
}
$results = $wpdb->get_results($sql);
if (is_array($results) && is_admin()) {
foreach ($results as $result) {
$begin = "<span id='occur_date_{$result->occur_id}'>" . date_i18n(get_option('mc_date_format'), strtotime($result->occur_begin)) . ', ' . date(get_option('mc_time_format'), strtotime($result->occur_begin)) . "</span>";
if ($result->occur_id == $occur) {
$form_control = '';
$edit = "<em>" . __('Editing Now', 'my-calendar') . "</em>";
} else {
$form_control = "{$begin}: <button class='delete_occurrence' type='button' data-value='{$result->occur_id}' aria-describedby='occur_date_{$result->occur_id}' />" . __('Delete', 'my-calendar') . "</button> ";
$edit = "<a href='" . admin_url('admin.php?page=my-calendar') . "&mode=edit&event_id={$id}&date={$result->occur_id}' aria-describedby='occur_date_{$result->occur_id}'>" . __('Edit', 'my-calendar') . "</a>";
}
$output .= "<li>{$form_control}{$edit}</li>";
}
} else {
$details = '';
foreach ($results as $result) {
$event_id = $result->occur_id;
$event = mc_get_event($event_id);
$array = mc_create_tags($event);
if (in_array($template, array('details', 'grid', 'list', 'mini')) || mc_key_exists($template)) {
if (get_option('mc_use_' . $template . '_template') == 1) {
$template = mc_get_template($template);
} else {
if (mc_key_exists($template)) {
$template = mc_get_custom_template($template);
} else {
$details = my_calendar_draw_event($event, $type = "single", $event->event_begin, $event->event_time, '');
}
}
}
$item = $list != '' ? jd_draw_template($array, $list) : '';
if ($details == '') {
$details = $template != '' ? jd_draw_template($array, $template) : '';
}
$output .= $item;
if ($list == '') {
break;
}
}
$output = $details . $before . $output . $after;
}
return get_option('mc_process_shortcodes') == 'true' ? do_shortcode($output) : $output;
}
示例10: my_calendar_send_email
function my_calendar_send_email($event)
{
$details = mc_create_tags($event);
$headers = array();
// shift to boolean
$send_email_option = get_option('mc_event_mail') == 'true' ? true : false;
$send_email = apply_filters('mc_send_notification', $send_email_option, $details);
if ($send_email == true) {
add_filter('wp_mail_content_type', create_function('', 'return "text/html";'));
}
if (get_option('mc_event_mail') == 'true') {
$to = apply_filters('mc_event_mail_to', get_option('mc_event_mail_to'), $details);
$from = get_option('mc_event_mail_from') == '' ? get_bloginfo('admin_email') : get_option('mc_event_mail_from');
$from = apply_filters('mc_event_mail_from', $from, $details);
$headers[] = "From: " . __('Event Notifications', 'my-calendar') . " <{$from}>";
$bcc = apply_filters('mc_event_mail_bcc', get_option('mc_event_mail_bcc'), $details);
if ($bcc) {
$bcc = explode(PHP_EOL, $bcc);
foreach ($bcc as $b) {
$b = trim($b);
if (is_email($b)) {
$headers[] = "Bcc: {$b}";
}
}
}
$headers = apply_filters('mc_customize_email_headers', $headers, $event);
$subject = jd_draw_template($details, get_option('mc_event_mail_subject'));
$message = jd_draw_template($details, get_option('mc_event_mail_message'));
wp_mail($to, $subject, $message, $headers);
}
if (get_option('mc_html_email') == 'true') {
remove_filter('wp_mail_content_type', create_function('', 'return "text/html";'));
}
}
示例11: mc_event_filter
function mc_event_filter($title, $sep = ' | ', $seplocation = 'right')
{
if (isset($_GET['mc_id'])) {
$id = (int) $_GET['mc_id'];
$event = mc_get_event($id);
$array = mc_create_tags($event);
$left_sep = $seplocation != 'right' ? ' ' . $sep . ' ' : '';
$right_sep = $seplocation != 'right' ? '' : ' ' . $sep . ' ';
$template = get_option('mc_event_title_template') != '' ? stripslashes(get_option('mc_event_title_template')) : "{$left_sep} {title} {$sep} {date} {$right_sep} ";
return strip_tags(jd_draw_template($array, $template));
} else {
return $title;
}
}
示例12: my_calendar_todays_events
function my_calendar_todays_events($category = 'default', $template = 'default', $substitute = '', $author = 'all', $host = 'all')
{
$caching = apply_filters('mc_cache_enabled', false);
$todays_cache = $caching ? get_transient('mc_todays_cache') : '';
if ($caching && is_array($todays_cache) && @$todays_cache[$category]) {
return @$todays_cache[$category];
}
global $default_template;
$output = '';
$defaults = get_option('mc_widget_defaults');
$template = $template == 'default' ? $defaults['today']['template'] : $template;
if ($template == '') {
$template = "{$default_template}";
}
$category = $category == 'default' ? $defaults['today']['category'] : $category;
$no_event_text = $substitute == '' ? $defaults['today']['text'] : $substitute;
$from = $to = date('Y-m-d', current_time('timestamp'));
$events = my_calendar_events($from, $to, $category, '', '', 'upcoming', $author, $host);
$today = isset($events[$from]) ? $events[$from] : false;
$header = "<ul id='todays-events'>";
$footer = "</ul>";
$groups = $todays_events = array();
// quick loop through all events today to check for holidays
if (is_array($today)) {
foreach ($today as $e) {
if ($e->category_private == 1 && !is_user_logged_in()) {
} else {
if (!in_array($e->event_group_id, $groups)) {
$event_details = mc_create_tags($e);
$ts = $e->ts_occur_begin;
if (get_option('mc_event_approve') == 'true') {
if ($e->event_approved != 0) {
$todays_events[$ts][] = "<li>" . jd_draw_template($event_details, $template) . "</li>";
}
} else {
$todays_events[$ts][] = "<li>" . jd_draw_template($event_details, $template) . "</li>";
}
}
}
}
$todays_events = apply_filters('mc_event_today', $todays_events, $events);
foreach ($todays_events as $k => $t) {
foreach ($t as $now) {
$output .= $now;
}
}
if (count($events) != 0) {
$return = $header . $output . $footer;
} else {
$return = stripcslashes($no_event_text);
}
$time = strtotime(date('Y-m-d H:m:s', current_time('timestamp'))) - strtotime(date('Y-m-d', current_time('timestamp')));
$time_remaining = 24 * 60 * 60 - $time;
$todays_cache[$category] = $caching ? $return : '';
if ($caching) {
set_transient('mc_todays_cache', $todays_cache, $time_remaining);
}
} else {
$return = stripcslashes($no_event_text);
}
return $return;
}
示例13: mcs_notify_submitter
function mcs_notify_submitter($name, $email, $event_id, $action)
{
if (preg_match('/\\s/', $name)) {
@(list($fname, $lname) = preg_split('/\\s+(?=[^\\s]+$)/', $name, 2));
} else {
$fname = $name;
$lname = '';
}
$event = mc_get_event_core($event_id);
$array = array('first_name' => $fname, 'last_name' => $lname, 'email' => $email, 'title' => $event->event_title, 'date' => $event->event_begin, 'time' => $event->event_time, 'description' => $event->event_desc, 'short' => $event->event_short, 'image' => $event->event_image, 'url' => $event->event_link, 'location' => $event->event_label, 'street' => $event->event_street, 'city' => $event->event_city, 'phone' => $event->event_phone, 'blogname' => get_option('blogname'), 'edit_link' => mcs_submit_url($event_id));
// if event is flagged as spam, don't send email notification.
// filter allows you to disable email notifications for various custom reasons.
$dont_send_email = apply_filters('mcs_dont_send_submitter_email', false, $event_id, $array);
if ($event->event_approved == 1 && get_option('mcs_dont_send_submitter_email') == 'true') {
$dont_send_email = true;
}
if ($event->event_flagged == 1 || $dont_send_email == true) {
return;
} else {
$subject = get_option('mcs_confirmation_subject') == '' ? 'New event on {blogname}' : get_option('mcs_confirmation_subject');
$edit_subject = get_option('mcs_edit_confirmation_subject') == '' ? 'Edited event on {blogname}' : get_option('mcs_edit_confirmation_subject');
$message = get_option('mcs_confirmation') == '' ? 'Thanks for proposing a new event, {first_name} {last_name}! {title}, {date}, {time}' : get_option('mcs_confirmation');
if ($action = 'edit') {
$subject = $edit_subject;
}
$subject = jd_draw_template($array, $subject);
$message = jd_draw_template($array, $message);
$blogname = get_option('blogname');
$from = get_option('mcs_from') == '' ? get_bloginfo('admin_email') : get_option('mcs_from');
if (get_option('mcs_html_email') == 'true') {
add_filter('wp_mail_content_type', create_function('', 'return "text/html";'));
}
$headers = array("From: {$from}");
$headers = apply_filters('mcs_notify_admin_headers', $headers);
$mail = wp_mail($email, $subject, $message, $headers);
if (get_option('mcs_html_email') == 'true') {
remove_filter('wp_mail_content_type', create_function('', 'return "text/html";'));
}
}
}
示例14: my_event_post
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);
}
}
示例15: my_calendar_todays_events
function my_calendar_todays_events($category = 'default', $template = 'default', $substitute = '', $author = 'all', $host = 'all', $date = false, $site = false)
{
if ($site) {
$site = $site == 'global' ? BLOG_ID_CURRENT_SITE : $site;
switch_to_blog($site);
}
$caching = apply_filters('mc_cache_enabled', false);
$todays_cache = $caching ? get_transient('mc_todays_cache') : '';
if ($caching && is_array($todays_cache) && @$todays_cache[$category]) {
return @$todays_cache[$category];
}
$args = array('category' => $category, 'template' => $template, 'substitute' => $substitute, 'author' => $author, 'host' => $host, 'date' => $date);
$hash = md5(implode(',', $args));
global $default_template;
$output = '';
// allow reference by file to external template.
if ($template != '' && mc_file_exists(sanitize_file_name($template))) {
$template = @file_get_contents(mc_get_file(sanitize_file_name($template)));
}
$defaults = get_option('mc_widget_defaults');
$template = $template == 'default' ? $defaults['today']['template'] : $template;
$template = $template == '' ? $default_template : $template;
if (mc_key_exists($template)) {
$template = mc_get_custom_template($template);
}
$category = $category == 'default' ? $defaults['today']['category'] : $category;
$no_event_text = $substitute == '' ? $defaults['today']['text'] : $substitute;
if ($date) {
$from = $to = date('Y-m-d', strtotime($date));
} else {
$from = $to = date('Y-m-d', current_time('timestamp'));
}
$events = my_calendar_events($from, $to, $category, '', '', 'upcoming', $author, $host, '', $site);
$today = isset($events[$from]) ? $events[$from] : false;
$header = "<ul id='todays-events-{$hash}' class='todays-events'>";
$footer = "</ul>";
$groups = $todays_events = array();
// quick loop through all events today to check for holidays
if (is_array($today)) {
foreach ($today as $e) {
if ($e->category_private == 1 && !is_user_logged_in()) {
} else {
if (!in_array($e->event_group_id, $groups)) {
$event_details = mc_create_tags($e);
$ts = $e->ts_occur_begin;
$end = $e->ts_occur_end;
$now = current_time('timestamp');
$category = 'mc_' . sanitize_title($e->category_name);
if ($ts < $now && $end > $now) {
$class = 'on-now';
} else {
if ($now < $ts) {
$class = 'future-event';
} else {
if ($now > $ts) {
$class = 'past-event';
}
}
}
$prepend = apply_filters('mc_todays_events_before', "<li class='{$class} {$category}'>", $class, $category);
$append = apply_filters('mc_todays_events_after', "</li>");
if (get_option('mc_event_approve') == 'true') {
if ($e->event_approved != 0) {
$todays_events[$ts][] = $prepend . jd_draw_template($event_details, $template) . $append;
}
} else {
$todays_events[$ts][] = $prepend . jd_draw_template($event_details, $template) . $append;
}
}
}
}
$todays_events = apply_filters('mc_event_today', $todays_events, $events);
foreach ($todays_events as $k => $t) {
foreach ($t as $now) {
$output .= $now;
}
}
if (count($events) != 0) {
$return = apply_filters('mc_todays_events_header', $header) . $output . apply_filters('mc_todays_events_footer', $footer);
} else {
$return = stripcslashes($no_event_text);
}
$time = strtotime(date('Y-m-d H:m:s', current_time('timestamp'))) - strtotime(date('Y-m-d', current_time('timestamp')));
$time_remaining = 24 * 60 * 60 - $time;
$todays_cache[$category] = $caching ? $return : '';
if ($caching) {
set_transient('mc_todays_cache', $todays_cache, $time_remaining);
}
} else {
$return = stripcslashes($no_event_text);
}
if ($site) {
restore_current_blog();
}
return get_option('mc_process_shortcodes') == 'true' ? do_shortcode($return) : $return;
}