PluginProbe
Event Post / trunk
Event Post vtrunk
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 trunk, at inc/class-multisite.php

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