PluginProbe
Friends / 2.7.4
Friends v2.7.4
4.3.2 4.3.1 4.3.0 4.2.2 4.2.1 4.2.0 4.1.0 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.0 2.9.1 All 88 releases
friends / widgets / class-widget-post-formats.php

class-widget-post-formats.php in Friends 2.7.4, at widgets/class-widget-post-formats.php

155 lines 5.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Friends Header Widget
4 *
5 * A widget that allows you to show post formats lins on the friends sidebar.
6 *
7 * @package Friends
8 * @since 1.0
9 */
10
11 namespace Friends;
12
13 /**
14 * This is the class for the Friends Post Formats Widget.
15 *
16 * @package Friends
17 * @author Alex Kirk
18 */
19 class Widget_Post_Formats extends \WP_Widget {
20 /**
21 * Constructor
22 */
23 public function __construct() {
24 parent::__construct(
25 'friends-widget-post-formats',
26 __( 'Post Formats', 'friends' ),
27 array(
28 'description' => __( 'Show post formats in the sidebar.', 'friends' ),
29 )
30 );
31 }
32
33 /**
34 * Render the widget.
35 *
36 * @param array $args Sidebar arguments.
37 * @param array $instance Widget instance settings.
38 */
39 public function widget( $args, $instance ) {
40 $instance = wp_parse_args( $instance, $this->defaults() );
41 $friends = Friends::get_instance();
42
43 echo wp_kses( $args['before_widget'], 'post' );
44 ?>
45 <details class="accordion" open>
46 <summary class="accordion-header">
47 <?php
48 if ( ! empty( $instance['title'] ) ) {
49 echo wp_kses( $args['before_title'] . $instance['title'] . $args['after_title'], 'post' );
50 }
51 ?>
52 </summary>
53 <ul class="friends-post-formats menu menu-nav accordion-body">
54 <li class="menu-item"><a href="<?php echo esc_attr( home_url( '/friends/' ) ); ?>"><?php _ex( 'All', 'all posts', 'friends' ); ?></a></li>
55 <?php
56 foreach ( get_post_format_strings() as $slug => $title ) :
57
58 if ( ! isset( $instance[ 'show_post_format_' . $slug ] ) || ! $instance[ 'show_post_format_' . $slug ] ) {
59 continue;
60 }
61 if ( ! isset( $instance[ 'post_format_title_' . $slug ] ) ) {
62 $instance[ 'post_format_title_' . $slug ] = $title;
63 }
64 ?>
65 <li class="menu-item"><a href="<?php echo esc_attr( home_url( '/friends/type/' . $slug . '/' ) ); ?>"> <?php echo esc_attr( $instance[ 'post_format_title_' . $slug ] ); ?></a></li>
66 <?php endforeach; ?>
67 </ul>
68 </details>
69 <?php
70
71 echo wp_kses( $args['after_widget'], 'post' );
72 }
73
74 /**
75 * Widget configuration form.
76 *
77 * @param array $instance The current settings.
78 */
79 public function form( $instance ) {
80 $instance = array_merge( $this->defaults(), $instance );
81 ?>
82 <p>
83 <label><?php /* phpcs:ignore WordPress.WP.I18n.MissingArgDomain */ esc_html_e( 'Title' ); ?><br/>
84 <input class="widefat" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['title'] ); ?>" />
85 </label>
86 </p>
87 <p><?php esc_html_e( 'Show Post Format Links:', 'friends' ); ?>
88 <ul>
89 <?php
90 foreach ( get_post_format_strings() as $slug => $title ) :
91 if ( ! isset( $instance[ 'post_format_title_' . $slug ] ) ) {
92 $instance[ 'post_format_title_' . $slug ] = $title;
93 }
94 ?>
95 <li><label><input id="<?php echo esc_attr( $this->get_field_id( 'show_post_format_' . $slug ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'show_post_format_' . $slug ) ); ?>" type="checkbox" value="1"<?php checked( isset( $instance[ 'show_post_format_' . $slug ] ) && $instance[ 'show_post_format_' . $slug ] ); ?> /> <?php echo esc_html( $title ); ?></label><br/>
96 <input id="<?php echo esc_attr( $this->get_field_id( 'post_format_title_' . $slug ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'post_format_title_' . $slug ) ); ?>" type="text" value="<?php echo esc_attr( $instance[ 'post_format_title_' . $slug ] ); ?>" placeholder="<?php echo esc_attr( $title ); ?>" /></li>
97 <?php endforeach; ?>
98 </ul></p>
99 <?php
100
101 }
102
103 /**
104 * Update widget configuration.
105 *
106 * @param array $new_instance New settings.
107 * @param array $old_instance Old settings.
108 * @return array Sanitized instance settings.
109 */
110 public function update( $new_instance, $old_instance ) {
111 $instance = array();
112 $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
113 $instance['title'] = apply_filters( 'wptexturize', $instance['title'] );
114 $instance['title'] = apply_filters( 'convert_chars', $instance['title'] );
115
116 foreach ( get_post_format_strings() as $slug => $title ) {
117 $instance[ 'post_format_title_' . $slug ] = ( ! empty( $new_instance[ 'post_format_title_' . $slug ] ) ) ? strip_tags( $new_instance[ 'post_format_title_' . $slug ] ) : $title;
118 if ( $new_instance[ 'show_post_format_' . $slug ] ) {
119 $instance[ 'show_post_format_' . $slug ] = true;
120 } else {
121 $instance[ 'show_post_format_' . $slug ] = false;
122 }
123 }
124 return $instance;
125 }
126
127 /**
128 * Return an associative array of default values
129 *
130 * These values are used in new widgets.
131 *
132 * @return array Array of default values for the Widget's options
133 */
134 public function defaults() {
135 $instance = array(
136 'title' => __( 'Filter', 'friends' ),
137 );
138
139 foreach ( get_post_format_strings() as $slug => $title ) {
140 $t = 'post_format_title_' . $slug;
141 $instance[ $t ] = ( ! empty( $new_instance[ $t ] ) ) ? strip_tags( $new_instance[ $t ] ) : $title;
142 $instance[ 'show_post_format_' . $slug ] = in_array( $slug, array( 'standard', 'status', 'image', 'video' ) );
143 }
144
145 return $instance;
146 }
147
148 /**
149 * Register this widget.
150 */
151 public static function register() {
152 register_widget( __CLASS__ );
153 }
154 }
155