Forums

Home » Liferay Portal » Español » 3. Desarrollo

Combination View Flat View Tree View
Threads [ Previous | Next ]
Piedad Márquez
Insertar Portlet
August 10, 2010 2:42 AM
Answer

Piedad Márquez

Rank: New Member

Posts: 14

Join Date: May 31, 2010

Recent Posts

Hola,
he creado un portlet apartir del portlet comunidades, la diferencia entre uno y otro es que el que he creado yo solo muestra una lista con todas las comunidades disponibles.
Pero el problema viene a la hora de intalarlo, no quiero que forme parte de los portlets que vienen definidos por defecto en Liferay, sino que sea un portlet independiente, pero no lo puedo instalar como un "HolaMundo" normal.
Alguien sabe como puedo proceder a la instalación?¿?

Muchas gracias
Roberto Tellado
RE: Insertar Portlet
August 10, 2010 2:49 AM
Answer

Roberto Tellado

Rank: Regular Member

Posts: 246

Join Date: September 15, 2009

Recent Posts

Hola,

¿Qué quieres que te aparezca en una categoría aparte dentro de la lista de portlets disponibles?

Saludos.
Piedad Márquez
RE: Insertar Portlet
August 10, 2010 3:00 AM
Answer

Piedad Márquez

Rank: New Member

Posts: 14

Join Date: May 31, 2010

Recent Posts

No me bastaria con que saliese en la categoria de ejemplos.
El problema es que yo he modificado el view de communitis y ahora no puedo subir el portlet
Roberto Tellado
RE: Insertar Portlet
August 10, 2010 3:18 AM
Answer

Roberto Tellado

Rank: Regular Member

Posts: 246

Join Date: September 15, 2009

Recent Posts

Necesitaría saber que error te da, si ese portlet lo tienes en el entorno de extensión o como un war. También saber como lo has definido en el liferay-portlet.xml (dado que ahí necesitas definir un nombre de portlet que no exista). También podría ser de utilidad saber que cambio has hecho en el view, para saber si tiene algún error de sintaxis o es un tema de configuración.

Saludos.
Piedad Márquez
RE: Insertar Portlet
September 7, 2010 3:46 AM
Answer

Piedad Márquez

Rank: New Member

Posts: 14

Join Date: May 31, 2010

Recent Posts

El codigo es el siguiente:



<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
<%@ taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet" %>


<%@ page import="com.liferay.portal.kernel.util.ParamUtil" %>
<%@ page import="com.liferay.portal.util.Portal" %>
<%@ page import="com.liferay.portal.util.PortletKeys" %>
<%@ page import="javax.portlet.PortletURL" %>
<%@ page import="com.liferay.portlet.enterpriseadmin.search.GroupSearch" %>
<%@ page import="com.liferay.portal.kernel.dao.search.SearchContainer" %>
<%@ page import="com.liferay.portlet.enterpriseadmin.search.GroupSearchTerms" %>
<%@ page import="java.util.LinkedHashMap" %>
<%@ page import="com.liferay.portal.NoSuchLayoutSetException" %>
<%@ page import="com.liferay.util.PKParser" %>
<%@ page import="com.liferay.portal.kernel.language.LanguageUtil" %>
<%@ page import="com.liferay.portal.RequiredGroupException" %>
<%@ page import="com.liferay.portal.kernel.dao.search.ResultRow" %>
<%@ page import="javax.portlet.RenderResponse" %>
<%@ page import="javax.portlet.WindowState" %>
<%@ page import="javax.portlet.RenderRequest" %>
<%@ page import="javax.portlet.RenderResponse" %>


<%
String tabs1 = ParamUtil.getString(request, "tabs1", "all-communities");

boolean showTabs1 = true;

if (portletName.equals(PortletKeys.ENTERPRISE_ADMIN_COMMUNITIES)) {
tabs1 = "all-communities";

showTabs1 = false;
}



PortletURL portletURL = renderResponse.createRenderURL();

portletURL.setWindowState(WindowState.MAXIMIZED);

portletURL.setParameter("struts_action", "/communities/view");
portletURL.setParameter("tabs1", tabs1);

pageContext.setAttribute("portletURL", portletURL);
%>

<liferay-ui:success key="membership_request_sent" message="your-request-was-sent-you-will-receive-a-reply-by-email" />

<form action="<%= portletURL.toString() %>" method="get" name="<portlet:namespace />fm">
<liferay-portlet:renderURLParams varImpl="portletURL" />


<%
GroupSearch searchContainer = new GroupSearch(renderRequest, portletURL);
%>


