PluginProbe
Friends / 2.8.2
Friends v2.8.2
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 / templates / admin / edit-feeds.php

edit-feeds.php in Friends 2.8.2, at templates/admin/edit-feeds.php

312 lines 13.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * This template contains the friend editor.
4 *
5 * @version 1.0
6 * @package Friends
7 */
8
9 $active_feeds = $args['friend']->get_active_feeds();
10 $feeds = $args['friend']->get_feeds();
11
12 $has_last_log = false;
13 ?><form method="post">
14 <?php wp_nonce_field( 'edit-friend-feeds-' . $args['friend']->user_login ); ?>
15 <table class="form-table">
16 <tbody>
17 <tr>
18 <th><label for="url"><?php esc_html_e( 'Feeds', 'friends' ); ?></label></th>
19 <td>
20 <?php if ( empty( $active_feeds ) ) : ?>
21 <?php esc_html_e( 'There are no active feeds.', 'friends' ); ?>
22 <?php endif; ?>
23 <ul class="feeds <?php echo empty( $active_feeds ) ? ' hidden' : ''; ?>">
24 <?php
25 foreach ( $feeds as $term_id => $feed ) :
26 if ( $feed->get_last_log() ) {
27 $has_last_log = true;
28 $last_log = $feed->get_last_log();
29 }
30 ?>
31 <li class="<?php echo esc_attr( $feed->get_active() ? 'active' : 'inactive hidden' ); ?>">
32 <details>
33 <summary>
34 <?php echo esc_attr( $feed->get_title() ); ?>
35 <a href="<?php echo esc_url( $feed->get_url() ); ?>"><?php echo esc_url( $feed->get_url() ); ?></a></summary>
36 <table class="form-table">
37 <tbody>
38 <tr>
39 <th><?php esc_html_e( 'Active', 'friends' ); ?></th>
40 <td><input type="checkbox" name="feeds[<?php echo esc_attr( $term_id ); ?>][active]" value="1" aria-label="<?php esc_attr_e( 'Feed is active', 'friends' ); ?>"<?php checked( $feed->get_active() ); ?> /></td>
41 </tr>
42 <tr>
43 <th><?php esc_html_e( 'Feed URL', 'friends' ); ?></th>
44 <td><input type="text" name="feeds[<?php echo esc_attr( $term_id ); ?>][url]" value="<?php echo esc_attr( $feed->get_url() ); ?>" size="30" aria-label="<?php esc_attr_e( 'Feed URL', 'friends' ); ?>" class="url" /></td>
45 </tr>
46 <tr>
47 <th><?php esc_html_e( 'Parser', 'friends' ); ?></th>
48 <td>
49 <select name="feeds[<?php echo esc_attr( $term_id ); ?>][parser]" aria-label="<?php esc_attr_e( 'Parser', 'friends' ); ?>">
50 <?php foreach ( $args['registered_parsers'] as $slug => $parser_name ) : ?>
51 <option value="<?php echo esc_attr( $slug ); ?>"<?php selected( $slug, $feed->get_parser() ); ?>><?php echo esc_html( strip_tags( $parser_name ) ); ?></option>
52 <?php endforeach; ?>
53 <?php if ( 'unsupported' === $feed->get_parser() ) : ?>
54 <option value="<?php echo esc_attr( $feed->get_parser() ); ?>" selected="selected">
55 <?php
56 // translators: %s is the name of a deleted parser.
57 echo esc_html( $feed->get_parser() );
58 ?>
59 </option>
60 <?php elseif ( ! isset( $args['registered_parsers'][ $feed->get_parser() ] ) ) : ?>
61 <option value="<?php echo esc_attr( $feed->get_parser() ); ?>" selected="selected">
62 <?php
63 // translators: %s is the name of a deleted parser.
64 echo esc_html( sprintf( __( '%s (deleted)', 'friends' ), $feed->get_parser() ) );
65 ?>
66 </option>
67 <?php endif; ?>
68 </select>
69 <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( '_wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), self_admin_url( 'admin.php?page=add-friend&parser=' . urlencode( $feed->get_parser() ) . '&feed=' . urlencode( $term_id ) . '&preview=' . urlencode( $feed->get_url() ) ) ), 'preview-feed' ) ); ?>" class="preview-parser" target="_blank" rel="noopener noreferrer"><?php esc_attr_e( 'Preview', 'friends' ); ?></a>
70 </td>
71 </tr>
72 <tr>
73 <th><?php /* phpcs:ignore WordPress.WP.I18n.MissingArgDomain */ esc_html_e( 'Post Format' ); ?></th>
74 <td>
75 <select name="feeds[<?php echo esc_attr( $term_id ); ?>][post-format]" aria-label="<?php /* phpcs:ignore WordPress.WP.I18n.MissingArgDomain */ esc_attr_e( 'Post Format' ); ?>">
76 <?php foreach ( $args['post_formats'] as $format => $title ) : ?>
77 <option value="<?php echo esc_attr( $format ); ?>"<?php selected( $format, $feed->get_post_format() ); ?>><?php echo esc_html( $title ); ?></option>
78 <?php endforeach; ?>
79 </select>
80 </td>
81 </tr>
82 <tr>
83 <th><?php esc_html_e( 'Remarks', 'friends' ); ?></th>
84 <td><input type="text" name="feeds[<?php echo esc_attr( $term_id ); ?>][title]" value="<?php echo esc_attr( $feed->get_title() ); ?>" size="20" aria-label="<?php esc_attr_e( 'Feed Name', 'friends' ); ?>" /></td>
85 </tr>
86 <tr>
87 <th><?php esc_html_e( 'Actions', 'friends' ); ?></th>
88 <td><a href="#" class="delete-feed">Delete</a></td>
89 </tr>
90 <?php do_action( 'friends_feed_list_item', $feed, $term_id ); ?>
91 </tbody>
92 </table>
93 </details>
94 <?php if ( $feed->get_last_log() ) : ?>
95 <p class="lastlog hidden notice">
96 <?php
97 echo esc_html( $feed->get_last_log() );
98 echo ' ';
99 echo wp_kses_post(
100 sprintf(
101 // translators: %s is a date.
102 __( 'Will be fetched again at %s.', 'friends' ),
103 esc_html( $feed->get_next_poll() )
104 )
105 );
106 ?>
107 </p>
108 <?php endif; ?>
109 </li>
110 <?php endforeach; ?>
111 <li class="template hidden">
112 <table class="form-table">
113 <tbody>
114 <tr>
115 <th><?php esc_html_e( 'Feed URL', 'friends' ); ?></th>
116 <td><input type="text" name="feeds[new][url]" value="" size="30" aria-label="<?php esc_attr_e( 'Feed URL', 'friends' ); ?>" class="url" /></td>
117 </tr>
118 <tr>
119 <th><?php esc_html_e( 'Parser', 'friends' ); ?></th>
120 <td>
121 <select name="feeds[new][parser]" aria-label="<?php esc_attr_e( 'Parser', 'friends' ); ?>">
122 <?php foreach ( $args['registered_parsers'] as $slug => $parser_name ) : ?>
123 <option value="<?php echo esc_attr( $slug ); ?>"><?php echo esc_html( strip_tags( $parser_name ) ); ?></option>
124 <?php endforeach; ?>
125 </select>
126 <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( '_wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), self_admin_url( 'admin.php?page=add-friend&parser=&preview=' ) ), 'preview-feed' ) ); ?>" class="preview-parser" target="_blank" rel="noopener noreferrer"><?php esc_attr_e( 'Preview', 'friends' ); ?></a>
127 </td>
128 </tr>
129 <tr>
130 <th><?php /* phpcs:ignore WordPress.WP.I18n.MissingArgDomain */ esc_html_e( 'Post Format' ); ?></th>
131 <td>
132 <select name="feeds[new][post-format]" aria-label="<?php /* phpcs:ignore WordPress.WP.I18n.MissingArgDomain */ esc_attr_e( 'Post Format' ); ?>">
133 <?php foreach ( $args['post_formats'] as $format => $title ) : ?>
134 <option value="<?php echo esc_attr( $format ); ?>"><?php echo esc_html( $title ); ?></option>
135 <?php endforeach; ?>
136 </select>
137 </td>
138 </tr>
139 <tr>
140 <th><?php esc_html_e( 'Remarks', 'friends' ); ?></th>
141 <td><input type="text" name="feeds[new][title]" value="" size="20" aria-label="<?php esc_attr_e( 'Feed Name', 'friends' ); ?>" /></td>
142 </tr>
143 <?php do_action( 'friends_feed_list_item', isset( $feed ) ? $feed : array(), 'new' ); ?>
144 </tbody>
145 </table>
146 </li>
147 </ul>
148
149 <?php if ( count( $active_feeds ) !== count( $feeds ) ) : ?>
150 <a href="" class="show-inactive-feeds"><?php esc_html_e( 'Show inactive feeds', 'friends' ); ?></a> |
151 <?php endif; ?>
152 <?php if ( $has_last_log ) : ?>
153 <a href="" class="show-log-lines"><?php esc_html_e( 'Show log output', 'friends' ); ?></a> |
154 <?php endif; ?>
155 <a href="" class="add-feed"><?php esc_html_e( 'Add a feed', 'friends' ); ?></a>
156 </td>
157 </tr>
158 <?php if ( $args['friend']->can_refresh_feeds() ) : ?>
159 <tr>
160 <th><?php /* phpcs:ignore WordPress.WP.I18n.MissingArgDomain */ esc_html_e( 'Posts' ); ?></th>
161 <td>
162 <fieldset>
163 <label for="show_on_friends_page">
164 <input name="show_on_friends_page" type="checkbox" id="show_on_friends_page" value="1" <?php checked( '1', ! in_array( $args['friend']->user_login, $args['hide_from_friends_page'] ) ); ?>>
165 <?php esc_html_e( 'Show posts on your friends page', 'friends' ); ?>
166 </label>
167 </fieldset>
168 <fieldset>
169 <a href="<?php echo esc_url( $args['friend']->get_local_friends_page_url() ); ?>">
170 <?php
171 // translators: %d is the number of posts.
172 echo esc_html( sprintf( _n( 'View %d post', 'View %d posts', $args['post_count'], 'friends' ), $args['post_count'] ) );
173 ?>
174 </a>
175 <?php if ( apply_filters( 'friends_debug', false ) ) : ?>
176 | <a href="<?php echo esc_url( self_admin_url( 'edit.php?post_type=' . Friends\Friends::CPT . '&author=' . $args['friend']->ID ) ); ?>">
177 <?php
178 // translators: %d is the number of posts.
179 echo esc_html( sprintf( _n( 'View %d cached post', 'View %d cached posts', $args['post_count'], 'friends' ), $args['post_count'] ) );
180 ?>
181 </a>
182
183 <?php endif; ?>
184 </fieldset>
185 <p class="description">
186 <?php
187 // translators: %s is a URL.
188 printf( __( '<a href=%s>Refresh</a> this feed now.', 'friends' ), esc_url( self_admin_url( 'admin.php?page=friends-refresh&user=' . $args['friend']->user_login ) ) );
189 ?>
190 </p>
191 </td>
192 </tr>
193 <tr>
194 <th><?php esc_html_e( 'Retention', 'friends' ); ?></th>
195 <td>
196 <fieldset>
197 <div>
198 <input type="checkbox" name="friends_enable_retention_days" id="friends_enable_retention_days" value="1" <?php checked( '1', $args['friend']->is_retention_days_enabled() ); ?> />
199 <span id="friends_enable_retention_days_line" class="<?php echo esc_attr( $args['friend']->is_retention_days_enabled() ? '' : 'disabled' ); ?>">
200 <?php
201 echo wp_kses(
202 sprintf(
203 // translators: %s is an input field that allows specifying a number.
204 __( 'Only keep posts for %s days', 'friends' ),
205 '<input type="number" min="1" id="friends_retention_days" name="friends_retention_days" value="' . esc_attr( $args['friend']->get_retention_days() ) . '"' . ( $args['friend']->is_retention_days_enabled() ? '' : ' disabled="disabled"' ) . ' size="3">'
206 ),
207 array(
208 'input' => array(
209 'type' => array(),
210 'min' => array(),
211 'id' => array(),
212 'name' => array(),
213 'value' => array(),
214 'size' => array(),
215 'disabled' => array(),
216 ),
217 )
218 );
219 echo '. ';
220 echo esc_html(
221 sprintf(
222 // translators: %s is a date.
223 __( 'Earliest post: %s', 'friends' ),
224 /* phpcs:ignore WordPress.WP.I18n.MissingArgDomain */ date_i18n( __( 'F j, Y' ), $args['earliest_post_date'] )
225 )
226 );
227 if ( $args['global_retention_days_enabled'] ) {
228 echo '. ';
229 echo esc_html(
230 sprintf(
231 // translators: %s is a number of days.
232 __( 'Global setting: %s days', 'friends' ),
233 number_format_i18n( $args['global_retention_days'] )
234 )
235 );
236 }
237
238 ?>
239 </span>
240 </div>
241 <div>
242 <input type="checkbox" name="friends_enable_retention_number" id="friends_enable_retention_number" value="1" <?php checked( '1', $args['friend']->is_retention_number_enabled() ); ?> />
243 <span id="friends_enable_retention_number_line" class="<?php echo esc_attr( $args['friend']->is_retention_number_enabled() ? '' : 'disabled' ); ?>">
244 <?php
245 echo wp_kses(
246 sprintf(
247 // translators: %s is an input field that allows specifying a number.
248 __( 'Only keep the last %s posts', 'friends' ),
249 '<input type="number" min="1" id="friends_retention_number" name="friends_retention_number" value="' . esc_attr( $args['friend']->get_retention_number() ) . '"' . ( $args['friend']->is_retention_number_enabled() ? '' : ' disabled="disabled"' ) . ' size="3">'
250 ),
251 array(
252 'input' => array(
253 'type' => array(),
254 'min' => array(),
255 'id' => array(),
256 'name' => array(),
257 'value' => array(),
258 'size' => array(),
259 'disabled' => array(),
260 ),
261 )
262 );
263 if ( $args['global_retention_number_enabled'] ) {
264 echo '. ';
265 echo esc_html(
266 sprintf(
267 // translators: %s is a number.
268 __( 'Global setting: %s posts', 'friends' ),
269 number_format_i18n( $args['global_retention_number'] )
270 )
271 );
272 }
273 ?>
274 </span>
275 </div>
276 </fieldset>
277 <p class="description">
278 <?php
279 echo esc_html(
280 sprintf(
281 // translators: %s is a size in bytes or kilo bytes (kB).
282 __( 'Currently the posts use %s of disk space.', 'friends' ),
283 size_format( $args['total_size'], 1 )
284 )
285 );
286 ?>
287 </p>
288 <p class="description">
289 <?php
290 echo ' ';
291 esc_html_e( 'If you need to limit the amount of space, choose one of the options above (they can be combined).', 'friends' );
292 echo ' ';
293 esc_html_e( 'The next auto-delete will kick in when refreshing the feeds of this friend.', 'friends' );
294 ?>
295 </p>
296 </p>
297 <p class="description">
298 <?php
299 esc_html_e( 'Lower global settings have preceedence over the friend settings.', 'friends' );
300 ?>
301 </p>
302 </td>
303 </tr>
304 <?php endif; ?>
305 <?php do_action( 'friends_edit_friend_table_end', $args['friend'] ); ?>
306 </table>
307 <?php do_action( 'friends_edit_friend_after_form', $args['friend'] ); ?>
308 <p class="submit">
309 <input type="submit" id="submit" class="button button-primary" value="<?php /* phpcs:ignore WordPress.WP.I18n.MissingArgDomain */ esc_html_e( 'Save Changes' ); ?>">
310 </p>
311 </form>
312