[geeklog-modules] Center block API
geeklog-modules-admin at lists.geeklog.net
geeklog-modules-admin at lists.geeklog.net
Mon May 12 08:50:52 EDT 2003
Dirk,
I think it might be better to add a $CONF variable 'fp_nonews' or
similar which, when set to true, would disable news on the index page.
I don't think putting the option in the function call to the plugin API
makes much sense in this case.
Using a config variable would make things more straight forward than
people figuring which flags need to be set in function calls and/or what
format to return the results of a function in.
Other than that I like the ability to control front page content.
-Vinny
geeklog-modules-admin at lists.geeklog.net wrote:
> Blaine wrote:
>
>
>>So in index.php, we will need to call the PLG_showCenterblock ($where = 0,
>>$page = 1, $topic = '') several times and the plugin functions will need the
>>logic to figure out when they should return the formated block HTML.
>
>
> Yep. Geeklog could cache the information which plugin actually supports
> the center block API so that we only need one MySQL request.
>
>
>
>>Will there be anyway to prevent a plugin centerblock from firing more then
>>once or will there be a default position?
>
>
> That would be in the plugin's responsibility. With all those parameters
> that it is given, it should be easy to figure out.
>
> Actually, I was thinking some more about this and I'd like to take it one
> step further: What we have with the "static pages on frontpage" hack is,
> effectively, a center block (specifically hacked into Geeklog for that
> one plugin). So it would make sense to replace that hack with a proper
> center block call for the static pages plugin.
>
> However, static pages has one additional feature: "nonews", i.e. the
> ability to replace the frontpage entirely. I would image that this could
> be used e.g. for the forum center block as well - you could have a
> Geeklog site that only displays the forum topics on the frontpage.
>
> So my revised suggestion for the API and its parameters would be:
>
> function PLG_showCenterblock ($where = 1, $page = 1, $topic = '')
>
> Where $where would now mean 0 = nonews, i.e. center block takes over the
> entire page, 1 = top of page, 2 = after the featured story, 3 = bottom of
> page.
>
> So for $where = 0, the plugin would either return an empty string (if it
> doesn't intend to take over the page) or it would have to return the
> _complete_ HTML to be displayed, i.e. including site header and footer
> (the static pages plugin has an option to create a page without the
> header and footer). Of course, only one plugin could take over the page,
> so Geeklog would stop calling the other plugins as soon as one returns a
> non-empty string for PLG_showCenterblock(0).
>
> For $where = 1, 2, 3 the plugin would simply return the HTML for the
> block and Geeklog would place it above, between, or below the stories,
> respectively.
>
> How does that sound? One MySQL request (if cached), and up to four
> PLG_showCenterblock() calls (only to those plugins that actually
> implement the API) shouldn't have too much of an impact on the
> performance, but would offer a lot of flexibility.
>
> bye, Dirk
>
>
More information about the geeklog-modules
mailing list