PluginProbe
Event Post / 5.7
Event Post v5.7
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 / inc / multisite.php

multisite.php in Event Post 5.7, at inc/multisite.php

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