Hello,
After a discussion with Vincent and Denis, we've concluded that the actual
implementation is an unfinished state of multi-blogs feature, and that our
isolated blog proposal is just a continuation of it.
Actually the blog application propose 2 types of blogs, global and local,
the only global blog is installed by default with xwiki on the '*Blog*'
space. Only local blogs can be created using the blog application UI.
To finish the implementation of the multi-blogs feature, we want to remove
the notion of blog type, which does not have much meaning in the current
implementation. All blogs will therefore be isolated as explained in the
initial proposal above, and the default Blog space will contain a blog like
any other. Displaying blog posts from different spaces into a single blog
require the blogs to share the same categories, which is opposed to the
multi-blog feature initially envision by XWIKI-6355. While we don't close
the idea, it is a advanced UC that we will not cover immediately. To
continute proper sharing of categories in existing blogs, we will add a new
properties to store the reference of the space that store the categories of
a given blog into the BlogClass descriptor. But, for any newly created
blog, we will always set this value to a space inside that new blog, making
those categories isolated for that blog, fixing XWIKI-6355.
We also propose to remove the unrelated and confusing blog type selection
when creating a new blog, that ask if you want it alone in its own space or
mixed with other data in an existing space (default value at the moment).
This choice was mainly to choose if the blog will be in WebHome page or
Blog page of the space. This is no more require now that we have NS and
that all blog post could be nested in a sub-space. Therefore, we want to
replace the creation for with a simple Location picker, and force using
unexisting space when creating a new blog. This will allow the blog
application to be store in any space and also allow it to put in place the
panels that goes with it.
So to resume:
- no more global blog type (at least for now, not closed)
- no more mixed blog with other documents in the same space (unless
done after the blog creation)
- isolated categories per blog (XWIKI-6355)
- ND adapted creation using a location picker
- all panels adpated to local blog isolation
The only breakage with the past will be the global blog that will no more
display posts from other spaces.
WDYT ?
If you want more, here is the details about the envision implementation:
*Changes envisions*
- Remove the '*BlogType*' xproperty of the '*Blog.BlogClass*'
- Introduce a new property named '*categoriesLocation'* that contains
the location (space) of the blog categories.
- The 'categoriesLocation' property will allow sharing categories
between different blogs
- By default when a new blog is created the 'categoriesLocation'
property is initialized to a nested space 'Categories' under the blog local
space.
for example If a Blog is created in a space '*A/*' then its '
*categoriesLocation*' property wil be initialized to '*A/Categories/*'
- All blog categories will be created in this nested space '
*<blogSpace>/Categories/*'
- The *WebHome* page of the Categories space will be used as a
management page of the blog categories, the WebHome will list all the
categories of the blog and allows to edit these categories (Add, Rename,
Remove ...)
*Backward compatibility*
Actually the default blog installed with xwiki on the 'Blog' space is a
global blog, it mean that all Blog categories are created on the 'Blog'
space and shared with the other local blogs.
In order to not break the actual use cases we consider that:
- If the 'categoriesLocation' property of a given blog is empty then
the categories of the default blog will be used (Categories created on the
'Blog' space)
*Changes on blog management page*
- Remove the 'BlogType' field
- Replace the 'Space' and 'Title' fields with a Location picker (like
when you add a new wiki page).
- A new blog cannot be created in an existing space, a verification
will be done to check if the space is a new one.
A 'BlogClass' will be added to the WebHome page of the space
A WebPreferences page will be added to the blog space in order to
display the blog panels
*Registration in the Application Panel (Blogs entry points)*
The general idea is to have a dashboard page that lists all the blogs
available in the wiki. A separate proposal will be done for the blogs
dashboard page.
Thanks,
Mohamed
On Wed, Mar 8, 2017 at 10:39 AM, Mohamed Boussaa <mohamed.boussaa(a)xwiki.com>
wrote:
On Wed, Mar 8, 2017 at 10:21 AM, Vincent Massol <vincent(a)massol.net>
wrote:
Hi Mohamed,
On 2 Mar 2017, at 16:53, Mohamed Boussaa
<mohamed.boussaa(a)xwiki.com>
wrote:
Hello XWikiers,
This proposal is about adding a new blog type: the isolated blog.
An isolated blog is a blog that is created in a given space (local
blog),
the blog categories and posts are created/visible
only in that space.
The objective of creating this separate blog type is to allow having
independent blogs in the same wiki and to not break the actual blog use
cases.
An isolated blog is subject to following conditions:
*Posts*
- The isolated blog posts will be created in the local blog space
- Only blog posts located in the local space will be displayed in the
blog home page
- Prevent the global blog to display posts from isolated blogs
*Categories*
- New blog categories are created into the local blog space
- On the blog post form only categories located in the isolated blog
space will be displayed
- The 'Categories' panel display only categories located in the
isolated
blog space
- Categories from isolated blogs are not displayed in the global blog
category panel
*Panels*
- Only display local posts in the 'recent posts' panel for isolated
blogs.
- Prevent isolated blog posts to be displayed in the global blog
'recent
posts' panel.
- Only display local unpublished posts in the 'Unpublished posts'
panel
for isolated blogs
- Prevent unpublished posts from isolated blogs to be displayed at
global blog 'Unpublished posts' panel.
- Isolated blogs will be removed from any RSS feed but will be visible
on the one matching the isolated blogs.
- The 'archives' panel will not be modified because it already follows
the isolated blogs conditions in the case of local blogs
*How to create an isolated post?*
On the Blog/Management page
- Add a checkbox "Isolate this blog"
- When the checkbox is checked:
- Create an isolated blog in place of a local blog.
- Create the default categories (News, Personal, Others)
into
the local space
WDYT?
Sorry for not answering sooner. I see you’ve now created
https://jira.xwiki.org/browse/XWIKI-14076.
I’ve just posted a comment there that I’m reposting here:
“
How do you address registration in the Application Panel or more
generally what are the entry points for isolated blogs?
I remember that I made the following suggestion:
* When you click on the Blog entry in the Application Panel, have the
following:
** If there's only 1 blog in the wiki, go to it (as now)
** If there's more than 1 blog in the wiki, go to a blog dashboard page
and display the list of all blogs in the wiki (visible to the current user).
We did not think about how to access to the blogs, but your suggestion
can be a good solution.
Note that I don't think we need an
"isolated" blog type since we already
have the notion of a "local" blog. I can see in BlogClass:
{noformat}
<values>local=Space blog (aggregates posts from its space
only)|global=Global blog (aggregates posts from the entire wiki)</values>
{noformat}
Global means aggregating posts from the entire wiki so it doesn't make
sense to not aggregate posts from an isolated blog.
So I think we could just do the following instead:
* Deprecate the "blogType" xproperty
* Introduce a new property named "scope" or "includes" that list all
spaces that will be taken into consideration when displaying blog posts. If
left empty, then the current space of the blog will be used. If "%" is used
then all spaces will be used (in practice the value would be used in the
where part of XWQL query.
I feel this makes it all more coherent and offers more freedom.
The isolated blog type is not just about what blog posts to display, it
includes also the panels content and where to create the categories.
Actually categories are global, it means that they are created in the
'Blog' space.
The objective of the islated blog is to be only visible on its space:
- Isolated blog categories are created and visible only on the blog
space
- The categories are not visible on the post edit page of other blogs
- The posts are not displayed on the blog index pages of the
global/other local blogs
- In the space of an isolated blog, the panels will display only
posts/categories of the isolated blog
WDYT?
“
Thanks!
-Vincent