ECM

Come aggiungere una portlet custom nel control panel di Liferay

Non tutti gli sviluppi riguardano il front-end e l’utilizzatore finale del sito. Anzi molto spesso per “completare” lo sviluppo di un plugin custom abbiamo la necessità anche di realizzare funzionalità accessibili solo ai “gestori” del portale.

liferay

In questo breve articolo illustrerò i passi da svolgere per aggiungere una propria portlet al control panel di Liferay.

Come aggiungere una portlet al pannello di controllo

Passo 1.

Aggiungere tra i tag del file di configurazione liferay-portlet.xml della propria portlet i seguenti tag

<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.2.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_2_0.dtd">

<liferay-portlet-app>
	<portlet>
		<portlet-name>ControlPanelPortlet</portlet-name>
		<icon>/icon.png</icon>
		
		<!-- Per far apparire la portlet nel pannello di controllo -->
		<!-- Posizione in control panel -->
		<control-panel-entry-category>content</control-panel-entry-category>
		<!-- Posizione in "elenco" -->
		<control-panel-entry-weight>1</control-panel-entry-weight>
		
		<requires-namespaced-parameters>false</requires-namespaced-parameters>
		<ajaxable>false</ajaxable>
		<header-portlet-css>/css/main.css</header-portlet-css>
		<css-class-wrapper>ControlPanelPortlet-portlet</css-class-wrapper>
	</portlet>
	<role-mapper>
		<role-name>administrator</role-name>
		<role-link>Administrator</role-link>
	</role-mapper>
	<role-mapper>
		<role-name>guest</role-name>
		<role-link>Guest</role-link>
	</role-mapper>
	<role-mapper>
		<role-name>power-user</role-name>
		<role-link>Power User</role-link>
	</role-mapper>
	<role-mapper>
		<role-name>user</role-name>
		<role-link>User</role-link>
	</role-mapper>
</liferay-portlet-app>

Nota bene. Attenzione alla sequenza dei tag perché la stessa è definita nel DTD e pertanto modificarla comporterebbe non ottenere il comportamento desiderato.

Passo 2.

Per evitare che la portlet sia visibile dal menu “Aggiungi applicazione”, accessibile da front-end, e quindi potenzialmente disponibile su altre pagine fuori dal pannello di controllo, è necessario modificare il file di configurazione liferay-display.xml ed aggiungerla alla categoria nascosta “hidden”

<?xml version="1.0"?>
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 6.2.0//EN" "http://www.liferay.com/dtd/liferay-display_6_2_0.dtd">

<display>
	<category name="category.hidden">
		<portlet id="ControlPanelPortlet" />
	</category>
</display>

Passo 3.

Naturalmente eseguire le azioni di build e deploy.

Quali differenze ci sono tra “my”, “content”, “portal” e “server”

Di seguito gli screenshot che chiariscono la questione.

my

controlPanelMy

content

controlPanelContent

portal

controlPanelPortal

server

controlPanelServer