PluginProbe
FeedWordPress / 2020.0118
FeedWordPress v2020.0118
trunk 0.8 0.9 0.91 0.95 0.96 0.97 0.98 0.981 0.99 0.991 0.992 0.993 2008.1030 2008.1101 2008.1105 2008.1214 2009.0612 2009.0613 2009.0618 2009.0707 2009.1111 2009.1112 2010.0127 2010.0528 All 65 releases
← All changes | posts-page.php +132 -149 trunk2020.0118 View file →
@@ -19,9 +19,9 @@
19 19 parent::__construct('feedwordpresspostspage', $link);
20 20 $this->dispatch = 'feedwordpress_admin_page_posts';
21 21 $this->filename = __FILE__;
22 22 $this->updatedPosts = new UpdatedPostsControl($this);
23 -
23 +
24 24 $this->pagenames = array(
25 25 'default' => 'Posts',
26 26 'settings-update' => 'Syndicated posts',
27 27 'open-sheet' => 'Syndicated Posts & Links',
@@ -27,137 +27,125 @@
27 27 'open-sheet' => 'Syndicated Posts & Links',
28 28 );
29 29 } /* FeedWordPressPostsPage constructor */
30 30
31 - function save_settings () {
31 + function save_settings ($post) {
32 32 // custom post settings
33 33 $custom_settings = $this->custom_post_settings();
34 34
35 - $posted_notes = FeedWordPress::post( 'notes', array(), 'text' );
36 - foreach ( $posted_notes as $mn ) :
37 - if ( isset( $mn['key0'] ) ) :
38 - $mn['key0'] = trim( $mn['key0'] );
39 - if ( strlen( $mn['key0'] ) > 0 ) :
40 - unset( $custom_settings[ $mn['key0'] ] ); // out with the old
35 + foreach ($post['notes'] as $mn) :
36 + if (isset($mn['key0'])) :
37 + $mn['key0'] = trim($mn['key0']);
38 + if (strlen($mn['key0']) > 0) :
39 + unset($custom_settings[$mn['key0']]); // out with the old
41 40 endif;
42 41 endif;
42 +
43 + if (isset($mn['key1'])) :
44 + $mn['key1'] = trim($mn['key1']);
43 45
44 - if ( isset( $mn['key1'] ) ) :
45 - $mn['key1'] = trim( $mn['key1'] );
46 -
47 - if ( ( $mn['action']=='update' ) and ( strlen( $mn['key1'] ) > 0 ) ) :
48 - $custom_settings[ $mn['key1'] ] = $mn['value']; // in with the new
46 + if (($mn['action']=='update') and (strlen($mn['key1']) > 0)) :
47 + $custom_settings[$mn['key1']] = $mn['value']; // in with the new
49 48 endif;
50 49 endif;
51 50 endforeach;
52 51
53 - $this->updatedPosts->accept_POST();
52 + $this->updatedPosts->accept_POST($post);
54 53 if ($this->for_feed_settings()) :
55 - // $alter = array(); // this appears elsewhere, too, also unused, and possibly removed as well (gwyneth 20230920)
54 + $alter = array ();
56 55
57 56 $this->link->settings['postmeta'] = serialize($custom_settings);
58 57
59 - if ( ! is_null( FeedWordPress::post( 'resolve_relative', null ) ) ) :
60 - $this->link->settings['resolve relative'] = FeedWordPress::post( 'resolve_relative', null, 'text' );
58 + if (isset($post['resolve_relative'])) :
59 + $this->link->settings['resolve relative'] = $post['resolve_relative'];
61 60 endif;
62 - if ( ! is_null( FeedWordPress::post('munge_permalink', null, 'text' ) ) ) :
63 - $this->link->settings['munge permalink'] = FeedWordPress::post( 'munge_permalink', null, 'text' );
61 + if (isset($post['munge_permalink'])) :
62 + $this->link->settings['munge permalink'] = $post['munge_permalink'];
64 63 endif;
65 - if ( ! is_null( FeedWordPress::post('munge_comments_feed_links', null, 'text' ) ) ) :
66 - $this->link->settings['munge comments feed links'] = FeedWordPress::post( 'munge_comments_feed_links', null, 'text' );
64 + if (isset($post['munge_comments_feed_links'])) :
65 + $this->link->settings['munge comments feed links'] = $post['munge_comments_feed_links'];
67 66 endif;
68 67
69 68 // Post status, comment status, ping status
70 69 foreach (array('post', 'comment', 'ping') as $what) :
71 70 $sfield = "feed_{$what}_status";
72 - if ( ! is_null( FeedWordPress::post( $sfield, null, 'text' ) ) ) :
73 - $afield = sprintf( '%s status', $what );
74 - if ( FeedWordPress::post( $sfield, null, 'text' ) == 'site-default' ) :
75 - unset($this->link->settings[ $afield ]);
71 + if (isset($post[$sfield])) :
72 + if ($post[$sfield]=='site-default') :
73 + unset($this->link->settings["{$what} status"]);
76 74 else :
77 - $this->link->settings[ $afield ] = FeedWordPress::post( $sfield, null, 'text' );
75 + $this->link->settings["{$what} status"] = $post[$sfield];
78 76 endif;
79 77 endif;
80 78 endforeach;
81 -
82 - if ( ! is_null( FeedWordPress::post('syndicated_post_type', null, 'text' ) ) ) :
83 - if ( FeedWordPress::post( 'syndicated_post_type', null, 'text' ) == 'default' ) :
79 +
80 + if (isset($post['syndicated_post_type'])) :
81 + if ($post['syndicated_post_type']=='default') :
84 82 unset($this->link->settings['syndicated post type']);
85 83 else :
86 - $this->link->settings['syndicated post type'] = FeedWordPress::post( 'syndicated_post_type', null, 'text' );
84 + $this->link->settings['syndicated post type'] = $post['syndicated_post_type'];
87 85 endif;
88 86 endif;
89 87
90 88 else :
91 89 // update_option ...
92 - if ( ! is_null( FeedWordPress::post( 'feed_post_status', null ) ) ) :
93 -
94 - update_option('feedwordpress_syndicated_post_status', FeedWordPress::post( 'feed_post_status', null, 'text' ) );
95 -
90 + if (isset($post['feed_post_status'])) :
91 + update_option('feedwordpress_syndicated_post_status', $post['feed_post_status']);
96 92 endif;
97 93
98 94 update_option('feedwordpress_custom_settings', serialize($custom_settings));
99 95
100 - $sMungePermalink = FeedWordPress::post('munge_permalink', null, 'text' );
101 - $sUseAggregatorSourceData = FeedWordPress::post( 'use_aggregator_source_data', null, 'text' );
102 - $sFormattingFilters = FeedWordPress::post('formatting_filters', null, 'text' );
103 - $sFeedCommentStatus = FeedWordPress::post( 'feed_comment_status', '', 'text' );
104 - $sFeedPingStatus = FeedWordPress::post( 'feed_ping_status', '', 'text' );
105 - $sResolveRelative = FeedWordPress::post( 'resolve_relative', null, 'text' );
106 - $sMungeCommentsFeedLinks = FeedWordPress::post( 'munge_comments_feed_links', null, 'text' );
107 - $sSyndicatedPostType = FeedWordPress::post( 'syndicated_post_type', null, 'text' );
96 + update_option('feedwordpress_munge_permalink', $_REQUEST['munge_permalink']);
97 + update_option('feedwordpress_use_aggregator_source_data', $_REQUEST['use_aggregator_source_data']);
98 + update_option('feedwordpress_formatting_filters', $_REQUEST['formatting_filters']);
108 99
109 - update_option('feedwordpress_munge_permalink', $sMungePermalink);
110 - update_option('feedwordpress_use_aggregator_source_data', $sUseAggregatorSourceData);
111 - update_option('feedwordpress_formatting_filters', $sFormattingFilters);
112 -
113 - if ( ! is_null( $sResolveRelative ) ) :
114 - update_option('feedwordpress_resolve_relative', $sResolveRelative );
100 + if (isset($post['resolve_relative'])) :
101 + update_option('feedwordpress_resolve_relative', $post['resolve_relative']);
115 102 endif;
116 - if ( ! is_null( $sMungeCommentsFeedLinks ) ) :
117 - update_option('feedwordpress_munge_comments_feed_links', $sMungeCommentsFeedLinks );
103 + if (isset($post['munge_comments_feed_links'])) :
104 + update_option('feedwordpress_munge_comments_feed_links', $post['munge_comments_feed_links']);
118 105 endif;
119 -
120 - if ( $sFeedCommentStatus == 'open' ) :
106 + if (isset($_REQUEST['feed_comment_status']) and ($_REQUEST['feed_comment_status'] == 'open')) :
121 107 update_option('feedwordpress_syndicated_comment_status', 'open');
122 108 else :
123 109 update_option('feedwordpress_syndicated_comment_status', 'closed');
124 110 endif;
125 111
126 - if ( $sFeedPingStatus == 'open' ) :
112 + if (isset($_REQUEST['feed_ping_status']) and ($_REQUEST['feed_ping_status'] == 'open')) :
127 113 update_option('feedwordpress_syndicated_ping_status', 'open');
128 114 else :
129 115 update_option('feedwordpress_syndicated_ping_status', 'closed');
130 116 endif;
131 -
132 - if ( ! is_null( $sSyndicatedPostType ) ) :
133 - update_option('feedwordpress_syndicated_post_type', $sSyndicatedPostType );
117 +
118 + if (isset($post['syndicated_post_type'])) :
119 + update_option('feedwordpress_syndicated_post_type', $post['syndicated_post_type']);
134 120 endif;
135 121 endif;
136 122
137 - $boilerplate = FeedWordPress::post( 'boilerplate', array(), 'raw' );
138 - if ( count($boilerplate) > 0 ) :
139 - foreach ( $boilerplate as $index => $line) :
140 - if ( 0 == strlen( trim( $line['template'] ) ) ) :
141 - unset( $boilerplate[$index] );
142 - endif;
143 - endforeach;
123 + if (isset($post['save']) or isset($post['submit'])) :
124 + if (isset($post['boilerplate'])) :
125 + foreach ($post['boilerplate'] as $index => $line) :
126 + if (0 == strlen(trim($line['template']))) :
127 + unset($post['boilerplate'][$index]);
128 + endif;
129 + endforeach;
144 130
145 - // Convert indexes to 0..(N-1) to avoid possible collisions
146 - $boilerplate = array_values( $boilerplate );
131 + // Convert indexes to 0..(N-1) to avoid possible collisions
132 + $post['boilerplate'] = array_values($post['boilerplate']);
147 133
148 - if ($this->for_feed_settings()) :
149 - $this->link->settings['boilerplate rules'] = serialize( $boilerplate );
150 - $this->link->save_settings(/*reload=*/ true);
151 - else :
152 - update_option( 'feedwordpress_boilerplate', $boilerplate );
134 + if ($this->for_feed_settings()) :
135 + $this->link->settings['boilerplate rules'] = serialize($post['boilerplate']);
136 + $this->link->save_settings(/*reload=*/ true);
137 + else :
138 + update_option('feedwordpress_boilerplate', $post['boilerplate']);
139 + endif;
153 140 endif;
141 +
142 + if (isset($post['boilerplate_hook_order'])) :
143 + $this->update_setting('boilerplate hook order', intval($post['boilerplate_hook_order']));
144 + endif;
154 145 endif;
155 146
156 - $boilerplate_hook_order = FeedWordPress::post( 'boilerplate_hook_order', 10, 'text' );
157 - $this->update_setting('boilerplate hook order', intval( $boilerplate_hook_order ) );
158 -
159 - parent::save_settings();
147 + parent::save_settings($post);
160 148 }
161 149
162 150 /**
163 151 * publication_box: Outputs "Publication" settings box.
@@ -169,9 +157,9 @@
169 157 *
170 158 * @uses FeedWordPressPostsPage::these_posts_phrase()
171 159 * @uses FeedWordPress::syndicated_status()
172 160 * @uses SyndicatedLink::syndicated_status()
173 - */
161 + */
174 162 /*static*/ function publication_box ($page, $box = NULL) {
175 163 $thesePosts = $page->these_posts_phrase();
176 164 $postSelector = array(
177 165 'publish' => "Publish %s immediately",
@@ -183,9 +171,9 @@
183 171 foreach ($postSelector as $index => $value) :
184 172 $postSelector[$index] = sprintf(__($value), $thesePosts);
185 173 $labels[$index] = __(str_replace(' %s', '', strtolower(strtok($value, ';'))));
186 174 endforeach;
187 -
175 +
188 176 $params = array(
189 177 'input-name' => 'feed_post_status',
190 178 'setting-default' => NULL,
191 179 'global-setting-default' => 'publish',
@@ -194,9 +182,9 @@
194 182
195 183 // Hey ho, let's go...
196 184 ?>
197 185 <table id="syndicated-publication-form" class="edit-form narrow">
198 - <tr><th scope="row"><?php esc_html_e('New posts:'); ?></th>
186 + <tr><th scope="row"><?php _e('New posts:'); ?></th>
199 187 <td><?php
200 188 $this->setting_radio_control(
201 189 'post status', 'syndicated_post_status',
202 190 $postSelector, $params
@@ -205,23 +193,23 @@
205 193 </td></tr>
206 194
207 195 <?php $page->updatedPosts->display(); ?>
208 196 </table>
209 -
197 +
210 198 <?php
211 199 } /* FeedWordPressPostsPage::publication_box () */
212 -
200 +
213 201 /**
214 202 * Outputs "Formatting" settings box
215 203 *
216 204 * @since 2009.0713
217 - * @param FeedWordPressPostsPage $page of class FeedWordPressPostsPage tells us whether this is
218 - * a page for one feed's settings or for global defaults
205 + * @param object $page of class FeedWordPressPostsPage tells us whether this is
206 + * a page for one feed's settings or for global defaults
219 207 * @param array $box
220 208 *
221 - */
222 - function formatting_box( $page, $box = NULL ) {
223 - $thesePosts = $page->these_posts_phrase(); // result unused, why? (gwyneth 20230920)
209 + */
210 + function formatting_box ($page, $box = NULL) {
211 + $thesePosts = $page->these_posts_phrase();
224 212
225 213 if ($page->for_feed_settings()) :
226 214 $formatting_filters = null;
227 215 $url = preg_replace('|/+$|', '', $page->link->homepage());
@@ -230,9 +218,9 @@
230 218 $url = 'http://example.com';
231 219 endif;
232 220 ?>
233 221 <table class="edit-form narrow">
234 - <?php if ( !is_null($formatting_filters)) : ?>
222 + <?php if (!is_null($formatting_filters)) : ?>
235 223
236 224 <tr><th scope="row">Formatting filters:</th>
237 225 <td><select name="formatting_filters" size="1">
238 226 <option value="no"<?php echo ($formatting_filters!='yes')?' selected="selected"':''; ?>>Protect syndicated posts from formatting filters</option>
@@ -244,11 +232,11 @@
244 232 problem.</p>
245 233 </td></tr>
246 234
247 235 <?php endif; ?>
248 -
236 +
249 237 <tr><th scope="row">Relative URIs:</th>
250 - <td><p>If link or image in a syndicated post from <code><?php print esc_html($url); ?></code>
238 + <td><p>If link or image in a syndicated post from <code><?php print $url; ?></code>
251 239 refers to a partial URI like <code>/about</code>, where should
252 240 the syndicated copy point to?</p>
253 241
254 242 <?php
@@ -269,15 +257,15 @@
269 257 $this->setting_radio_control(
270 258 'resolve relative', 'resolve_relative',
271 259 $options, $params
272 260 );
273 - ?>
261 + ?>
274 262 </td></tr>
275 263
276 264 </table>
277 265 <?php
278 266 } /* FeedWordPressPostsPage::formatting_box() */
279 -
267 +
280 268 /**
281 269 * Output "Links" settings box
282 270 *
283 271 * @since 2009.0713
@@ -293,9 +281,9 @@
293 281 'no' => __('The local copy on this website'),
294 282 ),
295 283 );
296 284
297 - if ( ! $page->for_feed_settings()) :
285 + if (!$page->for_feed_settings()) :
298 286 $use_aggregator_source_data = get_option('feedwordpress_use_aggregator_source_data');
299 287 endif;
300 288 ?>
301 289 <table class="edit-form narrow">
@@ -300,9 +288,9 @@
300 288 ?>
301 289 <table class="edit-form narrow">
302 290 <tr><th scope="row">Permalinks point to:</th>
303 291 <td><?php
304 -
292 +
305 293 $params = array(
306 294 'setting-default' => 'default',
307 295 'global-setting-default' => 'yes',
308 296 'default-input-value' => 'default',
@@ -313,10 +301,10 @@
313 301 );
314 302 ?>
315 303
316 304 </td></tr>
317 -
318 - <?php if ( ! $page->for_feed_settings()) : ?>
305 +
306 + <?php if (!$page->for_feed_settings()) : ?>
319 307 <tr><th scope="row">Posts from aggregator feeds:</th>
320 308 <td><ul class="options">
321 309 <li><label><input type="radio" name="use_aggregator_source_data" value="no"<?php echo ($use_aggregator_source_data!="yes")?' checked="checked"':''; ?>> Give the aggregator itself as the source of posts from an aggregator feed.</label></li>
322 310 <li><label><input type="radio" name="use_aggregator_source_data" value="yes"<?php echo ($use_aggregator_source_data=="yes")?' checked="checked"':''; ?>> Give the original source of the post as the source, not the aggregator.</label></li>
@@ -345,9 +333,9 @@
345 333 'comment' => array('label' => __('Comments'), 'accept' => 'Allow comments'),
346 334 'ping' => array('label' => __('Pings'), 'accept' => 'Accept pings'),
347 335 );
348 336 $onThesePosts = 'on '.$page->these_posts_phrase();
349 -
337 +
350 338 $mcflSettings = array(
351 339 "yes" => __('Point to comment feeds from the original website (when provided by the syndicated feed)'),
352 340 "no" => __('Point to local comment feeds on this website'),
353 341 );
@@ -370,9 +358,9 @@
370 358 'open' => sprintf(__("{$how['accept']} %s"), __($onThesePosts)),
371 359 'closed' => sprintf(__("Don't ".strtolower($how['accept'])." %s"), __($onThesePosts)),
372 360 );
373 361 $params[$what] = array(
374 - 'input-name' => "feed_{$what}_status",
362 + 'input-name' => "feed_${what}_status",
375 363 'setting-default' => NULL,
376 364 'global-setting-default' => FeedWordPress::syndicated_status($what, /*default=*/ 'closed'),
377 365 'labels' => array(
378 366 'open' => strtolower(__($how['accept'])),
@@ -384,22 +372,22 @@
384 372 // Hey ho, let's go...
385 373 ?>
386 374 <table class="edit-form narrow">
387 375 <?php foreach ($whatsits as $what => $how) : ?>
388 -
389 - <tr><th scope="row"><?php print esc_html($how['label']); ?>:</th>
376 +
377 + <tr><th scope="row"><?php print $how['label']; ?>:</th>
390 378 <td><?php
391 379 $this->setting_radio_control(
392 - "$what status", "syndicated_{$what}_status",
380 + "$what status", "syndicated_${what}_status",
393 381 $settings[$what], $params[$what]
394 382 );
395 383 ?></td></tr>
396 -
384 +
397 385 <?php endforeach; ?>
398 -
399 - <tr><th scope="row"><?php esc_html_e('Comment feeds'); ?></th>
386 +
387 + <tr><th scope="row"><?php _e('Comment feeds'); ?></th>
400 388 <td><p>When WordPress feeds and templates link to comments
401 - feeds for <?php print esc_html($page->these_posts_phrase()); ?>, the
389 + feeds for <?php print $page->these_posts_phrase(); ?>, the
402 390 URLs for the feeds should...</p>
403 391 <?php
404 392 $this->setting_radio_control(
405 393 "munge comments feed links", "munge_comments_feed_links",
@@ -409,9 +397,9 @@
409 397 </table>
410 398
411 399 <?php
412 400 } /* FeedWordPressPostsPage::comments_and_pings_box() */
413 -
401 +
414 402 /*static*/ function custom_post_settings ($page = NULL) {
415 403 if (is_null($page)) :
416 404 $page = $this;
417 405 endif;
@@ -424,23 +412,15 @@
424 412
425 413 if ($custom_settings and !is_array($custom_settings)) :
426 414 $custom_settings = unserialize($custom_settings);
427 415 endif;
428 -
429 - if ( !is_array($custom_settings)) :
416 +
417 + if (!is_array($custom_settings)) :
430 418 $custom_settings = array();
431 419 endif;
432 420
433 421 return $custom_settings;
434 422 } /* FeedWordPressPostsPage::custom_post_settings() */
435 -
436 - /*static*/ function custom_post_settings_box_tester_button ( $id, $page, $box = NULL ) {
437 -
438 - ?>
439 - <br/><button id="<?php print esc_attr( sprintf( 'xpath-test-%d', $id ) ); ?>" class="xpath-test">test expression</button>
440 - <?php
441 -
442 - }
443 423
444 424 /**
445 425 * Output "Custom Post Settings" settings box
446 426 *
@@ -462,16 +442,19 @@
462 442 </tr>
463 443
464 444 <?php
465 445 $i = 0;
466 - foreach ($custom_settings as $key => $value) :
446 + $testerButton = '<br/><button id="xpath-test-%d"'
447 + .'class="xpath-test"'
448 + .'>test expression</button>';
449 + foreach ($custom_settings as $key => $value) :
467 450 ?>
468 451 <tr style="vertical-align:top">
469 - <th width="30%" scope="row"><input type="hidden" name="notes[<?php echo esc_attr($i); ?>][key0]" value="<?php echo esc_html($key); ?>" />
470 - <input id="notes-<?php echo esc_attr( $i ); ?>-key" name="notes[<?php echo esc_attr( $i ); ?>][key1]" value="<?php echo esc_html($key); ?>" /></th>
471 - <td width="60%"><textarea rows="2" cols="40" id="notes-<?php echo esc_attr($i); ?>-value" name="notes[<?php echo esc_attr($i); ?>][value]"><?php echo esc_html($value); ?></textarea>
472 - <?php self::custom_post_settings_box_tester_button($i, $page, $box); ?></td>
473 - <td width="10%"><select name="notes[<?php echo esc_attr($i); ?>][action]">
452 + <th width="30%" scope="row"><input type="hidden" name="notes[<?php echo $i; ?>][key0]" value="<?php echo esc_html($key); ?>" />
453 + <input id="notes-<?php echo $i; ?>-key" name="notes[<?php echo $i; ?>][key1]" value="<?php echo esc_html($key); ?>" /></th>
454 + <td width="60%"><textarea rows="2" cols="40" id="notes-<?php echo $i; ?>-value" name="notes[<?php echo $i; ?>][value]"><?php echo esc_html($value); ?></textarea>
455 + <?php print sprintf($testerButton, $i); ?></td>
456 + <td width="10%"><select name="notes[<?php echo $i; ?>][action]">
474 457 <option value="update">save changes</option>
475 458 <option value="delete">delete this setting</option>
476 459 </select></td>
477 460 </tr>
@@ -481,10 +464,10 @@
481 464 endforeach;
482 465 ?>
483 466
484 467 <tr style="vertical-align: top">
485 - <th scope="row"><input type="text" size="10" name="notes[<?php echo esc_attr($i); ?>][key1]" value="" /></th>
486 - <td><textarea name="notes[<?php echo esc_attr($i); ?>][value]" rows="2" cols="40"></textarea><?php self::custom_post_settings_box_tester_button( $i, $page, $box ); ?>
468 + <th scope="row"><input type="text" size="10" name="notes[<?php echo $i; ?>][key1]" value="" /></th>
469 + <td><textarea name="notes[<?php echo $i; ?>][value]" rows="2" cols="40"></textarea><?php print sprintf($testerButton, $i); ?>
487 470 <p>Enter a text value, or a path to a data element from the syndicated item.<br/>
488 471 For data elements, you can use an XPath-like syntax wrapped in <code>$( ... )</code>.<br/>
489 472 <code>hello</code> = the text value <code><span style="background-color: #30FFA0;">hello</span></code><br/>
490 473 <code>$(author/email)</code> = the contents of <code>&lt;author&gt;&lt;email&gt;<span style="background-color: #30FFA0">...</span>&lt;/email&gt;&lt;/author&gt;</code><br/>
@@ -489,9 +472,9 @@
489 472 <code>hello</code> = the text value <code><span style="background-color: #30FFA0;">hello</span></code><br/>
490 473 <code>$(author/email)</code> = the contents of <code>&lt;author&gt;&lt;email&gt;<span style="background-color: #30FFA0">...</span>&lt;/email&gt;&lt;/author&gt;</code><br/>
491 474 <code>$(media:content/@url)</code> = the contents of <code>&lt;media:content url="<span style="background-color: #30FFA0">...</span>"&gt;...&lt;/media:content&gt;</code></p>
492 475 </td>
493 - <td><em>add new setting...</em><input type="hidden" name="notes[<?php echo esc_attr($i); ?>][action]" value="update" /></td>
476 + <td><em>add new setting...</em><input type="hidden" name="notes[<?php echo $i; ?>][action]" value="update" /></td>
494 477 </tr>
495 478 </table>
496 479 </div> <!-- id="postcustomstuff" -->
497 480
@@ -498,12 +481,14 @@
498 481 <?php
499 482 } /* FeedWordPressPostsPage::custom_post_settings_box() */
500 483
501 484 function custom_post_types_box ($page, $box = NULL) {
502 - // local: syndicated post type // default NULL
485 + global $fwp_path;
486 +
487 + // local: syndicated post type // default NULL
503 488 // global: syndicated_post_type // default 'post'
504 489 // default-input-value => 'default'
505 -
490 +
506 491 // Get all custom post types
507 492 $post_types = get_post_types(array(
508 493 '_builtin' => false,
509 494 ), 'objects');
@@ -512,19 +497,19 @@
512 497 $ul['post'] = __('Normal WordPress posts');
513 498 foreach ($post_types as $post_type) :
514 499 $ul[$post_type->name] = __($post_type->labels->name);
515 500 endforeach;
516 -
501 +
517 502 $params = array(
518 503 'global-setting-default' => 'post',
519 504 'default-input-value' => 'default',
520 505 );
521 -
506 +
522 507 // Hey, ho, let's go...
523 508 ?>
524 509 <table class="edit-form narrow">
525 510 <tbody>
526 - <tr><th><?php esc_html_e('Custom Post Types:'); ?></th>
511 + <tr><th><?php _e('Custom Post Types:'); ?></th>
527 512 <td><p>Incoming syndicated posts should be stored in the
528 513 posts database as...</p>
529 514 <?php
530 515 $this->setting_radio_control(
@@ -536,14 +521,12 @@
536 521 </tbody>
537 522 </table>
538 523 <?php
539 524 } /* FeedWordPressPostsPage::custom_post_types_box() */
540 -
525 +
541 526 public function boilerplate_box ($page, $box = NULL) {
542 527 if ($page->for_feed_settings()) :
543 - $attrib = isset($page->link->settings['boilerplate rules'])
544 - ? unserialize($page->link->settings['boilerplate rules'])
545 - : [];
528 + $attrib = unserialize($page->link->settings['boilerplate rules']);
546 529 $syndicatedPosts = 'this feed\'s posts';
547 530 else :
548 531 $attrib = get_option('feedwordpress_boilerplate');
549 532 $syndicatedPosts = 'syndicated posts';
@@ -549,9 +532,9 @@
549 532 $syndicatedPosts = 'syndicated posts';
550 533 endif;
551 534 $hookOrder = intval($page->setting('boilerplate hook order', FEEDWORDPRESS_BOILERPLATE_DEFAULT_HOOK_ORDER));
552 535 ?>
553 - <style type="text/css">
536 + <style type="text/css">
554 537 .boilerplate-help-box {
555 538 float: right;
556 539 width: 300px;
557 540 border: 1px dotted #777;
@@ -577,9 +560,9 @@
577 560 padding-bottom: 5px;
578 561 margin-bottom: 5px;
579 562 border-bottom: 1px dotted black;
580 563 }
581 -
564 +
582 565 </style>
583 566
584 567 <div class="boilerplate-help-box">
585 568 <p style="border-bottom: 1px dotted #777;">To remove boilerplate, just blank out the text box and leave it empty.</p>
@@ -597,9 +580,9 @@
597 580
598 581 <dt><code>[original-link]text[/original-link]</code></dt>
599 582 <dd>A link to the <em>original post</em> back on the source website,
600 583 using <code>text</code> as the link text.</dd>
601 -
584 +
602 585 <dt><code>[original-url]</code></dt>
603 586 <dd>URL of the <em>original post</em> back on the source website</dd>
604 587
605 588 <dt><code>[author]</code></dt>
@@ -606,9 +589,9 @@
606 589 <dd>A link with the name of the author who wrote the post, linking to other posts by the same author</dd>
607 590
608 591 <dt><code>[author-name]</code></dt>
609 592 <dd>Name of the author who wrote the post</dd>
610 -
593 +
611 594 <dt><code>[feed-setting key="setting-name"]</code></dt>
612 595 <dd>Value of a custom feed setting (named <code>setting-name</code>) for the feed</dd>
613 596 </dl>
614 597 </div>
@@ -614,9 +597,9 @@
614 597 </div>
615 598
616 599 <?php
617 600 print "<ul>\n";
618 - if ( !is_array($attrib)) : $attrib = array(); endif;
601 + if (!is_array($attrib)) : $attrib = array(); endif;
619 602
620 603 print '<input type="hidden" id="next-boilerplate-rule-index" name="next_boilerplate_rule_index" value="'.count($attrib).'" />';
621 604
622 605 // In AJAX environment, this is a dummy rule that stays hidden. In a
@@ -635,21 +618,21 @@
635 618 $selected['title'] = (($line['element']=='title') ? ' selected="selected"' : '');
636 619 $selected['post'] = (($line['element']=='post') ? ' selected="selected"' : '');
637 620 $selected['excerpt'] = (($line['element']=='excerpt') ? ' selected="selected"' : '');
638 621
639 - if ( !isset($line['class'])) : $line['class'] = array(); endif;
622 + if (!isset($line['class'])) : $line['class'] = array(); endif;
640 623 $line['class'][] = 'boilerplate-li';
641 624 ?>
642 625
643 -<li id="boilerplate-<?php print esc_attr($index); ?>-li" class="<?php print esc_attr(implode(' ', $line['class'])); ?>">&raquo; <strong>Add</strong> <select id="boilerplate-<?php print esc_attr($index); ?>-placement" name="boilerplate[<?php print esc_attr($index); ?>][placement]" style="width: 8.0em">
644 -<option value="before"<?php fwp_selected_flag( $selected, 'before' ); ?>>before</option>
645 -<option value="after"<?php fwp_selected_flag( $selected, 'after' ); ?>>after</option>
646 -</select> the <select style="width: 8.0em" id="boilerplate-<?php print esc_attr($index); ?>-element" name="boilerplate[<?php print esc_attr($index); ?>][element]">
647 -<option value="title"<?php fwp_selected_flag($selected, 'title' ); ?>>title</option>
648 -<option value="post"<?php fwp_selected_flag( $selected, 'post' ); ?>>content</option>
649 -<option value="excerpt"<?php fwp_selected_flag( $selected, 'excerpt' ); ?>>excerpt</option>
650 -</select> of
651 -<?php print esc_html($syndicatedPosts); ?>: <textarea style="vertical-align: top; width: 40%;" rows="2" cols="30" class="boilerplate-template" id="boilerplate-<?php print esc_attr($index); ?>-template" name="boilerplate[<?php print esc_attr($index); ?>][template]"><?php print esc_html($line['template']); ?></textarea></li>
626 +<li id="boilerplate-<?php print $index; ?>-li" class="<?php print implode(' ', $line['class']); ?>">&raquo; <strong>Add</strong> <select id="boilerplate-<?php print $index; ?>-placement" name="boilerplate[<?php print $index; ?>][placement]" style="width: 8.0em">
627 +<option value="before"<?php print $selected['before']; ?>>before</option>
628 +<option value="after"<?php print $selected['after']; ?>>after</option>
629 +</select> the <select style="width: 8.0em" id="boilerplate-<?php print $index; ?>-element" name="boilerplate[<?php print $index; ?>][element]">
630 +<option value="title"<?php print $selected['title']; ?>>title</option>
631 +<option value="post"<?php print $selected['post']; ?>>content</option>
632 +<option value="excerpt"<?php print $selected['excerpt']; ?>>excerpt</option>
633 +</select> of
634 +<?php print $syndicatedPosts; ?>: <textarea style="vertical-align: top; width: 40%;" rows="2" cols="30" class="boilerplate-template" id="boilerplate-<?php print $index; ?>-template" name="boilerplate[<?php print $index; ?>][template]"><?php print htmlspecialchars($line['template']); ?></textarea></li>
652 635 <?php
653 636 endif;
654 637 endforeach;
655 638 ?>
@@ -689,9 +672,9 @@
689 672 };
690 673 dummy[element]['el'].attr('id', newIdPrefix+'-'+element);
691 674 dummy[element]['el'].attr('name', newNamePrefix+'['+element+']');
692 675 }
693 -
676 +
694 677 var newLi = $('#'+newIdPrefix+'-li').clone(/*events=*/ true);
695 678 //newLi.attr('id', null);
696 679 newLi.removeClass('hide-if-js');
697 680 newLi.addClass('boilerplate-li');
@@ -717,9 +700,9 @@
717 700 ?>
718 701 <h3>Advanced Settings</h3>
719 702 <table class="edit-form narrow">
720 703 <tbody>
721 - <tr><th scope="row"><?php esc_html_e("Hook Order:") ?></th>
704 + <tr><th scope="row"><?php _e("Hook Order:") ?></th>
722 705 <td><input type="number" name="boilerplate_hook_order" value="<?php print esc_attr($hookOrder); ?>" /></td></tr>
723 706 </tbody>
724 707 </table>
725 708 <?php
@@ -735,9 +718,9 @@
735 718 'comments_and_pings_box' => __('Comments & Pings'),
736 719 'custom_post_settings_box' => __('Custom Post Settings (to apply to each syndicated post)'),
737 720 'custom_post_types_box' => ('Custom Post Types (advanced database settings)'),
738 721 );
739 -
722 +
740 723 parent::display();
741 724 } /* FeedWordPressPostsPage::display () */
742 725
743 726