Break the boundary of LayoutSets: Add more pages to your navigation

Yay, it took a while to get onto it again, and finally I updated Custom Navigation and it just went through the approval process yesterday. Now it's available for Liferay 7 and DXP as well.

What does it do?

If you've wondered why Liferay defaults to showing only the public pages, or only the private pages in the navigation, never both together, this plugin is for you.

Now you are the master of your own navigation and you can add public pages, private pages, even from other sites, to your like.

What's that good for? IMHO the main aspect is fine-grained permissions: The easiest way to administer permissions in Liferay is to do so per site. If you combine multiple sites in the main navigation, you have access to all, but can only edit on those pages belonging to a site that you actually have permissions on. All others are out of reach. The screenshots (although they're still from version 6.1) on the marketplace page demonstrate this neatly.

The plugin is trivial (source code available) and just utilizes a simple Custom Field in a site's configuration ("Site Settings"). Just enter the site's id, combined with ",public" or ",private" (one per line) and they'll all be shown in that order. You'll find the site's id further up on the same page where you set the custom fields for the site. A typical configuration looks like this:

12345,public
12345,private

Note that permissions still apply: If you don't have permission to see a (private) page, you can't see it.

If you are interested in this plugin for 6.2: I'm assuming that the source code for 6.1 still works - just clone the repository and compile it for yourself.