/
multisite-list.php
141 lines (118 loc) · 3.13 KB
/
multisite-list.php
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?php
/**
* Widget Name: Site List
* Widget URI: http://comicpress.net/
* Description: Display list of sites, which site updated most recently.
* Author: Philip M. Hofer (Frumph)
* Author URI: http://frumph.net/
* Version: 1.2
*
* @package ComicPress
*/
if ( function_exists( 'is_multisite' ) && is_multisite() ) {
/**
* Adds Site List widget.
*/
class comicpress_multisite_sitelist_widget extends WP_Widget {
/**
* Register widget with WordPress.
*/
function __construct() {
parent::__construct(
__CLASS__, // Base ID.
__( 'ComicPress - Site List', 'comicpress' ), // Name.
array(
'classname' => __CLASS__,
'description' => __( 'Display Site List of all sites that have recently updated on this Multisite.', 'comicpress' ), // Args.
)
);
}
/**
* Front-end display of widget.
*
* @see WP_Widget::widget()
*
* @param array $args Widget arguments.
* @param array $instance Saved values from database.
*/
public function widget( $args, $instance ) {
global $post;
Protect();
extract( $args, EXTR_SKIP );
echo $before_widget;
$title = empty( $instance['title'] ) ? __( 'Hosted Site List', 'comicpress' ) : apply_filters( 'widget_title', $instance['title'] );
if ( ! empty( $title ) ) {
echo $before_title
. $title
. $after_title;
};
$blogs = get_last_updated();
if ( is_array( $blogs ) ) {
?>
<ul>
<?php
foreach ( $blogs as $details ) {
?>
<li>
<a href="http://<?php echo $details[ 'domain' ] . $details[ 'path' ]; ?>">
<?php
echo get_blog_option( $details[ 'blog_id' ], 'blogname' );
?>
</a>
</li>
<?php
}
?>
</ul>
<?php
}
echo $after_widget;
UnProtect();
}
/**
* Sanitize widget form values as they are saved.
*
* @see WP_Widget::update()
*
* @param array $new_instance Values just sent to be saved.
* @param array $old_instance Previously saved values from database.
*
* @return array Updated safe values to be saved.
*/
public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['title'] = strip_tags( $new_instance['title'] );
return $instance;
}
/**
* Back-end widget form.
*
* @see WP_Widget::form()
*
* @param array $instance Previously saved values from database.
*/
public function form( $instance ) {
$instance = wp_parse_args( (array) $instance, array(
'title' => '',
) );
$title = strip_tags( $instance['title'] );
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>">
<?php
_e( 'Title:', 'comicpress' );
?>
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</label>
</p>
<?php
}
}
/**
* Register Site List widget.
*/
function comicpress_multisite_sitelist_widget_init() {
register_widget( 'comicpress_multisite_sitelist_widget' );
}
add_action( 'widgets_init', 'comicpress_multisite_sitelist_widget_init' );
}