Fórum

Configuración personalizada portlet

Maria Rd, modificado 14 Anos atrás.

Configuración personalizada portlet

Regular Member Postagens: 145 Data de Entrada: 02/09/09 Postagens Recentes
Buenos días,

Cómo todos sabéis cuando se pulsa el botón de la tuerca en un portlet se accede a la configuración del mismo pero, en mi caso me gustaría que cuando el usuario pulsara ese botón me dirijiera a otro fichero .jsp dónde yo estableciera las opciones de configuración personalizadas. ¿Eso se puede hacer?¿Alguien podría indicarme cómo?

Un saludo,
María.
thumbnail
aleph _ _, modificado 14 Anos atrás.

RE: Configuración personalizada portlet

Junior Member Postagens: 31 Data de Entrada: 02/06/09 Postagens Recentes
Para ello debes habilitar el modo de edición en tu portlet, para ello en el archivo portlet.xml (que está en la carpeta WEB-INF) de tu portlet debes añadir lo siguiente:

<init-param>
<name>edit-jsp</name>
<value>/edit.jsp</value>
</init-param>

que quede algo como esto:

<?xml version="1.0" encoding="UTF-8"?>

<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
<portlet>
<portlet-name>200</portlet-name>
<display-name>Mi Portlet</display-name>
<portlet-class>com.liferay.vas.portlet.ViewAction</portlet-class>
<init-param>
<name>view-jsp</name>
<value>/view.jsp</value>
</init-param>
<init-param>
<name>edit-jsp</name>
<value>/edit.jsp</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>edit</portlet-mode>
</supports>
<portlet-info>
<title>Menu</title>
<short-title>Menu</short-title>
<keywords>Menu Seccion</keywords>
</portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
</portlet>
</portlet-app>

luego añades en la carpeta raíz de tu portlet una página que se llame edit.jsp y ahí añades el formulario que desees publicar.

Una vez hecho esto y luego de haber hecho deploy y añadir tu portlet en alguna página, cuando escojas el control que son tres puntos te va a salir la opción "preferencias", si la seleccionas verás lo que agregaste en el archivo edit.jsp
Maria Rd, modificado 14 Anos atrás.

RE: Configuración personalizada portlet

Regular Member Postagens: 145 Data de Entrada: 02/09/09 Postagens Recentes
aleph _ _:
Para ello debes habilitar el modo de edición en tu portlet, para ello en el archivo portlet.xml (que está en la carpeta WEB-INF) de tu portlet debes añadir lo siguiente:

<init-param>
<name>edit-jsp</name>
<value>/edit.jsp</value>
</init-param>

que quede algo como esto:

<?xml version="1.0" encoding="UTF-8"?>

<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
<portlet>
<portlet-name>200</portlet-name>
<display-name>Mi Portlet</display-name>
<portlet-class>com.liferay.vas.portlet.ViewAction</portlet-class>
<init-param>
<name>view-jsp</name>
<value>/view.jsp</value>
</init-param>
<init-param>
<name>edit-jsp</name>
<value>/edit.jsp</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>edit</portlet-mode>
</supports>
<portlet-info>
<title>Menu</title>
<short-title>Menu</short-title>
<keywords>Menu Seccion</keywords>
</portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
</portlet>
</portlet-app>

luego añades en la carpeta raíz de tu portlet una página que se llame edit.jsp y ahí añades el formulario que desees publicar.

Una vez hecho esto y luego de haber hecho deploy y añadir tu portlet en alguna página, cuando escojas el control que son tres puntos te va a salir la opción "preferencias", si la seleccionas verás lo que agregaste en el archivo edit.jsp


¿Entonces tan sólo añadiendo esas cuatro líneas?

<init-param>
<name>edit-jsp</name>
<value>/edit.jsp</value>
</init-param>

ya debería irse a la configuración personalizada de mi portlet??

Voy a probarlo, no te vayas muy lejos por si tengo problemas, jejej.

Muchísimas gracias de verdad por la respuesta.
Un saludo,
María
Maria Rd, modificado 14 Anos atrás.

RE: Configuración personalizada portlet

Regular Member Postagens: 145 Data de Entrada: 02/09/09 Postagens Recentes
No me funciona emoticon he metido eso en mi código pero cuando le doy al icono de la tuerca todo sigue igual se va a la pantala por defecto, no sé igual lo mejor es modificar esa pantalla q ue me aparece de configuración añadiendo una nueva pestaña a permisos y apariencia que se llame configuración. eso se puede hacer?

Un saludo.
Maria
thumbnail
aleph _ _, modificado 14 Anos atrás.

RE: Configuración personalizada portlet

Junior Member Postagens: 31 Data de Entrada: 02/06/09 Postagens Recentes
Umm... bueno, también tienes que agregar una clase en java similar a esta:

package com.liferay.vas.portlet;

import java.io.IOException;

import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

public class ViewAction extends GenericPortlet {

protected String viewJSP;
protected String editJSP;
protected String helpJSP;

@Override
public void init() throws PortletException {
viewJSP = getInitParameter("view-jsp");
editJSP = getInitParameter("edit-jsp");
helpJSP = getInitParameter("help-jsp");
}

@Override
public void doView(RenderRequest req, RenderResponse res)
throws IOException, PortletException {
include(viewJSP, req, res);
}

@Override
public void doEdit(RenderRequest req, RenderResponse res)
throws IOException, PortletException {
include(editJSP, req, res);
}

@Override
public void doHelp(RenderRequest req, RenderResponse res)
throws IOException, PortletException {
include(helpJSP, req, res);
}

protected void include(String path, RenderRequest req, RenderResponse res)
throws IOException, PortletException {

PortletRequestDispatcher prd =
getPortletContext().getRequestDispatcher(path);

prd.include(req, res);
}

}

que lo que hace es devolver los jsp de la vista (view.jsp) y de edición (edit.jsp)

Luego debes indicarle a tu portlet en el archivo portlet.xml que vas a usar esa clase (com.liferay.vas.portlet.ViewAction) como clase del portlet, eso con esta línea:

<portlet-class>com.liferay.vas.portlet.ViewAction</portlet-class>

El portlet.xml que estoy usando se ve así:

<?xml version="1.0" encoding="UTF-8"?>

<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
<portlet>
<portlet-name>200</portlet-name>
<display-name>Mi Portlet</display-name>
<portlet-class>com.liferay.vas.portlet.ViewAction</portlet-class>
<init-param>
<name>view-jsp</name>
<value>/view.jsp</value>
</init-param>
<init-param>
<name>edit-jsp</name>
<value>/edit.jsp</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>edit</portlet-mode>
</supports>
<portlet-info>
<title>Menu</title>
<short-title>Menu</short-title>
<keywords>Menu Seccion</keywords>
</portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
</portlet>
</portlet-app>

Puedo enviarte un ejemplo completamente funcional si lo deseas

Ah y por cierto, no es en la tuerca que aparece la opción, si no cuando le das a los puntitos aparece una opción extra que dice "preferencias":

Maria Rd, modificado 14 Anos atrás.

RE: Configuración personalizada portlet

Regular Member Postagens: 145 Data de Entrada: 02/09/09 Postagens Recentes
¿Serías tan amable? Yo sigo probando con lo mio de todas formas pero, si me lo enviaras te lo agradecería muchísimo.

Un saludo,
María