Foren
Configuración personalizada portlet
Maria Rd, geändert vor 14 Jahren.
Configuración personalizada portlet
Regular Member Beiträge: 145 Beitrittsdatum: 02.09.09 Neueste Beiträge
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.
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.
aleph _ _, geändert vor 14 Jahren.
RE: Configuración personalizada portlet
Junior Member Beiträge: 31 Beitrittsdatum: 02.06.09 Neueste Beiträge
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
<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, geändert vor 14 Jahren.
RE: Configuración personalizada portlet
Regular Member Beiträge: 145 Beitrittsdatum: 02.09.09 Neueste Beiträgealeph _ _:
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, geändert vor 14 Jahren.
RE: Configuración personalizada portlet
Regular Member Beiträge: 145 Beitrittsdatum: 02.09.09 Neueste Beiträge
No me funciona 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
Un saludo.
Maria
aleph _ _, geändert vor 14 Jahren.
RE: Configuración personalizada portlet
Junior Member Beiträge: 31 Beitrittsdatum: 02.06.09 Neueste Beiträge
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":
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, geändert vor 14 Jahren.
RE: Configuración personalizada portlet
Regular Member Beiträge: 145 Beitrittsdatum: 02.09.09 Neueste Beiträge
¿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
Un saludo,
María