PluginProbe
FeedWordPress / 0.98
FeedWordPress v0.98
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
feedwordpress / ChangeLog.text

ChangeLog.text in FeedWordPress 0.98, at ChangeLog.text

342 lines 18.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 FeedWordPress Change Log
2 ========================
3
4 Changes from 0.97 to 0.98
5 --------------------------
6
7 * WORDPRESS 2.0 COMPATIBILITY: This is a narrowly-targeted release to
8 solve a major outstanding problem. FeedWordPress is now compatible with
9 both WordPress 1.5 and WordPress 2.0. Incompatibilities that caused
10 fatal SQL errors, and a more subtle bug with off-kilter counts of posts
11 under a given category, have been resolved. FeedWordPress tests for
12 database schema using the global $wp_db_version variable (if null, then
13 we presume that we're dealing with WordPress 1.5).
14
15 NOTE: I have **not** fully tested FeedWordPress with WordPress 2.0.
16 Further testing may reveal more bugs. However, you should now be able
17 to get at least basic FeedWordPress functionality up and running.
18
19 * AUTHOR MATCHING: FeedWordPress tests several fields to see if it can
20 identify the author of the post as a user already in the WordPress user
21 database. In previous versions, it tested the user login, the nickname,
22 and tested for "aliases" listed in the Profile (see documentation). FWP
23 now also matches authors on the basis of e-mail address (*if* an e-mail
24 address is present). This is particularly helpful for formats such as
25 RSS 2.0, in which authors are primarily identified by e-mail addresses.
26
27 Changes from 0.96 to 0.97
28 -------------------------
29
30 * INSTALLATION PROCEDURE: Some of the changes between 0.96 and 0.97
31 require upgrades to the meta-data stored by FeedWordPress to work
32 properly. Thus, if you are upgrading from 0.96 or earlier to 0.97, most
33 FeedWordPress operations (including updates and template functions)
34 WILL BE DISABLED until you run the upgrade procedure. Fortunately,
35 running the upgrade procedure is easy: just go to either Options -->
36 Syndication or Links --> Syndicated in the WordPress Dashboard and press
37 the button.
38
39 * FEED FORMAT SUPPORT: Support has been added for the Atom 1.0 IETF
40 standard. Several other elements are also newly supported
41 (dcterms:created, dcterms:issued, dcterms:modified, dc:identifier,
42 proper support for the RSS 2.0 guid element, the RSS 2.0 author element,
43 the use of Atom author or Dublin Core dc:creator constructs at the feed
44 level to identify the author of individual items, etc.)
45
46 N.B.: full support of several Atom 1.0 features, such as categories
47 and enclosures, requires you to install the optional rss-functions.php
48 upgrade in your wp-includes directory.
49
50 * BUG FIX: Running `update-feeds.php` from command line or crontab
51 returned "I don't syndicate..." errors. It turns out that WordPress
52 sometimes tramples on the internal PHP superglobals that I depended on
53 to determine whether or not the script was being invoked from the
54 command line. This has been fixed (the variables are now checked
55 *before* WordPress can trample them). Note that `update-feeds.php` has
56 been thoroughly overhauled anyway; see below for details.
57
58 * BUG FIX: Duplicate categories or author names. Fixed two bugs that could
59 create duplicate author and/or category names when the name contained
60 either (a) certain international characters (causing a mismatch between
61 MySQL and PHP's handling of lowercasing text), or (b) characters that
62 have a special meaning in regular expressions (causing MySQL errors when
63 looking for the author or category due to regexp syntax errors). These
64 should now be fixed thanks to careful escaping of names that go into
65 regular expressions and careful matching of lowercasing functions
66 (comparing results from PHP only to other results from PHP, and results
67 from MySQL only to other results from MySQL).
68
69 * BUG FIX: Items dated Decembr 31, 1969 should appear less often. The
70 function for parsing W3C date-time format dates that ships with
71 MagpieRSS can only correctly parse fully-specified dates with a
72 fully-specified time, but valid W3C date-time format dates may omit the
73 time, the day of the month, or even the month. Some feeds in the wild
74 date their items with coarse-grained dates, so the optional
75 `rss-functions.php` upgrade now includes a more flexible parse_w3cdtf()
76 function that will work with both coarse-grained and fully-specified
77 dates. (If parts of the date or the time are omitted, they are filled in
78 with values based on the current time, so '2005-09-10' will be dated to
79 the current time on that day; '2004' will be dated to this day and time
80 one year ago.
81
82 N.B.: This fix is only available in the optional `rss-functions.php`
83 upgrade.
84
85 * BUG FIX: Evil use of HTTP GET has been undone. The WordPress interface
86 is riddled with inappropriate (non-idempotent) uses of HTTP GET queries
87 (ordinary links that make the server do something with significant
88 side-effects, such as deleting a post or a link from the database).
89 FeedWordPress did some of this too, especially in places where it aped
90 the WordPress interface (e.g. the "Delete" links in Links -->
91 Syndicated). That's bad business, though. I've changed the interface so
92 that all the examples of improper side-effects that I can find now
93 require an HTTP POST to take effect. I think I got pretty much
94 everything; if there's anything that I missed, let me know.
95
96 Further reading: [Sam Ruby 2005-05-06: This Stuff Matters] (http://www.intertwingly.net/blog/2005/05/06/This-Stuff-Matters)
97
98 * BUG FIX: Categories applied by `cats` setting should no longer prevent
99 category-based filtering from working. In FeedWordPress, you can (1)
100 apply certain categories to all syndicated posts, or all posts from
101 a particular feed; and (2) filter out all posts that don't match one
102 of the categories that are already in the WordPress database (allowing
103 for simple category-based filtering; just load up WordPress with the
104 categories you want to accept, and then tell FeedWordPress not to create
105 new ones). However, the way that (1) and (2) were implemented meant that
106 you couldn't effectively use them together; once you applied a known
107 category to all syndicated posts from a particular feed, it meant that
108 they'd have at least one familiar category (the category or categories
109 you were applying), and that would get all posts past the filter no
110 matter what categories they were originally from.
111
112 Well, no longer. You can still apply categories to all syndicated posts
113 (using either Syndication --> Options, or the feed-level settings under
114 Links --> Syndicated). But these categories are not applied to the post
115 until *after* it has already passed by the "familiar categories" filter.
116 So now, if you want, you can do category filtering and *then* apply as
117 many categories as you please to all and only posts that pass the filter.
118
119 * BUG FIX: Other minor typos and HTML gaffes were fixed along the way.
120
121 * PERFORMANCE: get_feed_meta() no longer hits the database for information
122 on every call; it now caches link data in memory, so FeedWordPress only
123 goes to the database once for each syndicated link. This may
124 substantially improve performance if your database server resources
125 are tight and your templates make a lot of use of custom settings from
126 get_feed_meta().
127
128 * API CHANGE: Link ID numbers, rather than RSS URIs, are now used to
129 identify the feed from which a post is syndicated when you use template
130 functions such as get_feed_meta(). The practical upshot of this is you
131 can switch feeds, or change the feed address for a particular syndicated
132 site, without breaking your templates for all the posts that were
133 syndicated from the earlier URI.
134
135 * API CHANGE: if you have plugins or templates that make use of the
136 get_feed_meta() function or the $fwp_feedmeta global, note that the
137 data formerly located under the `uri` and `name` fields is now located
138 under the `link/uri` field and the `link/name` field, respectively. Note
139 also that you can access the link ID number for any given feed under the
140 global $fwp_feedmeta['link/id'] (in plugins) or
141 get_feed_meta('link/id') (in a template in post contexts).
142
143 * FEATURE: the settings for individual feeds can now be edited using a
144 humane interface (where formerly you had to tweak key-value pairs in the
145 Link Notes section). To edit settings for a feed, pick the feed that you
146 want under Links --> Syndicated and click the Edit link.
147
148 * FEATURE: The "Unsubscribe" button (formerly "Delete") in Links -->
149 Syndicated now offers three options for unsubscribing from a feed: (1)
150 turning off the subscription without deleting the feed data or affecting
151 posts that were syndicated from the feed (this works by setting the Link
152 for the feed as "invisible"); (2) deleting the feed data and all of the
153 posts that were syndicated from the feed; or (3) deleting the feed data
154 and *keeping* the posts that were syndicated from the feed
155 setting the Link to "Invisible" (meaning that it will not be displayed
156 in lists of the site links on the front page, and it won't be checked
157 for updates; (2) deleting the Link and all of the posts that were
158 syndicated from its feed; or (3) deleting the feed data but keeping the
159 posts that were syndicated (which will henceforward be treated as if
160 they were local rather than syndicated posts). (Note that (1) is usually
161 the best option for aggregator sites, unless you want to clean up the
162 results of an error or a test.)
163
164 * FEATURE / BUG FIX: If you have been receiving mysterious "I don't
165 syndicate...", or "(local) HTTP status code was not 200", or "(local)
166 transport error - could not open socket", or "parse error - not well
167 formed" errors, then this update may solve your problems, and if it does
168 *not* solve them, it will at least make the reasons for the problems
169 easier to understand. That's because I've overhauled the way that
170 FeedWordPress goes about updating feeds.
171
172 If you use the command-line PHP scripting method to run scheduled
173 updates, then not much should change for you, except for fewer
174 mysterious errors. If you have done updates by sending periodic HTTP
175 requests to <http://your-blog.com/path/wp-content/update-feeds.php>,
176 then the details have changed somewhat; mostly in such a way as to make
177 things easier on you. See the README file or online documentation on
178 Staying Current for the details.
179
180 * FEATURE: FeedWordPress now features a more sophisticated system for
181 timed updates. Instead of polling *every* subscribed feed for updates
182 *each* time `update-feeds.php` is run, FeedWordPress now keeps track of
183 the last time it polled each feed, and only polls them again after a
184 certain period of time has passed. The amount of time is normally set
185 randomly for each feed, in a period between 30 minutes and 2 hours (so
186 as to stagger updates over time rather than polling all of the feeds at once. However, the length of time between updates can also be set
187 directly by the feed, which brings us to ...
188
189 * FEATURE: FeedWordPress now respects the settings in the `ttl` and
190 Syndication Module RSS elements. Feeds with these elements set will not
191 be polled any more frequently than they indicate with these feeds unless
192 the user manually forces FeedWordPress to poll the feed (see Links -->
193 Syndicated --> Edit settings).
194
195 Changes from 0.95 to 0.96
196 -------------------------
197
198 * FEATURE: support has been added for enclosures in RSS 2.0 and Atom
199 0.6+ newsfeeds. WordPress already supports adding enclosures to an
200 item; FeedWordPress merely gets the information on the enclosure
201 from the feed it is syndicating and plugs that information directly
202 into the WordPress database so that (among other things) that post
203 will have its enclosure listed in your blog's RSS 2 newsfeed.
204
205 Note that enclosure support requires using the optional MagpieRSS
206 upgrade (i.e., replacing your `wp-includes/rss-functions.php` with `OPTIONAL/wp-includes/rss-functions.php` from the FWP archive)
207
208 * FEATURE: for completeness's sake, there is now a feed setting,
209 `hardcode url`, that allows you to set the URI for the front page
210 of a contributor's website manually (that is, prevent it from being
211 automatically updated from the feed channel link on each update). To
212 set the URI manually, put a line like this in the Link Notes section
213 of a feed:
214
215 hardcode url: yes
216
217 You can also instruct FeedWordPress to use hardcoded URIs by default
218 on all feeds using Options --> Syndication
219
220 * FEATURE: by default, when FeedWordPress finds new syndicated posts,
221 it (1) publishes them immediately, (2) turns comments off, and (3)
222 turns trackback / pingback pings off. You can now alter all three
223 default behaviors (e.g., to allow pings on syndicated posts, or to
224 send newly-syndicated posts to the draft pile for moderation) using
225 Options --> Syndication
226
227
228 Changes from 0.91 to 0.95
229 -------------------------
230
231 * BUG FIX: Fixed an obscure bug in the handling of categories:
232 categories with trailing whitespace could cause categories with
233 duplicate names to be created. This no longer happens. While I was
234 at it I tightened up the operation of
235 FeedWordPress::lookup_categories() a bit in general.
236
237 * FEATURE DEPRECATED: the feed setting `hardcode categories` is now
238 deprecated in favor of `unknown categories` (see below), which
239 allows you to strip off any syndication categories not already in
240 your database using `unknown categories: default` or `unknown
241 categories: filter`. If you have `hardcode categories: yes` set on a
242 feed, this will be treated as `unknown categories: default` (i.e.,
243 no new categories will be added, but if a post doesn't match any of
244 the categories it will be added in the default category--usually
245 "Uncategorized" or "General").
246
247 * FEATURE: You can now set global defaults as to whether or not
248 FeedWordPress will update the Link Name and Link Description
249 settings for feeds automatically from the feed title and feed
250 tagline. (By default, it does, as it has in past versions.) Whether
251 this behavior is turned on or off, you can still override the
252 default behavior using feed settings of `hardcode name: yes`,
253 `hardcode name: no`, `hardcode description: yes`, or `hardcode
254 description: no`.
255
256 * FEATURE: Users can now provide one or several "aliases" for an
257 author, just as they can for a category. For example, to make
258 FeedWordPress treat posts by "Joseph Cardinal Ratzinger" and "Pope
259 Benedict XVI" as by the same author, edit the user profile for Pope
260 Benedict XVI and add a line like this to the "User profile" field:
261
262 a.k.a.: Joseph Cardinal Ratzinger
263
264 You can add several aliases, each on a line by itself. You can also
265 add any other text you like to the Profile without interfering with
266 the aliases.
267
268 * FEATURE: Users can now choose how to handle syndicated posts that
269 are in unfamiliar categories or by unfamiliar authors (i.e.,
270 categories or authors whose names are not yet in the WordPress
271 database). By default, FeedWordPress will (as before) create a new
272 category (or new author) and use it for the current post and any
273 future posts. This behavior can be changed, either for all feeds or
274 for one or another particular feed.
275
276 There are now three different options for an unfamiliar author: (1)
277 FeedWordPress can create a new author account and attribute the
278 syndicated post to the new account; (2) FeedWordPress can attribute
279 the post to an author if the author's name is familiar, and to a
280 default author (currently, this means the Site Administrator
281 account) if it is not; (3) FeedWordPress can drop posts by
282 unfamiliar authors and syndicate only posts by authors who are
283 already in the database.
284
285 There are, similarly, two different options for an unfamiliar
286 category: (1) FeedWordPress can create new categories and place the
287 syndicated post in them; (2) FeedWordPress can drop the unfamiliar
288 categories and place syndicated posts only in categories that it is
289 already familiar with. In addition, FeedWordPress 0.95 lets you
290 choose whether posts that are in *no* familiar categories should be
291 syndicated (and placed in the default category for the blog) or
292 simply dropped.
293
294 You can set the default behavior for both authors and categories
295 using the settings in Options --> Syndication. You can also set
296 different behavior for specific feeds by adding the `unfamiliar
297 author` and / or `unfamiliar categories` settings to the Link Notes
298 section of a feed:
299
300 unfamiliar author: (create|default|filter)
301 unfamiliar categories: (create|default|filter)
302
303 A setting of `unfamiliar author: create` will make FeedWordPress
304 create new authors to match unfamiliar author names *for this feed
305 alone*. A setting of `unfamiliar author: default` will make it
306 assign posts from unfamiliar authors to the default user account. A
307 setting of `unfamiliar author: filter` will cause all posts (from
308 this feed alone) to be dropped unless they are by an author already
309 listed in the database. Similiarly, `unfamiliar categories: create`
310 will make FeedWordPress create new categories to match unfamiliar
311 category names *for this feed alone*; `unfamiliar categories:
312 default` will cause it to drop any unfamiliar category names; and
313 `unfamiliar categories: filter` will cause it to *both* drop any
314 unfamiliar category names *and* to only syndicate posts that are
315 placed in one or more familiar categories.
316
317 These two new features allow users to do some coarse-grained
318 filtering without having to write a PHP filter. Specifically, they
319 offer an easy way for you to filter feeds by category or by author.
320 Suppose, for example, that you only wanted to syndicate posts that
321 your contributors place in the "Llamas" category. You could do so by
322 setting up your installation of WordPress so that the only category
323 in the database is "Llamas," and then use Options --> Syndication to
324 set "Unfamiliar categories" to "don't create new categories and
325 don't syndicate posts unless they match at least one familiar
326 category". Now, when you update, only posts in the "Llamas" category
327 will be syndicated by FeedWordPress.
328
329 Similarly, if you wanted to filter one particular feed so that only
330 posts by (for example) the author "Earl J. Llama" were syndicated to
331 your site, you could do so by creating a user account for Earl J.
332 Llama, then adding the following line to the settings for the feed
333 in Link Notes:
334
335 unfamiliar author: filter
336
337 This will cause any posts from this feed that are not authored by
338 Earl J. Llama to be discarded, and only the posts by Earl J. Llama
339 will be syndicated. (If the setting is used on one specific feed, it
340 will not affect how posts from other feeds are syndicated.)
341
342