示例#1
0
文件: general.php 项目: TMBR/johnjohn
 /**
  * Returns json for javascript templating functions throughout the plugin.
  *
  * @category Events
  *
  * @param $event
  * @param $additional
  *
  * @return string
  */
 function tribe_events_template_data($event, array $additional = null)
 {
     $has_image = false;
     $image_src = '';
     $image_tool_src = '';
     $date_display = '';
     //Disable recurring event info in tooltip
     if (class_exists('Tribe__Events__Pro__Main')) {
         $ecp = Tribe__Events__Pro__Main::instance();
         $ecp->disable_recurring_info_tooltip();
         $date_display = strip_tags(tribe_events_event_schedule_details($event));
         // Re-enable recurring event info
         $ecp->enable_recurring_info_tooltip();
     } else {
         $date_display = strip_tags(tribe_events_event_schedule_details($event));
     }
     if (function_exists('has_post_thumbnail') && has_post_thumbnail($event->ID)) {
         $has_image = true;
         $image_arr = wp_get_attachment_image_src(get_post_thumbnail_id($event->ID), 'medium');
         $image_src = $image_arr[0];
     }
     if ($has_image) {
         $image_tool_arr = wp_get_attachment_image_src(get_post_thumbnail_id($event->ID), array(75, 75));
         $image_tool_src = $image_tool_arr[0];
     }
     if (has_excerpt($event->ID)) {
         $excerpt = $event->post_excerpt;
     } else {
         $excerpt = $event->post_content;
     }
     $excerpt = Tribe__Events__Main::instance()->truncate($excerpt, 30);
     $category_classes = tribe_events_event_classes($event->ID, false);
     $json = array('eventId' => $event->ID, 'title' => $event->post_title, 'permalink' => tribe_get_event_link($event->ID), 'imageSrc' => $image_src, 'dateDisplay' => $date_display, 'imageTooltipSrc' => $image_tool_src, 'excerpt' => $excerpt, 'categoryClasses' => $category_classes);
     /**
      * Template overrides (of month/tooltip.php) set up in 3.9.3 or earlier may still expect
      * these vars and will break without them, so they are being kept temporarily for
      * backwards compatibility purposes.
      *
      * @todo consider removing in 4.0
      */
     $json['startTime'] = tribe_get_start_date($event);
     $json['endTime'] = tribe_get_end_date($event);
     if ($additional) {
         $json = array_merge((array) $json, (array) $additional);
     }
     $json = apply_filters('tribe_events_template_data_array', $json, $event, $additional);
     $json = tribe_prepare_for_json_deep($json);
     return json_encode($json);
 }
