abhilashak
abhilashak

Reputation: 3621

Liferay 7.3: How to make menu items in a theme controlled by admin

I have a liferay theme for version 7.3. I am facing one problem in the theme's menu.

Now menu has some static items. How can I change (add / remove) items dynamically by admin account?

The menu is added in /src/templates/portal_normal.ftl as

<#include "${full_templates_path}/menu-bar.ftl" />

this file has static html data.

Now how can I make it dynamic so that admin can change the menu items?

Make the menu as a web content, and drag it to the theme? Not makes sense because menu is the part of the theme.

Or any other way of picking the menu items, looping the items in .ftl and display it?

Upvotes: 0

Views: 1287

Answers (2)

Uzair
Uzair

Reputation: 1

The solution can be if you want to add your data in navigation menu in themes, go into the navigation menus inside site builder in menu and create a new menu by clicking + button on top right and name the menu. Then go into the pages inside site builder inside menu. There will be a + sign on public pages. Click that and add a page that you want to list. If you want to create a submenu then on the page that is created, create a subpage by clicking there + sign. The page will be child and will be shown as a sub menu in theme.

Upvotes: 0

Olaf Kock
Olaf Kock

Reputation: 48087

The times of scripting navigation and menus in the theme are over, and I'd rather recommend to embed a portlet in your theme that does the job. That might be a stock NavigationMenu portlet (see how Liferay's default "classic theme" does this with NavigationMenu or the SearchBar), or a custom one, which generates exactly what you'd like.

Reason: It's a lot simpler to redeploy a new portlet and generate/test appropriate HTML markup generation in a portlet than it is to implement proper error handling in a theme's freemarker script.

Upvotes: 1

Related Questions