MultiSite.php
1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
namespace AC\Helper\Select\Group\CustomField;
use AC\Helper\Select\Formatter;
use AC\Helper\Select\Group;
use AC\Helper\Select\Option;
class MultiSite extends Group {
/**
* @var array $groups
*/
private $groups;
public function __construct( Formatter $formatter ) {
$this->groups = $this->get_groups();
parent::__construct( $formatter );
}
private function get_groups() {
global $wpdb;
$groups = [];
foreach ( get_sites() as $site ) {
$label = __( 'Network Site:', 'codepress-admin-columns' ) . ' ' . ac_helper()->network->get_site_option( $site->blog_id, 'blogname' );
if ( get_current_blog_id() == $site->blog_id ) {
$label .= ' (' . __( 'current', 'codepress-admin-columns' ) . ')';
}
$groups[ $wpdb->get_blog_prefix( $site->blog_id ) ] = $label;
}
return array_reverse( $groups );
}
/**
* @param $entity
* @param Option $option
*
* @return string
*/
public function get_label( $entity, Option $option ) {
foreach ( $this->groups as $key => $label ) {
if ( strpos( $entity, $key ) === 0 ) {
return $label;
}
}
return __( 'Default', 'codepress-admin-columns' );
}
}