Currently Liferay only supports a flat structure of sites, the goal of this ticket is to allow creating a hierarchy of sites in order to simplify management and allow for simpler navigation through the hierarchy.
In order to allow for top down navigation a new portlet should be created to allow navigation through the hierarchy of sites. This portlet will be similar to the existing "Navigation" portlet that allows browsing through the site pages hierarchy in that it will be very configurable
and will be usable either as a menu included from the theme or as a "sitemap" that allows end users to visualize several levels of the hierarchy. Some of the configuration options that will be provided are:
1) Parent site: Some options are "Root" which means that the first level of sites shown will be the top level sites and "Current site" which means that the first level of sites shown will be the children of the current site
2) Number of levels to show: Some options are 1, which would shown only the children of the parent site, 2 which would show two levels or "all" which would show all levels (with certain configurable limits to avoid performance issues).
3) Display Style: By default a semantic HTML display style will be provided that can be easily customized with CSS. Additionally it will be possible to add custom styles through hooks to meet the needs of any project.
To allow for Bottom - Up navigation, the breadcrumb of the subsites will show the parent sites and allow
users to navigate to any of the parent sites.
When sites are created associated to an organization, by default the hierarchy of organization should be maintained for the hierarchy of sites.
The implementation of this feature should take into account that it will later be used to allow simplified membership management and content sharing across the hierarchy.
The breadcrumb of a site that belongs to an organization will display the site hierarchy and not the organization hierarchy. However, in order to facilitate this task, when we create a new organization with a site, by default the parent site will be the site that belongs to the parent organization. Then, organization hierarchy won't be display in breadcrumb anymore.
When moving the organization (changing his parent) we have two possible cases:
1. If the organizations tree is not the same as the sites tree this means that the user altered this default hierarchy. In this case, if the user moves one of these organizations, the site won't be moved.
2. However, if the user didn't altered the default hierarchy (the parent organization matches the parent site) we will move it following the default structure (so the site will have a parent that belongs to the parent organization)