Comments below...
On 6/14/06, Allen Gilliland <[EMAIL PROTECTED]> wrote:
I was thinking about this a little bit more on the way home and I have
one important question which I believe is important to answer before we
can figure out the implementation ..
Do we want to force the weblog selected as the frontpage blog to decide
if it will function as a site-wide aggregation blog or an individual
blog? Or another way to put it, are we going to allow the frontpage
blog function both as an individual weblog and the site-wide weblog or
does it have to choose one or the other?
IMO we *should* force the frontpage blog to decide if it will function
as a site-wide aggregation blog *or* as an individual blog, but it can't
be both. Here's my reasoning ...
I can only think of 4 possible ways in which Roller and the frontpage
could theoretically be configured ...
1. Hosting a single individual weblog. no need for site-wide functions.
2. Hosting multiple weblogs, but the homepage is supposed to show just
one of the weblogs. the users don't want any site-wide aggregation
functions.
3. Hosting multiple weblogs and the homepage should be a special weblog
which shows site-wide data and has site-wide feeds. The homepage blog
doesn't function as a blog on its own.
4. Hosting multiple weblogs and the homepage should be a special weblog
which shows site-wide data and has site-wide feeds. The homepage blogs
*should* function as a blog on its own.
IMO #1, #2, and #3 are all very valid scenerios which we certainly want
to support, but #4 is not. First off, I don't see a situation where
scenerio #4 is really of any benefit, it's almost certainly better if
weblog content is published outside of the homepage blog. Second, I'm
not sure that technically we have a good way to achieve #4. To
accomplish that *all* of the urls for site-wide content have to be
separate from normal weblog urls, and I don't think that is desirable.
Finally, I think that we greatly reduce the complexity of this problem
by not supporting option #4.
So at this point I would recommend that we only support options #1, #2,
and #3 and we do that using a combination of 2 properties. 1)
site.mainpageblog which identifies which blog serves as the homepage of
the application. 2) site.mainpageisaggregation (or similar) which
identifies if the homepage blog is serving as an aggregation blog or as
a standard weblog. This would allow us to configure the homepage blog
to work under all 3 options.
Also remember, if the homepage blog is functioning as an aggregation
blog then all of it's normal pages and feeds return site-wide content.
That means that the standard rss, atom, comment, etc feeds are all
site-wide versions from their normal urls.
Also note that this decision only applies to the one weblog chosen to
represent the mainpage blog. Other weblogs may be given the
SitePageModel and can use it however they see fit, but their feeds and
pages won't be the site-wide versions.
does that make sense? do we think that will work for providing the
site-wide content? thoughts?
In the current AtlasMacroModels proposal every blog, including the
front page one, gets two main feeds: entries and comments. They have
blog scope and are not site wide. If you're running a site wide blog
then you ask a global admin to add the site-wide page models and you
add some additional feeds with site-wide content. I like this approach
becuase it requires the smallest amount of config.
Here's all you'd need to setup a site-wide front page blog:
site.mainpageblog=myblog
website.pageModels=SitePageModel, PlanetPageModel
That said, I do agree that it would be nice for the two main feeds of
a frontpage blog to be site wide feeds. That way, a frontpage blogger
wouldn't have to add an new feeds. But I don't like the
site.mainpageisaggregation idea because it rules out the possibility
of multiple front-page blogs with aggegation. I'd rather add a website
field like website.feedScope.
So, if you want a site-wide frontpage blog, you'd get your admin to
set you up this way:
site.mainpageblog=myblog
website.pageModels=SitePageModel, PlanetPageModel
website.feedScope=site
(Because only global admins can set website.pageModels and website.feedScope)
- Dave