Hi Edy, Vincent,
Based on your concerns and our findings, I have finally crafts a design document here:
You were right Edy about the need to better support existing sharing of categories and we
have therefore improve our proposal in that regard. It now covers mostly all features of
the existing blogs like before, with one small difference: the uncategorised posts from
other blog spaces than the Blog space will not be displayed outside of that local blog
space.
After further thought, we noticed that the actual Blog space will be slightly special
because it will stay the only blog space to store both blog post and blog categories in
the same space. Which has the consequences of having the Categories WebHome and the blog
WebHome at the same location. The general intend is to properly slip set of categories and
blogs, so that the home of a set of categories display posts from all blog posts using any
of the categories of the set, while the home of the blog will display only post of that
given blog. For the special Blog.WebHome we have finally decided to do a mix, which is all
blog posts using any of the categories in Blog + all posts in Blogs. This is the closest
to the actual behaviour and the best compromise in our opinion to move forward. Regarding
the categories themselves, these will continue to work as before, and display all blog
posts of that particular categories, whatever the blog there are from is.
All that said, in this first version, we will not support the creation of new blogs that
share a set of categories from the UI. All new blogs will be created with its own set of
categories stored in a subspace of the blog space names Categories.
I hope the linked design document will respond to all your remaining questions. Don’t
hesitate to ask if you still have concerns about the proposed change.
--
Denis Gervalle
SOFTEC sa - CEO
On Thu, Mar 9, 2017 at 17:19, Eduard Moraru <enygma2002(a)gmail.com> wrote:
Hi, Vincent, Denis,
On Thu, Mar 9, 2017 at 5:20 PM, Vincent Massol <vincent(a)massol.net> wrote:
Hi Edy,
On 9 Mar 2017, at 14:58, Eduard Moraru
<enygma2002(a)gmail.com> wrote:
Hi,
It may be worth to clarify a bit the behavior and visibility of actual
blog
posts, now that we have covered Categories and
the way to share them
between 2 blogs.
If "Global.Categories" is used by both the "Global" and the
"AnotherBlog"
in their configuration (as categoriesLocation), which one of them
displays
what? It`s not clear to me which one is the
global (i.e.aggregator) and
which one is the local (i.e. just reusing the other's categories, but not
aggregating the other's posts as well) blog in this case. AFAICS right
now,
they would both display the same content, since,
AFAIU, a blog will be
displaying all the posts for its configured categories.
Are you sure about that? I was under the impression that the blog code
algorithm was the following:
* if the blog type is local then in the XWQL/HQL query, add a where clause
to only find blog posts in that blog’s space space
* if the blog type is global then don’t add any where restriction
I don’t think it was related to categories. Unless I’m mistaken.
No, I was not referring to the current implementation (which yes, AFAIK,
works by looking at the blog's space), but the implications of the current
proposal.
I was under the impression that blogs will now be displaying posts based on
the categories they are using. On the other hand, Denis says they will be
displaying based on their current space, but he also disconsiders sharing
posts (although I see little to no value in sharing only categories).
So what do we do in the end about the actual blog posts that are seen on a
blog's homepage? Are they all just posts located in the current blog's
space (like the old implementation)? If so, then the only change I see this
proposal introducing is to make the main blog a local one, instead of
global, as it is now.
And for categories? Do we just want to be able to use in the current blog
some categories defined in a different blog? What happens when you click on
a category, don`t you end up on a different blog instead of the one you
were just now? Then what do you see in that category, just the posts of
it`s parent Blog, or all the posts from all the blogs using that category?
e.g. You are on /SomeBlog/ that uses the shared category
/Blog/Categories/News. When you click on the category "News", you end up on
the category page of the owning blog /Blog/Categories/News where you will
see... /Blog posts or /Blog + /SomeBlog posts?
Thanks,
Eduard
Thanks
-Vincent
However, maybe I`ve understood it the other way around. Is it instead the
fact that the aggregator would specify a multi-valued categoryLocations
with the categories of the blogs it wants to aggregate, while a local
blog
would only use his own, local categories to
display posts? That might
work,
*however*, it would only be feasible if the
aggregating (global) blog was
in *read-only* mode. If it`s not read-only and it starts creating posts
using one of the aggregated blog's categories, then the new post will
start
showing in the aggregated (local) blog as well.
Thanks,
Eduard
On Thu, Mar 9, 2017 at 3:19 PM, Mohamed Boussaa <
mohamed.boussaa(a)xwiki.com>
wrote:
> Thanks for the reply Vincent.
>
> On Thu, Mar 9, 2017 at 1:26 PM, Vincent Massol <vincent(a)massol.net>
wrote:
>
>> Hi,
>>
>>> On 9 Mar 2017, at 12:12, Mohamed Boussaa <mohamed.boussaa(a)xwiki.com>
>> wrote:
>>
>> [snip]
>>
>>> 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/*’
>>
>> Note that the rationale for separate Category space is also to fix the
>> open issue we have that categories and blog posts cannot share the same
>> page name (see
http://jira.xwiki.org/browse/XWIKI-6346).
>>
>>> - 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
>>
>> You forgot one point:
>>
>> * Add an Admin UI for the Blog management by adding a
ConfigurableClass.
>>
>> We also discussed about:
>>
>> * Macros *
>>
>> * Introduce a new {{blog}} macro that could be used anywhere to display
>> the content of a blog (see
http://jira.xwiki.org/browse/XWIKI-6349)
>> * Make the blog macro be able to act as a “latest blog posts” feature
by
>> having parameters to control how many
entries to display
>>
>>> *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.
>>
>> My proposal here is very simple (for a first version):
>>
>> * If there’s only 1 blog in the wiki: keep it as it now, i.e. display
the
>> posts of the main blog
>> * If there’s more than 1 blog in the wiki: display a LT with each line
>> being a link to a blog.
>> * Option: instead of a LT, use the {{blog/}} macro for each blog to
list
>> the last 5 blog items. We’d just need to
find a nice layout for that.
I’m
>> sure Caty would have an idea :)
>>
>> All the rest sounds good to me! I’m very happy to see someone working
on
>> the blog app; it’s been left untouched
for too long.
>>
>> Thanks
>> -Vincent
>>
>>> 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
>>>>>
>>>>>
>>>>
>>
>>
>