Unified Navigation System for JSF (menus, breadcrumbs, sitemap) - jsf

We're using MyFaces, Richfaces & Restfaces to build a website on top of Oracle Stellant CMS. We're not using Site Studio. Are there any widgets/combination of widgets out there that could provide a unified navigation system? The site structure needs to be read from a DB table and CMS metadata fields, and we need a top tab menu, an expandable sidebar menu, breadcrumbs, and a sitemap (bonus points if it uses the sitemaps.org standard). We're currently using a combination of autonomous hand-rolled and off-the shelf widgets that aren't interoperating very well - the different navigation features aren't staying in sync as the site is navigated.

We faced a very similar issue last year and didn't find any set of widgets that could provide an integrated solution (we were using JSF, Facelets, RichFaces & Spring).
We ended up developing our own navigation system with menu state holders (stored per session) and the breadcrumbs would just go up in the menu tree from the current selection to construct itself.
The menu model itself was built once at application startup (read from an xml file) using Spring and bound to the view using facelets (
<rich:tabPanel id="topMenu" binding="#{menuBean.menu}" />
Keeping the components in sync was mainly managed by a Spring WebFlow FlowExecutionListener
Hope this helps..

Related

LIFERAY 7.2 GA1 Theme: My custom scss style impacts the default Liferay Menu ( in the left hand side and in the top )

I have a problem when developing a new Liferay 7.2 theme based on gradle as a build tool, the problem is when I added a custom css in the file _custom.scss in order to customize some styles within my theme, the default liferay admin Control panel and Menu( in the left hand side and in the top ) are looking very bad and my theme looks not Responsive(I mean the style and there are buttons which are not displayed anymore example the toast-animation-btn is not visible ).
From my perspective, maybe my custom css ( because I have a large css file it is kind of Migration from 6.2 --> 7.2) is impacting the default liferay portal things --> this is just my opinion and maybe I could be wrong...
Otherwise, if my reasoning is true please How could prevent my styles to impact liferay default menu?
A whole lot of things have changed between 6.2 and 7.x html markup. I would strongly advise testing each small css feature independently and rewrite the one that is not compatible anymore. By feature I mean all css code related to a specific portlet or section of your template.
Also the theme template themselves have changed a lot and are not strictly compatible. In this case I'd suggest starting with a new theme templates and bring back one by one the customization, you made in it. Also look at the new content page feature: https://portal.liferay.dev/docs/7-2/user/-/knowledge_base/u/creating-content-pages You might be able to replace many theme customization with them in a more maintainable and web admin-friendly way.
That being said if you just want to isolate you sass code from impacting the admin menu, in the default template there is no quick way to identify the content section of the page (well, there is #wrapper and #content, but they are too generic and present in the admin page as well) I'd suggest that you add an id at the right level of your own template. After that just embed all your sass code inside that id.

AEM 6.1 - restrict component to specific template

I've built a component for a new template in AEM 6.1 and I need it to only appear when authoring on that specific template (adding new components to that page and such). Main reason is there's a lot components in the sidekick and we want to clean it up; plus this component will only ever be usable on this template (because of authentication reasons). I'm told I need to achieve this via the allowedParent jcr attribute in the components .content.xml files.
Unfortunately upgrading from 6.1 isn't a possibility due to business reasons. Any help is greatly appreciated.
You just have to make this component available via your design which is usually located at /etc/designs/[yourdesign]. There you will find a jcr:content node and all page templates below it. Just find there the right parsys and add this component.
See also: how properties are stored in /etc/designs for design dialog

Can we customize Master page and Page Layouts with SPFx?

I am working on SharePoint Framework and have one take to do in this. I want to know that can we add our custom master page and page layouts in SharePoint Online using the SharePoint Framework ?
If yes, then can you guys please provide me some details or links to understand this ?
I have a requirement to have my own custom master page and layouts deployed in SharePoint Online using my custom client web part.
No, as of now there is nothing in SPFx to customize master page or page layouts. Also, Master Page and Page Layouts are old technique, which is not applicable for Modern Pages.
But SPFx framework comes with extensions (in preview as of now), which can be used to enhance UX of application. The SPFx extensions allow you to customize in following three direction:
Application Customizers: Overall page customization can be done using this like header/footers.
Field Customizers: For custom rendering of fields.
Command Set: For adding custom commands to the top ribbons or popup menus.
https://dev.office.com/sharepoint/docs/spfx/extensions/overview-extensions

How to create navigation menu in JavaFX

I want to create navigation menu like this:
Is this a custom component or it's part of the standard JavaFX platform?
A breadcrumb navigation bar is not part of the JavaFX 2.2 core platform.
I created a feature request for a breadcrumb control against the ControlsFX 3rd party control project.
The image you provided comes from a screen shot of the open source Ensemble application.
Review the Ensemble source code, and see if you can adopt it's code for your application.

how to develop application like LifeRay Control panel

I want to develop an application like LifeRay control panel which has right navigation menu and a page that renders the clicked menu.
My question is how to develop at for example as one portlet or multi portlet taking into considaration (portlet communication)? and how to handle navigation inside portlet?
I'm using Icefaces(JSF) for portlet development and there is a section repeated for other pages(template)
Is there an example in liferay source for this?
Can't you just adjust a theme to have the navigation at the side as opposed to the default (at the top)? This way you'd be developing a plain portal application without any special magic - probably the most intuitive way to go.
Also, others will likely be able to quickly understand what you did and are able to add functionality.

Resources