[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