PluginProbe
Event Post / 4.2
Event Post v4.2
6.1.1 6.1.0 6.0.1 6.0.0 5.12.0 trunk 3.9 4.0 4.2 4.3 4.4 4.5 5.0 5.1 5.10.0 5.10.1 5.10.2 5.10.3 5.10.4 5.11.0 5.11.1 5.2 5.5 5.6 5.6.1 All 46 releases
event-post / multisite.php

multisite.php in Event Post 4.2, at multisite.php

91 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 Event Post multisite support
4 Extends Event post to multisite networks
5 */
6
7 if(is_multisite()){
8 $EventPostMU=new EventPostMU();
9 }
10
11 class EventPostMU{
12 function __construct(){
13 add_filter('eventpost_params',array(&$this,'params'),1,2);
14 add_filter('eventpost_get',array(&$this,'get'),1,3);
15 add_filter('eventpost_shortcodeui_list',array(&$this,'shortcode_ui'),1,1);
16 add_filter('eventpost_shortcodeui_map',array(&$this,'shortcode_ui'),1,1);
17 }
18 public function EventPostMU(){
19 $this->__construct();
20 }
21 private function no_use(){
22 __('Extends Event post to multisite networks','event-post');
23 __('Event Post multisite support','event-post');
24 }
25 public function params($param,$context){
26 $param['blogs']='';
27 return $param;
28 }
29 public function shortcode_ui($param){
30 $param['attrs'][]=array(
31 'label' => __('Blogs','event-post'),
32 'attr' => 'blogs',
33 'type' => 'text',
34 'description' => __('Blog\'s id, separated by comma. "all" for all blogs','event-post')
35 );
36 return $param;
37 }
38 /*
39 * Fetches events from all needed blogs
40 * @filter eventpost_multisite_get
41 * @filter eventpost_multisite_blogids
42 * @return array of events
43 *
44 */
45 public function get($empty,$arg,$requete){
46 $is_result=apply_filters('eventpost_multisite_get',$empty,$arg,$requete);
47 if($is_result!=$empty)
48 return $is_result;
49
50 if(!is_array($arg) || !isset($arg['blogs']) || ''==$arg['blogs'])
51 return $empty;
52 //print_r($arg);
53 $blog_ids=array();
54 if($arg['blogs']=='all'){
55 $blogs=wp_get_sites(array('limit'=>0));
56 foreach ($blogs as $blog) {
57 $blog_ids[]=$blog['blog_id'];
58 }
59 }
60 elseif(!empty($arg['blogs'])){
61 $blog_ids=apply_filters('eventpost_multisite_blogids',explode(',',$arg['blogs']));
62 }
63 else{
64 return $empty;
65 }
66
67
68 global $EventPost,$wpdb;
69
70 $all_events=array();
71 foreach ($blog_ids as $blog_id) {
72 switch_to_blog($blog_id);
73 $query = new WP_Query($requete);
74 $events = $wpdb->get_col($query->request);
75 foreach($events as $k=>$post){
76 $event = $EventPost->retreive($post);
77 $all_events[($arg['orderby']!='meta_value' && isset($event->$arg['orderby'])?$event->$arg['orderby']:$event->time_start).'-'.$blog_id.'-'.$event->ID]=$event;
78 }
79 restore_current_blog();
80 }
81 if($arg['order']!=''){
82 $sort = $arg['order']=='DESC'?'krsort':'ksort';
83 $sort($all_events);
84 }
85 return $all_events;
86
87 }
88 }
89
90
91