示例#2
0
 /**
  * Returns json for javascript templating functions throughout the plugin.
  *
  * @param $event
  * @param $additional
  *
  * @return string
  */
 function tribe_events_template_data($event, array $additional = null)
 {
     $has_image = false;
     $start_time = '';
     $end_time = '';
     $image_src = '';
     $image_tool_src = '';
     // @TODO use tribe_events_event_schedule_details()
     $date_format = tribe_get_date_format(true);
     $time_format = get_option('time_format', TribeDateUtils::TIMEFORMAT);
     $date_time_separator = tribe_get_option('dateTimeSeparator', ' @ ');
     if (!empty($event->EventStartDate)) {
         $start_time .= date_i18n($date_format, strtotime($event->EventStartDate));
     }
     if (!tribe_get_event_meta($event->ID, '_EventAllDay', true)) {
         $start_time .= $date_time_separator . date_i18n($time_format, strtotime($event->EventStartDate));
     }
     if (!empty($event->EventEndDate) && $event->EventStartDate !== $event->EventEndDate) {
         if (date('Y-m-d', strtotime($event->EventStartDate)) == date('Y-m-d', strtotime($event->EventEndDate))) {
             if (!tribe_get_event_meta($event->ID, '_EventAllDay', true)) {
                 $end_time .= date_i18n($time_format, strtotime($event->EventEndDate));
             }
         } else {
             $end_time .= date_i18n($date_format, strtotime($event->EventEndDate));
             if (!tribe_get_event_meta($event->ID, '_EventAllDay', true)) {
                 $end_time .= $date_time_separator . date_i18n($time_format, strtotime($event->EventEndDate));
             }
         }
     }
     if (function_exists('has_post_thumbnail') && has_post_thumbnail($event->ID)) {
         $has_image = true;
         $image_arr = wp_get_attachment_image_src(get_post_thumbnail_id($event->ID), 'medium');
         $image_src = $image_arr[0];
     }
     if ($has_image) {
         $image_tool_arr = wp_get_attachment_image_src(get_post_thumbnail_id($event->ID), array(75, 75));
         $image_tool_src = $image_tool_arr[0];
     }
     if (has_excerpt($event->ID)) {
         $excerpt = $event->post_excerpt;
     } else {
         $excerpt = $event->post_content;
     }
     $excerpt = TribeEvents::instance()->truncate($excerpt, 30);
     $category_classes = tribe_events_event_classes($event->ID, false);
     $json = array('eventId' => $event->ID, 'title' => $event->post_title, 'permalink' => tribe_get_event_link($event->ID), 'imageSrc' => $image_src, 'startTime' => $start_time, 'endTime' => $end_time, 'imageTooltipSrc' => $image_tool_src, 'excerpt' => $excerpt, 'categoryClasses' => $category_classes);
     if ($additional) {
         $json = array_merge((array) $json, (array) $additional);
     }
     $json = apply_filters('tribe_events_template_data_array', $json, $event, $additional);
     $json = tribe_prepare_for_json_deep($json);
     return json_encode($json);
 }
 /**
  * Returns json for javascript templating functions throughout the plugin.
  *
  * @category Events
  *
  * @param $event
  * @param $additional
  *
  * @return string
  */
 function tribe_events_template_data($event = null, array $additional = null)
 {
     // Base JSON variable
     $json = array('i18n' => array());
     if (!is_null($event)) {
         $event = get_post($event);
         // Check if we are dealing with an Event
         if (is_object($event) && $event instanceof WP_Post && tribe_is_event($event->ID)) {
             $has_image = false;
             $image_src = '';
             $image_tool_src = '';
             $date_display = '';
             //Disable recurring event info in tooltip
             if (class_exists('Tribe__Events__Pro__Main')) {
                 $ecp = Tribe__Events__Pro__Main::instance();
                 $ecp->disable_recurring_info_tooltip();
                 $date_display = strip_tags(tribe_events_event_schedule_details($event));
                 // Re-enable recurring event info
                 $ecp->enable_recurring_info_tooltip();
             } else {
                 $date_display = strip_tags(tribe_events_event_schedule_details($event));
             }
             if (function_exists('has_post_thumbnail') && has_post_thumbnail($event->ID)) {
                 $has_image = true;
                 $image_arr = wp_get_attachment_image_src(get_post_thumbnail_id($event->ID), 'medium');
                 $image_src = $image_arr[0];
             }
             if ($has_image) {
                 $image_tool_arr = wp_get_attachment_image_src(get_post_thumbnail_id($event->ID), array(75, 75));
                 $image_tool_src = $image_tool_arr[0];
             }
             if (has_excerpt($event->ID)) {
                 $excerpt = $event->post_excerpt;
             } else {
                 $excerpt = $event->post_content;
             }
             $excerpt = Tribe__Events__Main::instance()->truncate($excerpt, 30);
             $category_classes = tribe_events_event_classes($event->ID, false);
             $json['eventId'] = $event->ID;
             $json['title'] = $event->post_title;
             $json['permalink'] = tribe_get_event_link($event->ID);
             $json['imageSrc'] = $image_src;
             $json['dateDisplay'] = $date_display;
             $json['imageTooltipSrc'] = $image_tool_src;
             $json['excerpt'] = $excerpt;
             $json['categoryClasses'] = $category_classes;
             /**
              * Template overrides (of month/tooltip.php) set up in 3.9.3 or earlier may still expect
              * these vars and will break without them, so they are being kept temporarily for
              * backwards compatibility purposes.
              *
              * @todo consider removing in 4.0
              */
             $json['startTime'] = tribe_get_start_date($event);
             $json['endTime'] = tribe_get_end_date($event);
         }
     }
     /**
      * Internationalization Strings
      */
     $json['i18n']['find_out_more'] = esc_attr__('Find out more »', 'tribe-events-calendar');
     $json['i18n']['for_date'] = esc_attr(sprintf(__('%s for', 'tribe-events-calendar'), tribe_get_event_label_plural()));
     if ($additional) {
         $json = array_merge((array) $json, (array) $additional);
     }
     $json = apply_filters('tribe_events_template_data_array', $json, $event, $additional);
     $json = tribe_prepare_for_json_deep($json);
     return json_encode($json);
 }
示例#4
0
 /**
  * Recursively iterate through an nested structure, calling
  * tribe_prepare_for_json() on all scalar values
  *
  * @category Events
  *
  * @param mixed $value The data to be cleaned
  *
  * @return mixed The clean data
  */
 function tribe_prepare_for_json_deep($value)
 {
     if (is_array($value)) {
         $value = array_map('tribe_prepare_for_json_deep', $value);
     } elseif (is_object($value)) {
         $vars = get_object_vars($value);
         foreach ($vars as $key => $data) {
             $value->{$key} = tribe_prepare_for_json_deep($data);
         }
     } elseif (is_string($value)) {
         $value = tribe_prepare_for_json($value);
     }
     return $value;
 }