-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcustom_widgets.php
More file actions
117 lines (102 loc) · 3.61 KB
/
custom_widgets.php
File metadata and controls
117 lines (102 loc) · 3.61 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
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
<?php
/**
* KCSU website widgets
*
* @package KCSU
* @file custom_widgets.php
* @author Conor Burgess <Burgess.Conor@gmail.com>
* @license BSD 3-Clause
*
*/
function kcsu_coming_soon($timeframe)
{
$output = "<!-- Events -->
<div id=\"EventsColumn\">
<h2>Coming Up</h2>
<ul class=\"posts-list events\">" . "\n";
$events = kcsu_get_upcoming_events(date('Ymd', strtotime($timeframe)));
foreach ($events as $event)
{
$output .= string_format(
'<li><!-- {id} --><a href="{link}" title="{title}">{title}</a> <span class="aux date">{date}</span><span class="aux"> - </span><span class="aux location">{location}</span></li>',
$event
) . "\n";
}
$output .= "
</ul>
</div>";
return $output;
}
function kcsu_coming_soon_shortcode_func( $atts )
{
$a = shortcode_atts( array(
'timeframe' => '+2 months',
), $atts );
return kcsu_coming_soon( $a['timeframe'] );
}
add_shortcode( 'kcsu_coming_soon', 'kcsu_coming_soon_shortcode_func' );
/**
* Adds Events widget.
*/
class KCSU_Events_Widget extends WP_Widget {
/**
* Register widget with WordPress.
*/
function __construct()
{
parent::__construct(
'kcsu_events_widget', // Base ID
'Coming Up', // Name
array( 'description' => 'KCSU Events Widget', ) // 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 )
{
echo kcsu_coming_soon($instance['timelimit']);
}
/**
* Back-end widget form.
*
* @see WP_Widget::form()
*
* @param array $instance Previously saved values from database.
*/
public function form( $instance ) {
$timelimit = !empty( $instance['timelimit'] ) ? $instance['timelimit'] : '+2 months';
?>
<p>
<label for="<?php echo $this->get_field_id( 'timelimit' ); ?>">Time Limit:</label>
<input class="widefat" id="<?php echo $this->get_field_id( 'timelimit' ); ?>" name="<?php echo $this->get_field_name( 'timelimit' ); ?>" type="text" value="<?php echo esc_attr( $timelimit ); ?>">
</p>
<?php
}
/**
* 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 = array();
$instance['timelimit'] = ( ! empty( $new_instance['timelimit'] ) ) ? strip_tags( $new_instance['timelimit'] ) : '+2 months';
return $instance;
}
} // class KCSU_Events_Widget
function kcsu_register_widgets()
{
register_widget('KCSU_Events_Widget');
}
add_action( 'widgets_init', 'kcsu_register_widgets' );
?>