PluginProbe
Event Post / 5.12.0
Event Post v5.12.0
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 / class-multisite.php

class-multisite.php in Event Post 5.12.0, at inc/class-multisite.php

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