Michael C. Harris wrote:
>
> If both plugins use a template the theme can just
> $theme->display('blogroll') and it will display whichever one is
> activated, no editing required. Also, if the theme supports it but
> there is no plugin activated, there will be no output.
>
This works, of course, but isn't a long-term solution.
Instead, what we should do is allow themes to advertise (via their xml
definition) what places they allow custom content to appear. In the
past I've called these "hardpoints" - in aeronautical terms, "A
hardpoint is any part of an airframe designed to carry an external
load." (Wikipedia)
Likewise, plugins could advertise what content they make available for
attachment to hardpoints using API calls. And since themes are
themselves a sort of plugin, they could also make available their own
content for placement.
Somewhere in our admin UI, probably around the theme selection page or
settings page, we would provide an interface for site admins to match
those plugins' output with hardpoints in the theme. Then if you change
themes, you don't need to edit code, you simply attach the content to
the hardpoints in the new theme.
Call it blocks. Call it widgets. Call it content places. Call it
whatever you like, this functionality is available almost universally in
themes in other platforms, and I think it's a great way to get the
extensibility we need.
Now, there is going to be some concern that when a plugin supplies
output to a theme that the styling and coding of the plugin's output
will not match the theme. This is a real and valid concern, but one
that we can mitigate through code that we already have in place.
Plugins that produce output should include a template file for that
output and register it with the system. This will be used for the
default output that they produce. Any template produced this way can be
overridden by including a file in the current theme with an identical name.
So for themes that want to support styling for specific plugins, they
can include templates. For users who want to style plugin output when
this output isn't provided for their theme, they can build a new
template specific to that theme and include it in the theme directory,
and this will not affect the default plugin output (unless they
overwrite that purposefully) or the output of the plugin in other themes.
This is a feature I was hoping we'd get in 0.7, when we really get to
business making the theme system perfect.
Owen
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/habari-users
-~----------~----~----~----~------~----~------~--~---