<%
GroupSearchTerms searchTerms = (GroupSearchTerms)searchContainer.getSearchTerms();

LinkedHashMap groupParams = new LinkedHashMap();


int total = GroupLocalServiceUtil.searchCount(company.getCompanyId(), searchTerms.getName(), searchTerms.getDescription(), groupParams);

searchContainer.setTotal(total);

List results = GroupLocalServiceUtil.search(company.getCompanyId(), searchTerms.getName(), searchTerms.getDescription(), groupParams, searchContainer.getStart(), searchContainer.getEnd(), searchContainer.getOrderByComparator());

searchContainer.setResults(results);
%>

<liferay-ui:error exception="<%= NoSuchLayoutSetException.class %>">

<%
NoSuchLayoutSetException nslse = (NoSuchLayoutSetException)errorException;

PKParser pkParser = new PKParser(nslse.getMessage());

long groupId = pkParser.getLong("groupId");

Group group = GroupLocalServiceUtil.getGroup(groupId);
%>

<%= LanguageUtil.format(pageContext, "community-x-does-not-have-any-private-pages", group.getName()) %>
</liferay-ui:error>

<liferay-ui:error exception="<%= RequiredGroupException.class %>" message="the-group-cannot-be-deleted-because-it-is-a-required-system-group" />

<%
List<String> headerNames = new ArrayList<String>();

searchContainer.setHeaderNames(headerNames);

List resultRows = searchContainer.getResultRows();

for (int i = 0; i < results.size(); i++) {
Group group = (Group)results.get(i);

group = group.toEscapedModel();

ResultRow row = new ResultRow(new Object[] {group, tabs1}, group.getGroupId(), i);

PortletURL rowURL = renderResponse.createActionURL();

rowURL.setWindowState(WindowState.NORMAL);

rowURL.setParameter("struts_action", "/communities/page");
rowURL.setParameter("groupId", String.valueOf(group.getGroupId()));
rowURL.setParameter("redirect", currentURL);

// Name

StringBuilder sb = new StringBuilder();

sb.append(group.getName());

Group stagingGroup = null;

if (group.hasStagingGroup()) {
stagingGroup = group.getStagingGroup();
}
row.addText((sb.toString()),rowURL);

// Add result row
resultRows.add(row);
}
%>

<liferay-ui:search-iterator searchContainer="<%= searchContainer %>" />
</form>


Es una modificación del de communities, esto lo he probado dentro de C:\liferay_5_2_2\bundles\liferay-portal-5.2.2\tomcat-5.5.27\webapps\ROOT\html\portlet\communities modificando el view de communities y aqui si que funciona y hace lo que quiero.

Creo que es un problema a la hora de instalar el portlet, le tienen que faltar librerias tdl o cualquier otra cosa.

Alguna idea?¿?

Muchas gracias


ERRORES:

Ha tenido lugar un error en la linea: 54 el archivo jsp: /view.jsp
portletName cannot be resolved
51:
52: boolean showTabs1 = true;
53:
54: if (portletName.equals(PortletKeys.ENTERPRISE_ADMIN_COMMUNITIES)) {
55: tabs1 = "all-communities";
56:
57: showTabs1 = false;
58: }
Piedad Márquez
RE: Insertar Portlet
September 10, 2010 2:25 AM
Answer

Piedad Márquez

Rank: New Member

Posts: 14

Join Date: May 31, 2010

Recent Posts

Sigo con lo mismo, he desarrollado el portlet poco a poco, linea a linea. Faltaban .jar que añadir, como por ejemplo portal-impl.jar, este lo he añadido en C:/liferay_5_2_2\bundles\liferay-portal-5.2.2\tomcat-5.5.27\webapps\ejemplo-portlet\WEB-INF\lib ya que no me deja copiar la libreria en C:/liferay_5_2_2\plugins\portlets\ejemplo-portlet\docroot\WEB-INF\lib, no entiendo esto muy bien (alguien sabe por que?¿?)

Pero el mayor problema viene en que no encuentro GroupLocalServiceUntil, alquien sabe como puedo insertar la funcionalidad de este en mi codigo?¿?


Gracias
Antonio Ivars
RE: Insertar Portlet
October 6, 2010 5:32 AM
Answer

Antonio Ivars

Rank: New Member

Posts: 22

Join Date: March 11, 2010

Recent Posts

Hola piedad

Te ruego me respondas a una duda:
¿El portlet que has creado está creado desde cero como portlet o lo has desarrollado como modificación (hook)?

Es solo para descartar hipótesis...