PluginProbe
Polylang / 3.7.7
Polylang v3.7.7
3.8.9 3.8.8 3.8.7 3.8.6 3.8.5 3.8.4 3.8.3 2.7 2.7.0.1 2.7.1 2.7.2 2.7.3 2.7.4 2.8 2.8.1 2.8.2 2.8.3 2.8.4 2.9 2.9.1 2.9.2 3.0 3.0.1 3.0.2 3.0.3 All 233 releases
← All changes | include/widget-languages.php +39 -3 3.0.23.7.7 View file →
@@ -6,8 +6,19 @@
6 6 /**
7 7 * The language switcher widget
8 8 *
9 9 * @since 0.1
10 + *
11 + * @extends WP_Widget<T>
12 + * @phpstan-template T of array{
13 + * title: string,
14 + * dropdown: 0|1,
15 + * show_names: 0|1,
16 + * show_flags: 0|1,
17 + * force_home: 0|1,
18 + * hide_current: 0|1,
19 + * hide_if_no_translation: 0|1
20 + * }
10 21 */
11 22 class PLL_Widget_Languages extends WP_Widget {
12 23
13 24 /**
@@ -33,14 +44,34 @@
33 44 *
34 45 * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget.
35 46 * @param array $instance The settings for the particular instance of the widget
36 47 * @return void
48 + *
49 + * @phpstan-param array{
50 + * name: string,
51 + * id: string,
52 + * description: string,
53 + * class: string,
54 + * before_widget: string,
55 + * after_widget: string,
56 + * before_title: string,
57 + * after_title: string,
58 + * before_sidebar: string,
59 + * after_sidebar: string,
60 + * show_in_rest: boolean,
61 + * widget_id: string,
62 + * widget_name: string
63 + * } $args
64 + * @phpstan-param T $instance
37 65 */
38 66 public function widget( $args, $instance ) {
39 67 // Sets a unique id for dropdown.
40 - $instance['dropdown'] = empty( $instance['dropdown'] ) ? 0 : $args['widget_id'];
68 + $instance['dropdown'] = empty( $instance['dropdown'] ) ? 0 : $this->id;
69 + $instance['echo'] = 0;
70 + $instance['raw'] = 0;
71 + $list = pll_the_languages( $instance );
41 72
42 - if ( $list = pll_the_languages( array_merge( $instance, array( 'echo' => 0 ) ) ) ) {
73 + if ( $list ) {
43 74 $title = empty( $instance['title'] ) ? '' : $instance['title'];
44 75
45 76 /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
46 77 $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
@@ -66,9 +97,9 @@
66 97 /** This filter is documented in wp-includes/widgets/class-wp-nav-menu-widget.php */
67 98 $format = apply_filters( 'navigation_widgets_format', $format );
68 99
69 100 if ( 'html5' === $format ) {
70 - echo '<nav role="navigation" aria-label="' . esc_attr( $aria_label ) . '">';
101 + echo '<nav aria-label="' . esc_attr( $aria_label ) . '">';
71 102 }
72 103
73 104 echo "<ul>\n" . $list . "</ul>\n"; // phpcs:ignore WordPress.Security.EscapeOutput
74 105
@@ -88,8 +119,11 @@
88 119 *
89 120 * @param array $new_instance New settings for this instance as input by the user via form()
90 121 * @param array $old_instance Old settings for this instance
91 122 * @return array Settings to save or bool false to cancel saving
123 + *
124 + * @phpstan-param T $new_instance
125 + * @phpstan-param T $old_instance
92 126 */
93 127 public function update( $new_instance, $old_instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
94 128 $instance = array( 'title' => sanitize_text_field( $new_instance['title'] ) );
95 129 foreach ( array_keys( PLL_Switcher::get_switcher_options( 'widget' ) ) as $key ) {
@@ -105,8 +139,10 @@
105 139 * @since 0.4
106 140 *
107 141 * @param array $instance Current settings.
108 142 * @return string
143 + *
144 + * @phpstan-param T $instance
109 145 */
110 146 public function form( $instance ) {
111 147 // Default values
112 148 $instance = wp_parse_args( (array) $instance, array_merge( array( 'title' => '' ), PLL_Switcher::get_switcher_options( 'widget', 'default' ) ) );