PluginProbe
Super RSS Reader – Add attractive RSS Feed Widget / 4.7
Super RSS Reader – Add attractive RSS Feed Widget v4.7
trunk 0.8 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 3.0 3.1 3.2 4.0 4.0.1 4.1 4.2 4.3 4.4 4.4.1 4.5 4.6 4.7 4.8 All 33 releases
← All changes | includes/widget-admin.php +134 -112 4.54.7 View file →
@@ -44,11 +44,11 @@
44 44 public function update( $new_instance, $old_instance ){
45 45
46 46 $instance = $old_instance;
47 47
48 - $instance[ 'title' ] = stripslashes( $new_instance['title'] );
49 - $instance[ 'urls' ] = stripslashes( $new_instance['urls']) ;
50 - $instance[ 'tab_titles' ] = stripslashes( $new_instance['tab_titles'] );
48 + $instance[ 'title' ] = sanitize_text_field( $new_instance['title'] );
49 + $instance[ 'urls' ] = sanitize_textarea_field( $new_instance['urls'] ) ;
50 + $instance[ 'tab_titles' ] = wp_kses_post( $new_instance['tab_titles'] );
51 51
52 52 $instance[ 'count' ] = intval( $new_instance['count'] );
53 53 $instance[ 'show_date' ] = intval( isset( $new_instance['show_date'] ) ? $new_instance['show_date'] : 0 );
54 54 $instance[ 'show_desc' ] = intval( isset( $new_instance['show_desc'] ) ? $new_instance['show_desc'] : 0 );
@@ -55,24 +55,25 @@
55 55 $instance[ 'show_author' ] = intval( isset( $new_instance['show_author'] ) ? $new_instance['show_author'] : 0 );
56 56 $instance[ 'show_thumb' ] = intval( isset( $new_instance['show_thumb'] ) ? $new_instance['show_thumb'] : 0 );
57 57 $instance[ 'strip_desc' ] = intval( $new_instance['strip_desc'] );
58 58 $instance[ 'strip_title' ] = intval( $new_instance['strip_title'] );
59 - $instance[ 'date_format' ] = stripslashes( $new_instance['date_format'] );
60 - $instance[ 'order_by' ] = stripslashes( $new_instance['order_by'] );
61 - $instance[ 'read_more' ] = stripslashes( $new_instance['read_more'] );
59 + $instance[ 'date_format' ] = sanitize_text_field( $new_instance['date_format'] );
60 + $instance[ 'date_timezone' ] = sanitize_text_field( $new_instance['date_timezone'] );
61 + $instance[ 'order_by' ] = sanitize_text_field( $new_instance['order_by'] );
62 + $instance[ 'read_more' ] = sanitize_text_field( $new_instance['read_more'] );
62 63 $instance[ 'add_nofollow' ] = intval( isset( $new_instance['add_nofollow'] ) ? $new_instance['add_nofollow'] : 0 );
63 64 $instance[ 'open_newtab' ] = intval( isset( $new_instance['open_newtab'] ) ? $new_instance['open_newtab'] : 0 );
64 65 $instance[ 'rich_desc' ] = intval( isset( $new_instance['rich_desc'] ) ? $new_instance['rich_desc'] : 0 );
65 - $instance[ 'desc_type' ] = stripslashes( $new_instance['desc_type'] );
66 - $instance[ 'thumbnail_position' ] = stripslashes( $new_instance['thumbnail_position'] );
67 - $instance[ 'thumbnail_size' ] = stripslashes( $new_instance['thumbnail_size'] );
68 - $instance[ 'thumbnail_default' ] = stripslashes( $new_instance['thumbnail_default'] );
69 - $instance[ 'no_feed_text' ] = stripslashes( $new_instance['no_feed_text'] );
66 + $instance[ 'desc_type' ] = sanitize_text_field( $new_instance['desc_type'] );
67 + $instance[ 'thumbnail_position' ] = sanitize_text_field( $new_instance['thumbnail_position'] );
68 + $instance[ 'thumbnail_size' ] = sanitize_text_field( $new_instance['thumbnail_size'] );
69 + $instance[ 'thumbnail_default' ] = sanitize_text_field( $new_instance['thumbnail_default'] );
70 + $instance[ 'no_feed_text' ] = wp_kses_post( $new_instance['no_feed_text'] );
70 71
71 - $instance[ 'color_style' ] = stripslashes( $new_instance['color_style']);
72 - $instance[ 'display_type' ] = stripslashes( $new_instance['display_type']);
73 - $instance[ 'visible_items' ] = intval( $new_instance['visible_items']);
74 - $instance[ 'ticker_speed' ] = intval( $new_instance['ticker_speed']);
72 + $instance[ 'color_style' ] = sanitize_text_field( $new_instance['color_style']);
73 + $instance[ 'display_type' ] = sanitize_text_field( $new_instance['display_type']);
74 + $instance[ 'visible_items' ] = intval( $new_instance['visible_items'] );
75 + $instance[ 'ticker_speed' ] = intval( $new_instance['ticker_speed'] );
75 76
76 77 return $instance;
77 78 }
78 79
@@ -80,36 +81,37 @@
80 81 public function form( $instance ){
81 82
82 83 $instance = wp_parse_args( (array) $instance, SRR_Options::defaults() );
83 84
84 - $title = htmlspecialchars( isset( $instance['title'] ) ? $instance[ 'title' ] : '' );
85 - $urls = htmlspecialchars($instance['urls']);
86 - $tab_titles = htmlspecialchars($instance['tab_titles']);
85 + $title = isset( $instance['title'] ) ? $instance[ 'title' ] : '';
86 + $urls = $instance['urls'];
87 + $tab_titles = $instance['tab_titles'];
87 88
88 - $count = intval($instance['count']);
89 - $show_date = intval($instance['show_date']);
90 - $show_desc = intval($instance['show_desc']);
91 - $show_author = intval($instance['show_author']);
92 - $show_thumb = intval($instance['show_thumb']);
93 - $open_newtab = intval($instance['open_newtab']);
94 - $add_nofollow = intval($instance['add_nofollow']);
95 - $strip_desc = intval($instance['strip_desc']);
96 - $strip_title = intval($instance['strip_title']);
97 - $date_format = htmlspecialchars($instance['date_format']);
98 - $order_by = htmlspecialchars($instance['order_by']);
99 - $read_more = htmlspecialchars($instance['read_more']);
100 - $rich_desc = intval($instance['rich_desc']);
101 - $desc_type = htmlspecialchars($instance['desc_type']);
102 - $thumbnail_position = htmlspecialchars($instance['thumbnail_position']);
103 - $thumbnail_size = htmlspecialchars($instance['thumbnail_size']);
104 - $thumbnail_default = htmlspecialchars($instance['thumbnail_default']);
105 - $no_feed_text = htmlspecialchars($instance['no_feed_text']);
89 + $count = $instance['count'];
90 + $show_date = $instance['show_date'];
91 + $show_desc = $instance['show_desc'];
92 + $show_author = $instance['show_author'];
93 + $show_thumb = $instance['show_thumb'];
94 + $open_newtab = $instance['open_newtab'];
95 + $add_nofollow = $instance['add_nofollow'];
96 + $strip_desc = $instance['strip_desc'];
97 + $strip_title = $instance['strip_title'];
98 + $date_format = $instance['date_format'];
99 + $date_timezone = $instance['date_timezone'];
100 + $order_by = $instance['order_by'];
101 + $read_more = $instance['read_more'];
102 + $rich_desc = $instance['rich_desc'];
103 + $desc_type = $instance['desc_type'];
104 + $thumbnail_position = $instance['thumbnail_position'];
105 + $thumbnail_size = $instance['thumbnail_size'];
106 + $thumbnail_default = $instance['thumbnail_default'];
107 + $no_feed_text = $instance['no_feed_text'];
106 108
107 - $color_style = stripslashes($instance['color_style']);
108 - $display_type = stripslashes($instance['display_type']);
109 - $visible_items = intval($instance['visible_items']);
110 - $ticker_speed = intval($instance['ticker_speed']);
111 -
109 + $color_style = $instance['color_style'];
110 + $display_type = $instance['display_type'];
111 + $visible_items = $instance['visible_items'];
112 + $ticker_speed = $instance['ticker_speed'];
113 +
112 114 $option_lists = SRR_Options::select_options();
113 115
114 116 // Replacing commas with new lines
115 117 $urls = str_replace( ',', "\n", $urls );
@@ -119,56 +121,56 @@
119 121
120 122 <div class="srr_settings">
121 123
122 124 <div class="srr_row">
123 - <div class="srr_label srr_xsm"><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title', 'super-rss-reader' ); ?></label></div>
124 - <div class="srr_field"><input id="<?php echo $this->get_field_id('title');?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" class="widefat"/></div>
125 + <div class="srr_label srr_xsm"><label for="<?php echo esc_attr( $this->get_field_id('title') ); ?>"><?php esc_html_e( 'Title', 'super-rss-reader' ); ?></label></div>
126 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('title') ); ?>" name="<?php echo esc_attr( $this->get_field_name('title') ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" class="widefat"/></div>
125 127 </div>
126 128
127 129 <div class="srr_row">
128 - <div class="srr_label srr_xsm"><label for="<?php echo $this->get_field_id('urls'); ?>"><?php _e( 'URL(s)', 'super-rss-reader' ); ?></label></div>
129 - <div class="srr_field"><textarea id="<?php echo $this->get_field_id('urls');?>" name="<?php echo $this->get_field_name('urls'); ?>" class="widefat"><?php echo $urls; ?></textarea>
130 - <small class="srr_small_text"><?php _e( 'Can enter multiple RSS/atom feed URLs in new line', 'super-rss-reader' ); ?></small></div>
130 + <div class="srr_label srr_xsm"><label for="<?php echo esc_attr( $this->get_field_id('urls') ); ?>"><?php esc_html_e( 'URL(s)', 'super-rss-reader' ); ?></label></div>
131 + <div class="srr_field"><textarea id="<?php echo esc_attr( $this->get_field_id('urls') ); ?>" name="<?php echo esc_attr( $this->get_field_name('urls') ); ?>" class="widefat"><?php echo esc_html( $urls ); ?></textarea>
132 + <small class="srr_small_text"><?php esc_html_e( 'Can enter multiple RSS/atom feed URLs in new line', 'super-rss-reader' ); ?></small></div>
131 133 </div>
132 134
133 135 <div class="srr_row">
134 - <div class="srr_label srr_xsm"><label for="<?php echo $this->get_field_id('tab_titles'); ?>"><?php _e( 'Tab titles', 'super-rss-reader' ); ?></label></div>
135 - <div class="srr_field"><textarea id="<?php echo $this->get_field_id('tab_titles');?>" name="<?php echo $this->get_field_name('tab_titles'); ?>" class="widefat"><?php echo $tab_titles; ?></textarea>
136 - <small class="srr_small_text"><?php _e( 'Enter corresponding tab titles in new line. Leave empty to take from feed.', 'super-rss-reader' ); ?></small></div>
136 + <div class="srr_label srr_xsm"><label for="<?php echo esc_attr( $this->get_field_id('tab_titles') ); ?>"><?php esc_html_e( 'Tab titles', 'super-rss-reader' ); ?></label></div>
137 + <div class="srr_field"><textarea id="<?php echo esc_attr( $this->get_field_id('tab_titles') ); ?>" name="<?php echo esc_attr( $this->get_field_name('tab_titles') ); ?>" class="widefat"><?php echo esc_html( $tab_titles ); ?></textarea>
138 + <small class="srr_small_text"><?php esc_html_e( 'Enter corresponding tab titles in new line. Leave empty to take from feed.', 'super-rss-reader' ); ?></small></div>
137 139 </div>
138 140
139 141 <ul class="srr_tab_list">
140 - <li><a href="#" data-tab="general" class="active"><?php _e( 'General', 'super-rss-reader' ); ?></a></li>
141 - <li><a href="#" data-tab="content"><?php _e( 'Content', 'super-rss-reader' ); ?></a></li>
142 - <li><a href="#" data-tab="display"><?php _e( 'Display', 'super-rss-reader' ); ?></a></li>
143 - <li><a href="#" data-tab="filter"><?php _e( 'Filter', 'super-rss-reader' ); ?><span class="srr_pro_tag">PRO</span></a></li>
142 + <li><a href="#" data-tab="general" class="active"><?php esc_html_e( 'General', 'super-rss-reader' ); ?></a></li>
143 + <li><a href="#" data-tab="content"><?php esc_html_e( 'Content', 'super-rss-reader' ); ?></a></li>
144 + <li><a href="#" data-tab="display"><?php esc_html_e( 'Display', 'super-rss-reader' ); ?></a></li>
145 + <li><a href="#" data-tab="filter"><?php esc_html_e( 'Filter', 'super-rss-reader' ); ?><span class="srr_pro_tag">PRO</span></a></li>
144 146 </ul>
145 147
146 148 <section data-tab-id="general" class="active">
147 149
148 150 <div class="srr_row">
149 - <div class="srr_label"><label for="<?php echo $this->get_field_id('count');?>"><?php _e( 'Total items to show', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'Number of feed items to be displayed', 'super-rss-reader' ) ); ?></div>
150 - <div class="srr_field"><input id="<?php echo $this->get_field_id('count');?>" name="<?php echo $this->get_field_name('count'); ?>" type="number" value="<?php echo $count; ?>" class="widefat" /></div>
151 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('count') ); ?>"><?php esc_html_e( 'Total items to show', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'Number of feed items to be displayed', 'super-rss-reader' ) ); ?></div>
152 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('count') ); ?>" name="<?php echo esc_attr( $this->get_field_name('count') ); ?>" type="number" value="<?php echo esc_attr( $count ); ?>" class="widefat" /></div>
151 153 </div>
152 154
153 155 <div class="srr_row">
154 - <div class="srr_label"><label for="<?php echo $this->get_field_id('show_desc'); ?>"><?php _e( 'Show Description', 'super-rss-reader' ); ?></label></div>
155 - <div class="srr_field"><input id="<?php echo $this->get_field_id('show_desc'); ?>" type="checkbox" name="<?php echo $this->get_field_name('show_desc'); ?>" value="1" <?php echo $show_desc == "1" ? 'checked="checked"' : ""; ?> /></div>
156 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('show_desc') ); ?>"><?php esc_html_e( 'Show Description', 'super-rss-reader' ); ?></label></div>
157 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('show_desc') ); ?>" type="checkbox" name="<?php echo esc_attr( $this->get_field_name('show_desc') ); ?>" value="1" <?php echo $show_desc == "1" ? 'checked="checked"' : ""; ?> /></div>
156 158 </div>
157 159
158 160 <div class="srr_row">
159 - <div class="srr_label"><label for="<?php echo $this->get_field_id('show_date'); ?>"><?php _e( 'Show Date', 'super-rss-reader' ); ?></label></div>
160 - <div class="srr_field"><input id="<?php echo $this->get_field_id('show_date'); ?>" type="checkbox" name="<?php echo $this->get_field_name('show_date'); ?>" value="1" <?php echo $show_date == "1" ? 'checked="checked"' : ""; ?> /></div>
161 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('show_date') ); ?>"><?php esc_html_e( 'Show Date', 'super-rss-reader' ); ?></label></div>
162 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('show_date') ); ?>" type="checkbox" name="<?php echo esc_attr( $this->get_field_name('show_date') ); ?>" value="1" <?php echo $show_date == "1" ? 'checked="checked"' : ""; ?> /></div>
161 163 </div>
162 164
163 165 <div class="srr_row">
164 - <div class="srr_label"><label for="<?php echo $this->get_field_id('show_author'); ?>"><?php _e( 'Show Author', 'super-rss-reader' ); ?></label></div>
165 - <div class="srr_field"><input id="<?php echo $this->get_field_id('show_author'); ?>" type="checkbox" name="<?php echo $this->get_field_name('show_author'); ?>" value="1" <?php echo $show_author == "1" ? 'checked="checked"' : ""; ?> /></div>
166 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('show_author') ); ?>"><?php esc_html_e( 'Show Author', 'super-rss-reader' ); ?></label></div>
167 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('show_author') ); ?>" type="checkbox" name="<?php echo esc_attr( $this->get_field_name('show_author') ); ?>" value="1" <?php echo $show_author == "1" ? 'checked="checked"' : ""; ?> /></div>
166 168 </div>
167 169
168 170 <div class="srr_row">
169 - <div class="srr_label"><label for="<?php echo $this->get_field_id('show_thumb'); ?>"><?php _e( 'Show thumbnail if present', 'super-rss-reader' ); ?></label></div>
170 - <div class="srr_field"><input id="<?php echo $this->get_field_id('show_thumb'); ?>" type="checkbox" name="<?php echo $this->get_field_name('show_thumb'); ?>" value="1" <?php echo $show_thumb == "1" ? 'checked="checked"' : ""; ?> /></div>
171 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('show_thumb') ); ?>"><?php esc_html_e( 'Show thumbnail if present', 'super-rss-reader' ); ?></label></div>
172 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('show_thumb') ); ?>" type="checkbox" name="<?php echo esc_attr( $this->get_field_name('show_thumb') ); ?>" value="1" <?php echo $show_thumb == "1" ? 'checked="checked"' : ""; ?> /></div>
171 173 </div>
172 174 </section>
173 175
174 176 <section data-tab-id="content">
@@ -173,24 +175,24 @@
173 175
174 176 <section data-tab-id="content">
175 177
176 178 <div class="srr_row">
177 - <div class="srr_label"><label for="<?php echo $this->get_field_id('add_nofollow'); ?>"><?php _e( 'Add "no follow" attribute to links', 'super-rss-reader' ); ?></label></div>
178 - <div class="srr_field"><input id="<?php echo $this->get_field_id('add_nofollow'); ?>" type="checkbox" name="<?php echo $this->get_field_name('add_nofollow'); ?>" value="1" <?php echo $add_nofollow == "1" ? 'checked="checked"' : ""; ?> /></div>
179 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('add_nofollow') ); ?>"><?php esc_html_e( 'Add "no follow" attribute to links', 'super-rss-reader' ); ?></label></div>
180 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('add_nofollow') ); ?>" type="checkbox" name="<?php echo esc_attr( $this->get_field_name('add_nofollow') ); ?>" value="1" <?php echo $add_nofollow == "1" ? 'checked="checked"' : ""; ?> /></div>
179 181 </div>
180 182
181 183 <div class="srr_row">
182 - <div class="srr_label"><label for="<?php echo $this->get_field_id('open_newtab'); ?>"><?php _e( 'Open links in new tab', 'super-rss-reader' ); ?></label></div>
183 - <div class="srr_field"><input id="<?php echo $this->get_field_id('open_newtab'); ?>" type="checkbox" name="<?php echo $this->get_field_name('open_newtab'); ?>" value="1" <?php echo $open_newtab == "1" ? 'checked="checked"' : ""; ?> /></div>
184 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('open_newtab') ); ?>"><?php esc_html_e( 'Open links in new tab', 'super-rss-reader' ); ?></label></div>
185 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('open_newtab') ); ?>" type="checkbox" name="<?php echo esc_attr( $this->get_field_name('open_newtab') ); ?>" value="1" <?php echo $open_newtab == "1" ? 'checked="checked"' : ""; ?> /></div>
184 186 </div>
185 187
186 188 <div class="srr_row">
187 - <div class="srr_label"><label for="<?php echo $this->get_field_id('strip_title'); ?>"><?php _e( 'Trim title to words', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The number of words to be displayed. Use 0 to disable trimming', 'super-rss-reader' ) ); ?></div>
188 - <div class="srr_field"><input id="<?php echo $this->get_field_id('strip_title');?>" name="<?php echo $this->get_field_name('strip_title'); ?>" type="number" value="<?php echo $strip_title; ?>" class="widefat" /></div>
189 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('strip_title') ); ?>"><?php esc_html_e( 'Trim title to words', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The number of words to be displayed. Use 0 to disable trimming', 'super-rss-reader' ) ); ?></div>
190 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('strip_title') ); ?>" name="<?php echo esc_attr( $this->get_field_name('strip_title') ); ?>" type="number" value="<?php echo esc_attr( $strip_title ); ?>" class="widefat" /></div>
189 191 </div>
190 192
191 193 <div class="srr_row">
192 - <div class="srr_label"><label for="<?php echo $this->get_field_id('order_by');?>"><?php _e( 'Order feed items by', 'super-rss-reader' ); ?></label></div>
194 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('order_by') ); ?>"><?php esc_html_e( 'Order feed items by', 'super-rss-reader' ); ?></label></div>
193 195 <div class="srr_field">
194 196 <?php
195 197 echo '<select name="' . $this->get_field_name('order_by') . '" id="' . $this->get_field_id('order_by') . '">';
196 198 foreach( $option_lists[ 'order_by' ] as $k => $v ){
@@ -201,23 +203,23 @@
201 203 </div>
202 204 </div>
203 205
204 206 <div class="srr_row">
205 - <div class="srr_label"><label for="<?php echo $this->get_field_id('date_format'); ?>"><?php _e( 'Date format', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The format of the feed item date.', 'super-rss-reader' ) ); ?></div>
206 - <div class="srr_field"><input id="<?php echo $this->get_field_id('date_format'); ?>" name="<?php echo $this->get_field_name('date_format'); ?>" type="text" value="<?php echo $date_format; ?>" class="widefat" />
207 - <small class="srr_small_text"><a href="https://wordpress.org/support/article/formatting-date-and-time/" target="_blank"><?php _e( 'Refer format codes here', 'super-rss-reader' ); ?>.</a> <?php _e( 'Default: ', 'super-rss-reader' ); ?> <code>j F Y</code> <?php _e( 'or Type <code>relative</code> for relative format (example 2 days ago)', 'super-rss-reader' ); ?></small>
207 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('date_format') ); ?>"><?php esc_html_e( 'Date format', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The format of the feed item date.', 'super-rss-reader' ) ); ?></div>
208 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('date_format') ); ?>" name="<?php echo esc_attr( $this->get_field_name('date_format') ); ?>" type="text" value="<?php echo esc_attr( $date_format ); ?>" class="widefat" />
209 + <small class="srr_small_text"><a href="https://wordpress.org/support/article/formatting-date-and-time/" target="_blank"><?php esc_html_e( 'Refer format codes here', 'super-rss-reader' ); ?></a> <?php echo wp_kses( __( 'Default: <code>j F Y</code> or type <code>relative</code> for relative format (example 2 days ago)', 'super-rss-reader' ), array( 'code' => array() ) ); ?></small>
208 210 </div>
209 211 </div>
210 212
211 - <h4><?php _e( 'Description', 'super-rss-reader' ); ?></h4>
213 + <h4><?php esc_html_e( 'Description', 'super-rss-reader' ); ?></h4>
212 214
213 215 <div class="srr_row">
214 - <div class="srr_label"><label for="<?php echo $this->get_field_id('desc_type');?>"><?php _e( 'Description to prefer', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'Sometimes feed items have both summary and the full post content. Select the type to prefer.', 'super-rss-reader' ) ); ?></div>
216 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('desc_type') ); ?>"><?php esc_html_e( 'Description to prefer', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'Sometimes feed items have both summary and the full post content. Select the type to prefer.', 'super-rss-reader' ) ); ?></div>
215 217 <div class="srr_field">
216 218 <?php
217 - echo '<select name="' . $this->get_field_name('desc_type') . '" id="' . $this->get_field_id('desc_type') . '">';
219 + echo '<select name="' . esc_attr( $this->get_field_name('desc_type') ) . '" id="' . esc_attr( $this->get_field_id('desc_type') ) . '">';
218 220 foreach( $option_lists[ 'desc_type' ] as $k => $v ){
219 - echo '<option value="' . $k . '" ' . selected( $desc_type, $k, false ) . '>' . $v . '</option>';
221 + echo '<option value="' . esc_attr( $k ) . '" ' . selected( $desc_type, $k, false ) . '>' . esc_html( $v ) . '</option>';
220 222 }
221 223 echo '</select>';
222 224 ?>
223 225 </div>
@@ -223,35 +225,35 @@
223 225 </div>
224 226 </div>
225 227
226 228 <div class="srr_row">
227 - <div class="srr_label"><label for="<?php echo $this->get_field_id('strip_desc');?>"><?php _e( 'Trim description to words', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The number of words to be displayed. Use 0 to disable trimming', 'super-rss-reader' ) ); ?></div>
228 - <div class="srr_field"><input id="<?php echo $this->get_field_id('strip_desc');?>" name="<?php echo $this->get_field_name('strip_desc'); ?>" type="number" value="<?php echo $strip_desc; ?>" class="widefat" /></div>
229 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('strip_desc') ); ?>"><?php esc_html_e( 'Trim description to words', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The number of words to be displayed. Use 0 to disable trimming', 'super-rss-reader' ) ); ?></div>
230 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('strip_desc') ); ?>" name="<?php echo esc_attr( $this->get_field_name('strip_desc') ); ?>" type="number" value="<?php echo esc_attr( $strip_desc ); ?>" class="widefat" /></div>
229 231 </div>
230 232
231 233 <div class="srr_row">
232 - <div class="srr_label"><label for="<?php echo $this->get_field_id('read_more'); ?>"><?php _e( 'Read more text', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'Leave blank to hide read more text', 'super-rss-reader' ) ); ?></div>
233 - <div class="srr_field"><input id="<?php echo $this->get_field_id('read_more'); ?>" name="<?php echo $this->get_field_name('read_more'); ?>" type="text" value="<?php echo $read_more; ?>" class="widefat" /></div>
234 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('read_more') ); ?>"><?php esc_html_e( 'Read more text', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'Leave blank to hide read more text', 'super-rss-reader' ) ); ?></div>
235 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('read_more') ); ?>" name="<?php echo esc_attr( $this->get_field_name('read_more') ); ?>" type="text" value="<?php echo esc_attr( $read_more ); ?>" class="widefat" /></div>
234 236 </div>
235 237
236 238 <div class="srr_row">
237 - <div class="srr_label"><label for="<?php echo $this->get_field_id('rich_desc'); ?>"><?php _e( 'Enable rich description', 'super-rss-reader' ); ?></label></div>
238 - <div class="srr_field"><input id="<?php echo $this->get_field_id('rich_desc'); ?>" type="checkbox" name="<?php echo $this->get_field_name('rich_desc'); ?>" value="1" <?php echo $rich_desc == "1" ? 'checked="checked"' : ""; ?> /></div>
239 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('rich_desc') ); ?>"><?php esc_html_e( 'Enable rich description', 'super-rss-reader' ); ?></label></div>
240 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('rich_desc') ); ?>" type="checkbox" name="<?php echo esc_attr( $this->get_field_name('rich_desc') ); ?>" value="1" <?php echo $rich_desc == "1" ? 'checked="checked"' : ""; ?> /></div>
239 241 </div>
240 242
241 243 <?php if( $rich_desc == 1 ): ?>
242 - <span class="srr_note"><?php _e( 'Note: You have enabled "Full/Rich HTML". If no description is present, then the full content will be displayed. Please make sure that the feed(s) are from trusted sources and do not contain any harmful scripts. If there are some alignment issues in the description, please use custom CSS to fix that.', 'super-rss-reader' ); ?></span>
244 + <span class="srr_note"><?php esc_html_e( 'Note: You have enabled "Full/Rich HTML". If no description is present, then the full content will be displayed. Please make sure that the feed(s) are from trusted sources and do not contain any harmful scripts. If there are some alignment issues in the description, please use custom CSS to fix that.', 'super-rss-reader' ); ?></span>
243 245 <?php endif; ?>
244 246
245 - <h4><?php _e( 'Thumbnail', 'super-rss-reader' ); ?></h4>
247 + <h4><?php esc_html_e( 'Thumbnail', 'super-rss-reader' ); ?></h4>
246 248
247 249 <div class="srr_row">
248 - <div class="srr_label"><label for="<?php echo $this->get_field_id('thumbnail_position');?>"><?php _e( 'Thumbnail position', 'super-rss-reader' ); ?></label></div>
250 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('thumbnail_position') ); ?>"><?php esc_html_e( 'Thumbnail position', 'super-rss-reader' ); ?></label></div>
249 251 <div class="srr_field">
250 252 <?php
251 - echo '<select name="' . $this->get_field_name('thumbnail_position') . '" id="' . $this->get_field_id('thumbnail_position') . '">';
253 + echo '<select name="' . esc_attr( $this->get_field_name('thumbnail_position') ) . '" id="' . esc_attr( $this->get_field_id('thumbnail_position') ) . '">';
252 254 foreach( $option_lists[ 'thumbnail_position' ] as $k => $v ){
253 - echo '<option value="' . $k . '" ' . selected( $thumbnail_position, $k, false ) . '>' . $v . '</option>';
255 + echo '<option value="' . esc_attr( $k ) . '" ' . selected( $thumbnail_position, $k, false ) . '>' . esc_html( $v ) . '</option>';
254 256 }
255 257 echo '</select>';
256 258 ?>
257 259 </div>
@@ -257,35 +259,54 @@
257 259 </div>
258 260 </div>
259 261
260 262 <div class="srr_row">
261 - <div class="srr_label"><label for="<?php echo $this->get_field_id('thumbnail_size'); ?>"><?php _e( 'Thumbnail size', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The size of the thumbnail including the units. Example 64px, 10%', 'super-rss-reader' ) ); ?></div>
262 - <div class="srr_field"><input id="<?php echo $this->get_field_id('thumbnail_size');?>" name="<?php echo $this->get_field_name('thumbnail_size'); ?>" type="text" value="<?php echo $thumbnail_size; ?>" class="widefat" /></div>
263 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('thumbnail_size') ); ?>"><?php esc_html_e( 'Thumbnail size', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The size of the thumbnail including the units. Example 64px, 10%', 'super-rss-reader' ) ); ?></div>
264 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('thumbnail_size') ); ?>" name="<?php echo esc_attr( $this->get_field_name('thumbnail_size') ); ?>" type="text" value="<?php echo esc_attr( $thumbnail_size ); ?>" class="widefat" /></div>
263 265 </div>
264 266
265 267 <div class="srr_row">
266 - <div class="srr_label"><label for="<?php echo $this->get_field_id('thumbnail_default'); ?>"><?php _e( 'Default thumbnail image', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The URL of the default thumbnail image if not present. Leave empty to skip thumbnail if not present.', 'super-rss-reader' ) ); ?></div>
267 - <div class="srr_field"><input id="<?php echo $this->get_field_id('thumbnail_default');?>" name="<?php echo $this->get_field_name('thumbnail_default'); ?>" type="text" value="<?php echo $thumbnail_default; ?>" class="widefat" /></div>
268 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('thumbnail_force') ); ?>"><?php esc_html_e( 'Fetch thumbnail from the page (feed URL) directly if not available.', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'If feed item does not have an image, then fetch it from the page directly. This feature is available in the PRO version', 'super-rss-reader' ) ); ?></div>
269 + <div class="srr_field">
270 + <select>
271 + <option disabled selected>No</option>
272 + <option disabled>When absent in feed item</option>
273 + <option disabled>Always</option>
274 + </select>
275 + <a class="srr_pro_tag" href="https://www.aakashweb.com/wordpress-plugins/super-rss-reader/?utm_source=admin&utm_medium=thumbnail&utm_campaign=srr-pro#pro" target="_blank" title="Upgrade to PRO version">PRO</a>
276 + </div>
268 277 </div>
269 278
270 - <h4><?php _e( 'Misc', 'super-rss-reader' ); ?></h4>
279 + <div class="srr_row">
280 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('thumbnail_default') ); ?>"><?php esc_html_e( 'Default thumbnail image', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The URL of the default thumbnail image if not present. Leave empty to skip thumbnail if not present.', 'super-rss-reader' ) ); ?></div>
281 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('thumbnail_default') ); ?>" name="<?php echo esc_attr( $this->get_field_name('thumbnail_default') ); ?>" type="text" value="<?php echo esc_attr( $thumbnail_default ); ?>" class="widefat" /></div>
282 + </div>
271 283
284 + <h4><?php esc_html_e( 'Misc', 'super-rss-reader' ); ?></h4>
285 +
272 286 <div class="srr_row">
273 - <div class="srr_label"><label for="<?php echo $this->get_field_id('no_feed_text'); ?>"><?php _e( 'No feed items text', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'Text to display when there are no feed items', 'super-rss-reader' ) ); ?></div>
274 - <div class="srr_field"><input id="<?php echo $this->get_field_id('no_feed_text');?>" name="<?php echo $this->get_field_name('no_feed_text'); ?>" type="text" value="<?php echo $no_feed_text; ?>" class="widefat" /></div>
287 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('date_timezone') ); ?>"><?php esc_html_e( 'Date timezone', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The timezone of the feed item date.', 'super-rss-reader' ) ); ?></div>
288 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('date_timezone') ); ?>" name="<?php echo esc_attr( $this->get_field_name('date_timezone') ); ?>" type="text" value="<?php echo esc_attr( $date_timezone ); ?>" class="widefat" />
289 + <small class="srr_small_text"><a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones" target="_blank"><?php esc_html_e( 'Refer timezone name here', 'super-rss-reader' ); ?>.</a> <?php esc_html_e( 'Example: ', 'super-rss-reader' ); ?> <code>Asia/Taipei</code> <?php esc_html_e( 'Default: ', 'super-rss-reader' ); ?> <code>UTC</code></small>
290 + </div>
275 291 </div>
276 292
293 + <div class="srr_row">
294 + <div class="srr_label"><label for="<?php echo esc_attr( $this->get_field_id('no_feed_text') ); ?>"><?php esc_html_e( 'No feed items text', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'Text to display when there are no feed items', 'super-rss-reader' ) ); ?></div>
295 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('no_feed_text') ); ?>" name="<?php echo esc_attr( $this->get_field_name('no_feed_text') ); ?>" type="text" value="<?php echo esc_attr( $no_feed_text ); ?>" class="widefat" /></div>
296 + </div>
297 +
277 298 </section>
278 299
279 300 <section data-tab-id="display">
280 301
281 302 <div class="srr_row">
282 - <div class="srr_label srr_sm"><label for="<?php echo $this->get_field_id('color_style');?>"><?php _e( 'Color theme', 'super-rss-reader' ); ?></label></div>
303 + <div class="srr_label srr_sm"><label for="<?php echo esc_attr( $this->get_field_id('color_style') ); ?>"><?php esc_html_e( 'Color theme', 'super-rss-reader' ); ?></label></div>
283 304 <div class="srr_field">
284 305 <?php
285 - echo '<select name="' . $this->get_field_name('color_style') . '" id="' . $this->get_field_id('color_style') . '">';
306 + echo '<select name="' . esc_attr( $this->get_field_name('color_style') ) . '" id="' . esc_attr( $this->get_field_id('color_style') ) . '">';
286 307 foreach( $option_lists[ 'color_style' ] as $k => $v ){
287 - echo '<option value="' . $k . '" ' . selected( $color_style, $k, false ) . '>' . $v . '</option>';
308 + echo '<option value="' . esc_attr( $k ) . '" ' . selected( $color_style, $k, false ) . '>' . esc_html( $v ) . '</option>';
288 309 }
289 310 echo '</select>';
290 311 ?>
291 312 </div>
@@ -291,14 +312,14 @@
291 312 </div>
292 313 </div>
293 314
294 315 <div class="srr_row">
295 - <div class="srr_label srr_sm"><label for="<?php echo $this->get_field_id('display_type');?>"><?php _e( 'Display type', 'super-rss-reader' ); ?></label></div>
316 + <div class="srr_label srr_sm"><label for="<?php echo esc_attr( $this->get_field_id('display_type') ); ?>"><?php esc_html_e( 'Display type', 'super-rss-reader' ); ?></label></div>
296 317 <div class="srr_field">
297 318 <?php
298 - echo '<select name="' . $this->get_field_name('display_type') . '" id="' . $this->get_field_id('display_type') . '">';
319 + echo '<select name="' . esc_attr( $this->get_field_name('display_type') ) . '" id="' . esc_attr( $this->get_field_id('display_type') ) . '">';
299 320 foreach( $option_lists[ 'display_type' ] as $k => $v ){
300 - echo '<option value="' . $k . '" ' . selected( $display_type, $k, false ) . '>' . $v . '</option>';
321 + echo '<option value="' . esc_attr( $k ) . '" ' . selected( $display_type, $k, false ) . '>' . esc_html( $v ) . '</option>';
301 322 }
302 323 echo '</select>';
303 324 ?>
304 325 </div>
@@ -304,17 +325,17 @@
304 325 </div>
305 326 </div>
306 327
307 328 <div class="srr_row">
308 - <div class="srr_label srr_sm"><label for="<?php echo $this->get_field_id('ticker_speed');?>"><?php _e( 'Ticker speed', 'super-rss-reader' ); ?></label></div>
309 - <div class="srr_field"><input id="<?php echo $this->get_field_id('ticker_speed');?>" name="<?php echo $this->get_field_name('ticker_speed'); ?>" type="number" value="<?php echo $ticker_speed; ?>" title="Speed of the ticker in seconds"/> seconds</div>
329 + <div class="srr_label srr_sm"><label for="<?php echo esc_attr( $this->get_field_id('ticker_speed') ); ?>"><?php esc_html_e( 'Ticker speed', 'super-rss-reader' ); ?></label></div>
330 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('ticker_speed') ); ?>" name="<?php echo esc_attr( $this->get_field_name('ticker_speed') ); ?>" type="number" value="<?php echo esc_attr( $ticker_speed ); ?>" title="Speed of the ticker in seconds"/> seconds</div>
310 331 </div>
311 332
312 333 <div class="srr_row">
313 - <div class="srr_label srr_sm"><label for="<?php echo $this->get_field_id('visible_items');?>"><?php _e( 'Widget height', 'super-rss-reader' ); ?><?php $this->tt( __( 'The height of the widget when display type is "ticker"', 'super-rss-reader' ) ); ?></label></div>
314 - <div class="srr_field"><input id="<?php echo $this->get_field_id('visible_items');?>" name="<?php echo $this->get_field_name('visible_items'); ?>" type="number" value="<?php echo $visible_items; ?>" /><br/>
315 - <small class="srr_small_text"><?php _e( 'Set value less than 20 to show visible feed items. Example: <b>5</b> items', 'super-rss-reader' ); ?></small></br>
316 - <small class="srr_small_text"><?php _e( 'Set value greater than 20 for fixed widget height. Example: <b>400</b> px', 'super-rss-reader' ); ?></small></div>
334 + <div class="srr_label srr_sm"><label for="<?php echo esc_attr( $this->get_field_id('visible_items') ); ?>"><?php esc_html_e( 'Widget height', 'super-rss-reader' ); ?><?php $this->tt( __( 'The height of the widget when display type is "ticker"', 'super-rss-reader' ) ); ?></label></div>
335 + <div class="srr_field"><input id="<?php echo esc_attr( $this->get_field_id('visible_items') ); ?>" name="<?php echo esc_attr( $this->get_field_name('visible_items') ); ?>" type="number" value="<?php echo esc_attr( $visible_items ); ?>" /><br/>
336 + <small class="srr_small_text"><?php esc_html_e( 'Set value less than 20 to show visible feed items. Example: 5 items', 'super-rss-reader' ); ?></small></br>
337 + <small class="srr_small_text"><?php esc_html_e( 'Set value greater than 20 for fixed widget height. Example: 400 px', 'super-rss-reader' ); ?></small></div>
317 338 </div>
318 339
319 340 </section>
320 341
@@ -322,12 +343,12 @@
322 343
323 344 <p>You can build rules to show/hide feed items based on feed title, URL and description. This feature is available in the <a href="https://www.aakashweb.com/wordpress-plugins/super-rss-reader/?utm_source=admin&utm_medium=filter&utm_campaign=srr-pro#pro" target="_blank">PRO version</a>.</p>
324 345
325 346 <div>
326 - <h4><?php _e( 'Filter RSS feed items', 'super-rss-reader' ); ?></h4>
347 + <h4><?php esc_html_e( 'Filter RSS feed items', 'super-rss-reader' ); ?></h4>
327 348
328 349 <div class="srr_row">
329 - <div class="srr_label"><label><?php _e( 'Filter type', 'super-rss-reader' ); ?></label></div>
350 + <div class="srr_label"><label><?php esc_html_e( 'Filter type', 'super-rss-reader' ); ?></label></div>
330 351 <div class="srr_field">
331 352 <?php
332 353 echo '<select disabled="disabled">';
333 354 echo '<option>Show items based on filter</option>';
@@ -336,10 +357,10 @@
336 357 </div>
337 358 </div>
338 359
339 360 <div class="srr_row">
340 - <div class="srr_label"><label><?php _e( 'Filter rules', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The rules for the keyword filters', 'super-rss-reader' ) ); ?></div>
341 - <div class="srr_field"><a href="#"><?php _e( 'View/Edit filter rules', 'super-rss-reader' ); ?></a></div>
361 + <div class="srr_label"><label><?php esc_html_e( 'Filter rules', 'super-rss-reader' ); ?></label><?php $this->tt( __( 'The rules for the keyword filters', 'super-rss-reader' ) ); ?></div>
362 + <div class="srr_field"><a href="#"><?php esc_html_e( 'View/Edit filter rules', 'super-rss-reader' ); ?></a></div>
342 363 </div>
343 364 </div>
344 365
345 366 </section>
@@ -357,8 +378,9 @@
357 378 <li>Shortcode - <span>Display RSS feed anywhere in your website</span></li>
358 379 <li>Grid display - <span>Display feed item in rows and columns</span></li>
359 380 <li>Filter by keyword - <span>Show/hide feed items based on keyword</span></li>
360 381 <li>Custom template - <span>Change order of feed item content, add HTML</span></li>
382 + <li>Fetch thumbnail - <span>Forcefully fetches the thumbnail from feed URL.</span></li>
361 383 <li>4+ new color themes</li>
362 384 <li>Updates and support for 1 year</li>
363 385 </ul>
364 386 <p><a href="https://www.aakashweb.com/wordpress-plugins/super-rss-reader/?utm_source=admin&utm_medium=widget-get&utm_campaign=srr-pro#pro" class="button button-primary">Get PRO version</a> <a href="https://www.aakashweb.com/wordpress-plugins/super-rss-reader/?utm_source=admin&utm_medium=widget-info&utm_campaign=srr-pro" class="button">More information</a></p>
@@ -372,10 +394,10 @@
372 394 <?php
373 395 }
374 396
375 397 public function tt( $text ){
376 - echo '<div class="srr_tt" tabindex="0"><span class="dashicons dashicons-editor-help"></span><span class="srr_tt_text"><span>' . $text . '</span></span></div>';
398 + echo '<div class="srr_tt" tabindex="0"><span class="dashicons dashicons-editor-help"></span><span class="srr_tt_text"><span>' . esc_html( $text ) . '</span></span></div>';
377 399 }
378 400
379 401 }
380 402
381 403 ?>