comments inline ...
Dave Johnson wrote:
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
Well, after doing that don't you then need to create a new template for
"sitefeed" and define the velocity for that? That's the step that I am
hoping we can remove because rather then forcing the site-wide feeds to
be custom we just impose a simple constraint that the mainpageblog must
set a flag to define if it will act as a site-wide blog or now.
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
This sounds like a good approach to me. I guess I still wonder why it
would be beneficial to have multiple weblogs act as site-wide scoped
blogs though? Any weblog can be given the SitePageModel and choose to
provide site-wide views of data, but why would we really need multiple
blogs with the standard site-wide scoped feeds?
Also consider that if a weblogs feedScope=site then it's feeds are still
just handled by Roller and are not custom, so having 2 weblogs
configured like that would mean that they both offer the same exact
feed. I don't see the benefit of that.
So I think I'm back to where I started. I don't see a valid reason why
we would want to consider 2 weblogs as this special class of site-wide
weblog. Any weblog can have the SitePageModel and use it how they want,
but only 1 (or 0) weblogs are considered to have that special site-wide
scope where it's standard feeds are site-wide, etc.
I still suggest we make 2 simplifications ...
1) The weblog chosen as site.mainpageblog implicitly receives the
SitePageModel, so it doesn't have to be added to website.pageModels.
This is just nicer on users so that they don't have to remember to do
both steps.
2) Rather than let any weblog have a scope=site I suggest we only have 1
weblog have site-wide scope. We toggle that with the parameter
site.mainblogscope=(site|individual).
These 2 params would be in the admin settings in their own section about
controlling how the site homepage looks.
If we really don't think that #2 is okay and we feel that multiple blogs
really do need to be able to have site-wide scope, then we go with a per
weblog param like Dave suggested and set website.scope=site. I'd just
like to hear a decent scenario where we think this applies.
-- Allen
(Because only global admins can set website.pageModels and
website.feedScope)
- Dave