I changed common_local_url() to take an additional optional argument
-- for query parameters. Being persnickety, I made it the third of
four, and moved the last one ($fragment) down a slot. That required
changing a couple of calls.
This reverts commit 616bdd43a921b2554d21b80af28ddb0fb6cb3c16.
Kind of a long hard way to deal with a simple situation, so I'd prefer
to just use the global handler.
Renamed the Action functions to throw an exception like it. I still
think it probably makes sense to have the callback defined in both
places for finer control.
I got a little sick of trying to keep the export data and <head> links
synched in actions, so I made a common method, getFeeds(), which gets
the feeds for both. It returns an array of Feed objects, which know
about what their mime type is, title, location, all that jazz.
I changed the FeedList class so it handles the new Feed objects
instead of the old array of data.
I changed all the actions that show feeds (I think...) so that they
now use getFeeds() for all their feed needs.
My attempts here are to mimic the `pagination()` method shared by
actions. I'm tentatively adding the `$count` property to actions so that
we can query the number of notices ''being displayed'' per page prior to
calling the actual `pagination()` method itself, since document
relationship `<link>` elements need to be output inside of `showHead()`,
before `showContent()`, which is where `pagination()` is, gets called.
These extra `<link>` elements only appear on pages where pagination
makes sense. They trigger functionality in some user agents, such as
Opera's Navigation Bar for more easily navigating forward and backwards
across a paged set of notices, messages, or group lists, etc.
I've seen a request or two pop up for this on the Laconica group on
Identica, and I'd personally like there to be a link to the search
page from my own groups listing, as I often find myself looking for
one and end up at my browser's address bar.
Moved the common_avatar_* functions to the Avatar class. Typically
either as methods on the object or as static methods. Replaced all the
uses of the functions in other modules.