summaryrefslogtreecommitdiff
path: root/doc/plugins/contrib/report/discussion.mdwn
blob: 42a1009cb65a0ce1b3a6ad6cb545f5b8ef7bf333 (plain)

Wow, this plugin does a lot... it seems to be inline (but without the feeds or the ability to not have archive="yes"), plus part of [[plugins/contrib/trail]], plus some sorting, plus an ingenious workaround for template evaluation being relatively stateless.

A large part of this plugin would just fall off if one of the versions of "[[todo/allow_plugins_to_add_sorting_methods]]" was merged, which was a large part of the idea of that feature request :-) To make use of that you'd have to use pagespec_match_list in the trail case too, but that's easy enough - just add list => [@the_trail_pages] to the arguments.

Another large part would fall off if this plugin required, and internally invoked, inline (like my comments plugin does) - inline runs pagetemplate hooks, and in particular, it'll run the field hook. Alternatively, this plugin could invoke pagetemplate hooks itself, removing the special case for field.

Perhaps the headers thing could migrate into inline somehow? That might lead to making inline too big, though.

I think inline is already too big, honestly. --[[KathrynAndersen]]

Is the intention that the trail part is a performance hack, or a way to select pages? How does it relate to [[todo/wikitrails]] or [[plugins/contrib/trail]]? --[[smcv]]

The trail part is both a performance hack, and a way to select pages. I have over 5000 pages on my site, I need all the performance hacks I can get. For the performance hack, it is a way of reducing the need to iterate through every single page in the wiki in order to find matching pages. For the way-to-select-pages, yes, it is intended to be similar to [[todo/wikitrails]] and [[plugins/contrib/trail]] (and will be more similar with the new release which will be happening soon; it will add prev_* and next_* variables). The idea is that, rather than having to add special "trail" links on PageA to indicate that a page is part of the trail, it takes advantage of the %links hash, which already contains, for each page, an array of the links from that page to other pages. No need for special markup, just use what's there; a trail is defined as "all the pages linked to from page X", and since it's an array, it has an order already. But to avoid that being too limiting, one can use a pages=... pagespec to filter that list to a subset; only the pages one is interested in. And one can also sort it, if one so desires. --[[KathrynAndersen]]