1 | <?php
|
---|
2 | require_once(dirname(__FILE__) . '/admin-ui.php');
|
---|
3 |
|
---|
4 | function fwp_syndication_options_page () {
|
---|
5 | global $wpdb, $wp_db_version, $fwp_path;
|
---|
6 |
|
---|
7 | if (FeedWordPress::needs_upgrade()) :
|
---|
8 | fwp_upgrade_page();
|
---|
9 | return;
|
---|
10 | endif;
|
---|
11 |
|
---|
12 | // If this is a POST, validate source and user credentials
|
---|
13 | FeedWordPressCompatibility::validate_http_request(/*action=*/ 'feedwordpress_options', /*capability=*/ 'manage_options');
|
---|
14 |
|
---|
15 | if (isset($_POST['create_index'])) :
|
---|
16 | FeedWordPress::create_guid_index();
|
---|
17 | ?>
|
---|
18 | <div class="updated">
|
---|
19 | <p><?php _e('Index created on database table.')?></p>
|
---|
20 | </div>
|
---|
21 | <?php
|
---|
22 | endif;
|
---|
23 |
|
---|
24 | if (isset($_POST['submit']) or isset($_POST['create_index'])) :
|
---|
25 | update_option('feedwordpress_cat_id', $_REQUEST['syndication_category']);
|
---|
26 | update_option('feedwordpress_update_logging', $_REQUEST['update_logging']);
|
---|
27 | update_option('feedwordpress_debug', $_POST['feedwordpress_debug']);
|
---|
28 | update_option('feedwordpress_automatic_updates', ($_POST['automatic_updates']=='yes'));
|
---|
29 | update_option('feedwordpress_update_time_limit', ($_POST['update_time_limit']=='yes')?(int) $_POST['time_limit_seconds']:0);
|
---|
30 |
|
---|
31 | $freshness_interval = (isset($_POST['freshness_interval']) ? (int) $_POST['freshness_interval'] : 10);
|
---|
32 | update_option('feedworidpress_freshness', $freshness_interval*60);
|
---|
33 |
|
---|
34 | if (isset($_REQUEST['hardcode_name']) and ($_REQUEST['hardcode_name'] == 'no')) :
|
---|
35 | update_option('feedwordpress_hardcode_name', 'no');
|
---|
36 | else :
|
---|
37 | update_option('feedwordpress_hardcode_name', 'yes');
|
---|
38 | endif;
|
---|
39 |
|
---|
40 | if (isset($_REQUEST['hardcode_description']) and ($_REQUEST['hardcode_description'] == 'no')) :
|
---|
41 | update_option('feedwordpress_hardcode_description', 'no');
|
---|
42 | else :
|
---|
43 | update_option('feedwordpress_hardcode_description', 'yes');
|
---|
44 | endif;
|
---|
45 |
|
---|
46 | if (isset($_REQUEST['hardcode_url']) and ($_REQUEST['hardcode_url'] == 'no')) :
|
---|
47 | update_option('feedwordpress_hardcode_url', 'no');
|
---|
48 | else :
|
---|
49 | update_option('feedwordpress_hardcode_url', 'yes');
|
---|
50 | endif;
|
---|
51 | ?>
|
---|
52 | <div class="updated">
|
---|
53 | <p><?php _e('Options saved.')?></p>
|
---|
54 | </div>
|
---|
55 | <?php
|
---|
56 | endif;
|
---|
57 |
|
---|
58 | $cat_id = FeedWordPress::link_category_id();
|
---|
59 | $update_logging = get_option('feedwordpress_update_logging');
|
---|
60 | $feedwordpress_debug = (get_option('feedwordpress_debug')=='yes');
|
---|
61 |
|
---|
62 | $update_time_limit = (int) get_option('feedwordpress_update_time_limit');
|
---|
63 | $automatic_updates = get_option('feedwordpress_automatic_updates');
|
---|
64 |
|
---|
65 | $freshness_interval = get_option('feedwordpress_freshness');
|
---|
66 | if (false === $freshness_interval) :
|
---|
67 | $freshness_interval = FEEDWORDPRESS_FRESHNESS_INTERVAL;
|
---|
68 | endif;
|
---|
69 | $freshness_interval = $freshness_interval / 60; // convert to minutes
|
---|
70 |
|
---|
71 | $hardcode_name = get_option('feedwordpress_hardcode_name');
|
---|
72 | $hardcode_description = get_option('feedwordpress_hardcode_description');
|
---|
73 | $hardcode_url = get_option('feedwordpress_hardcode_url');
|
---|
74 |
|
---|
75 | if (isset($wp_db_version) and $wp_db_version >= 4772) :
|
---|
76 | $results = get_categories(array(
|
---|
77 | "type" => 'link',
|
---|
78 | "hide_empty" => false,
|
---|
79 | ));
|
---|
80 |
|
---|
81 | // Guarantee that the Contributors category will be in the drop-down chooser, even if it is empty.
|
---|
82 | $found_link_category_id = false;
|
---|
83 | foreach ($results as $row) :
|
---|
84 | if ($row->cat_id == $cat_id) : $found_link_category_id = true; endif;
|
---|
85 | endforeach;
|
---|
86 |
|
---|
87 | if (!$found_link_category_id) : $results[] = get_category($cat_id); endif;
|
---|
88 | else :
|
---|
89 | $results = $wpdb->get_results("SELECT cat_id, cat_name, auto_toggle FROM $wpdb->linkcategories ORDER BY cat_id");
|
---|
90 | endif;
|
---|
91 |
|
---|
92 | $cats = array_map('trim',
|
---|
93 | preg_split(FEEDWORDPRESS_CAT_SEPARATOR_PATTERN, get_option('feedwordpress_syndication_cats'))
|
---|
94 | );
|
---|
95 | $dogs = SyndicatedPost::category_ids($cats, /*unfamiliar=*/ NULL);
|
---|
96 |
|
---|
97 | $tags = array_map('trim',
|
---|
98 | preg_split(FEEDWORDPRESS_CAT_SEPARATOR_PATTERN, get_option('feedwordpress_syndication_tags'))
|
---|
99 | );
|
---|
100 |
|
---|
101 | if (fwp_test_wp_version(FWP_SCHEMA_27)) :
|
---|
102 | $icon = '<div class="icon32"><img src="'.htmlspecialchars(WP_PLUGIN_URL.'/'.$fwp_path.'/feedwordpress.png').'" alt="" /></div>';
|
---|
103 | else :
|
---|
104 | $icon = '';
|
---|
105 | endif;
|
---|
106 |
|
---|
107 | if (fwp_test_wp_version(FWP_SCHEMA_26)) :
|
---|
108 | $options = __('Settings');
|
---|
109 | else :
|
---|
110 | $options = __('Options');
|
---|
111 | endif;
|
---|
112 | ?>
|
---|
113 | <script type="text/javascript">
|
---|
114 | function contextual_appearance (item, appear, disappear, value, checkbox) {
|
---|
115 | var rollup=document.getElementById(item);
|
---|
116 | var newuser=document.getElementById(appear);
|
---|
117 | var sitewide=document.getElementById(disappear);
|
---|
118 | if (rollup) {
|
---|
119 | if ((checkbox && rollup.checked) || (!checkbox && value==rollup.value)) {
|
---|
120 | if (newuser) newuser.style.display='block';
|
---|
121 | if (sitewide) sitewide.style.display='none';
|
---|
122 | } else {
|
---|
123 | if (newuser) newuser.style.display='none';
|
---|
124 | if (sitewide) sitewide.style.display='block';
|
---|
125 | }
|
---|
126 | }
|
---|
127 | }
|
---|
128 | </script>
|
---|
129 |
|
---|
130 | <div class="wrap">
|
---|
131 | <?php print $icon; ?>
|
---|
132 | <h2>Syndication <?php print $options; ?></h2>
|
---|
133 | <div id="poststuff">
|
---|
134 | <form action="" method="post">
|
---|
135 | <?php
|
---|
136 | FeedWordPressCompatibility::stamp_nonce('feedwordpress_options');
|
---|
137 | fwp_linkedit_single_submit();
|
---|
138 | ?>
|
---|
139 | <div id="post-body">
|
---|
140 | <?php fwp_option_box_opener('Syndicated Feeds', 'syndicatedfeedsdiv'); ?>
|
---|
141 | <table class="editform" width="100%" cellspacing="2" cellpadding="5">
|
---|
142 | <tr>
|
---|
143 | <th width="33%" scope="row">Syndicated Link category:</th>
|
---|
144 | <td width="67%"><?php
|
---|
145 | echo "\n<select name=\"syndication_category\" size=\"1\">";
|
---|
146 | foreach ($results as $row) :
|
---|
147 | if (!isset($row->cat_id)) : $row->cat_id = $row->cat_ID; endif;
|
---|
148 |
|
---|
149 | echo "\n\t<option value=\"$row->cat_id\"";
|
---|
150 | if ($row->cat_id == $cat_id) :
|
---|
151 | echo " selected='selected'";
|
---|
152 | endif;
|
---|
153 | echo ">$row->cat_id: ".wp_specialchars($row->cat_name);
|
---|
154 | if ('Y' == $row->auto_toggle) :
|
---|
155 | echo ' (auto toggle)';
|
---|
156 | endif;
|
---|
157 | echo "</option>\n";
|
---|
158 | endforeach;
|
---|
159 | echo "\n</select>\n";
|
---|
160 | ?></td>
|
---|
161 | </tr>
|
---|
162 |
|
---|
163 | <tr style="vertical-align: top">
|
---|
164 | <th width="33%" scope="row">Check for updates:</th>
|
---|
165 | <td width="67%"><select name="automatic_updates" size="1">
|
---|
166 | <option value="yes"<?php echo ($automatic_updates)?' selected="selected"':''; ?>>automatically</option>
|
---|
167 | <option value="no"<?php echo (!$automatic_updates)?' selected="selected"':''; ?>>only when I request</option>
|
---|
168 | </select>
|
---|
169 | </td>
|
---|
170 | </tr>
|
---|
171 |
|
---|
172 | <tr style="vertical-align: top">
|
---|
173 | <th width="33%" scope="row"><?php print __('Time limit on updates'); ?>:</th>
|
---|
174 | <td width="67%"><select id="time-limit" name="update_time_limit" size="1" onchange="contextual_appearance('time-limit', 'time-limit-box', null, 'yes');">
|
---|
175 | <option value="no"<?php echo ($update_time_limit>0)?'':' selected="selected"'; ?>>no time limit on updates</option>
|
---|
176 | <option value="yes"<?php echo ($update_time_limit>0)?' selected="selected"':''; ?>>limit updates to no more than...</option>
|
---|
177 | </select>
|
---|
178 | <span id="time-limit-box"><label><input type="text" name="time_limit_seconds" value="<?php print $update_time_limit; ?>" size="5" /> seconds</label></span>
|
---|
179 | </tr>
|
---|
180 |
|
---|
181 | <script type="text/javascript">
|
---|
182 | contextual_appearance('time-limit', 'time-limit-box', null, 'yes');
|
---|
183 | </script>
|
---|
184 |
|
---|
185 | <tr><th width="33%" scope="row" style="vertical-align:top">Feed information:</th>
|
---|
186 | <td width="67%"><ul style="margin:0;padding:0;list-style:none">
|
---|
187 | <li><input type="checkbox" name="hardcode_name" value="no"<?php echo (($hardcode_name=='yes')?'':' checked="checked"');?>/> Update the contributor title when the feed title changes</li>
|
---|
188 | <li><input type="checkbox" name="hardcode_description" value="no"<?php echo (($hardcode_description=='yes')?'':' checked="checked"');?>/> Update when contributor description if the feed tagline changes</li>
|
---|
189 | <li><input type="checkbox" name="hardcode_url" value="no"<?php echo (($hardcode_url=='yes')?'':' checked="checked"');?>/> Update the contributor homepage when the feed link changes</li>
|
---|
190 | </ul></td></tr>
|
---|
191 | </table>
|
---|
192 | <?php fwp_linkedit_periodic_submit(); ?>
|
---|
193 | <?php fwp_option_box_closer(); ?>
|
---|
194 |
|
---|
195 | <?php
|
---|
196 | FeedWordPressSettingsUI::instead_of_posts_box();
|
---|
197 | FeedWordPressSettingsUI::instead_of_authors_box();
|
---|
198 | FeedWordPressSettingsUI::instead_of_categories_box();
|
---|
199 |
|
---|
200 | fwp_option_box_opener('Back End', 'backenddiv', 'postbox');
|
---|
201 | ?>
|
---|
202 | <table class="editform" width="100%" cellspacing="2" cellpadding="5">
|
---|
203 | <tr style="vertical-align: top">
|
---|
204 | <th width="33%" scope="row">Update notices:</th>
|
---|
205 | <td width="67%"><select name="update_logging" size="1">
|
---|
206 | <option value="yes"<?php echo (($update_logging=='yes')?' selected="selected"':''); ?>>write to PHP logs</option>
|
---|
207 | <option value="no"<?php echo (($update_logging!='yes')?' selected="selected"':''); ?>>don't write to PHP logs</option>
|
---|
208 | </select></td>
|
---|
209 | </tr>
|
---|
210 | <tr style="vertical-align: top">
|
---|
211 | <th width="33%" scope="row">Debugging mode:</th>
|
---|
212 | <td width="67%"><select name="feedwordpress_debug" size="1">
|
---|
213 | <option value="yes"<?php echo ($feedwordpress_debug ? ' selected="selected"' : ''); ?>>on</option>
|
---|
214 | <option value="no"<?php echo ($feedwordpress_debug ? '' : ' selected="selected"'); ?>>off</option>
|
---|
215 | </select>
|
---|
216 | <p>When debugging mode is <strong>ON</strong>, FeedWordPress displays many diagnostic error messages,
|
---|
217 | warnings, and notices that are ordinarily suppressed, and turns off all caching of feeds. Use with
|
---|
218 | caution: this setting is absolutely inappropriate for a production server.</p>
|
---|
219 | </td>
|
---|
220 | </tr>
|
---|
221 |
|
---|
222 | <tr style="vertical-align: top">
|
---|
223 | <th width="33%" scope="row">Guid index:</th>
|
---|
224 | <td width="67%"><input class="button" type="submit" name="create_index" value="Create index on guid column in posts database table" />
|
---|
225 | <p>Creating this index may significantly improve performance on some large
|
---|
226 | FeedWordPress installations.</p></td>
|
---|
227 | </tr>
|
---|
228 | </table>
|
---|
229 | <?php
|
---|
230 | fwp_option_box_closer();
|
---|
231 | fwp_linkedit_periodic_submit();
|
---|
232 | fwp_linkedit_single_submit_closer();
|
---|
233 | ?>
|
---|
234 | </div>
|
---|
235 | </form>
|
---|
236 |
|
---|
237 | </div> <!-- id="poststuff" -->
|
---|
238 | </div> <!-- class="wrap" -->
|
---|
239 | <?php
|
---|
240 | }
|
---|
241 |
|
---|
242 | fwp_syndication_options_page();
|
---|
243 |
|
---|