Foros de discusión
add extra option in nested portlet configuration
Alex Man, modificado hace 6 años.
add extra option in nested portlet configuration
Junior Member Mensajes: 70 Fecha de incorporación: 8/02/16 Mensajes recientes
I need to add an extra option for to Show Breadcrumbs , In order to achieve this I have created a jsp hook for configuration.jsp for nested portlet and have added an option for Showing Breadcrumbs like as shown below
Option for showing breadcrumbs
But the problem is when I click the submit button I am getting the following exception
Full configuration.jsp is given below
Option for showing breadcrumbs
<aui:form action="<%= configurationActionURL %>" method="post" name="fm">
<aui:input name="<%= Constants.CMD %>" type="hidden" value="<%= Constants.UPDATE %>" />
<aui:input name="redirect" type="hidden" value="<%= configurationRenderURL %>" />
<%
boolean portletDecorateDefaultBreadCrumbs = GetterUtil.getBoolean(themeDisplay.getThemeSetting("portlet-setup-show-bread-crumbs-default"), true);
boolean portletSetupShowBreadCrumbs = GetterUtil.getBoolean(portletPreferences.getValue("portletSetupShowBreadCrumbs", String.valueOf(portletDecorateDefaultBreadCrumbs)));
%>
<aui:fieldset label="Show BreadCrumbs">
<aui:input label="show-borders" name="preferences--portletSetupShowBreadCrumbs--" type="checkbox" value="<%= portletSetupShowBreadCrumbs %>" />
</aui:fieldset>
<aui:button-row>
<aui:button type="submit" />
</aui:button-row>
</aui:form>
But the problem is when I click the submit button I am getting the following exception
16:37:52,099 ERROR [http-bio-8081-exec-140][render_portlet_jsp:132] null
java.lang.NullPointerException
at com.liferay.portlet.nestedportlets.action.ConfigurationActionImpl.reorganizeNestedColumns(ConfigurationActionImpl.java:120)
at com.liferay.portlet.nestedportlets.action.ConfigurationActionImpl.processAction(ConfigurationActionImpl.java:70)
at com.liferay.portlet.portletconfiguration.action.EditConfigurationAction.processAction(EditConfigurationAction.java:76)
at com.liferay.portal.struts.PortletRequestProcessor.process(PortletRequestProcessor.java:166)
at com.liferay.portlet.StrutsPortlet.processAction(StrutsPortlet.java:218)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:71)
at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:48)
at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:597)
at com.liferay.portlet.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:628)
at com.liferay.portlet.InvokerPortletImpl.processAction(InvokerPortletImpl.java:308)
at com.liferay.portlet.PortletContainerImpl._doProcessAction(PortletContainerImpl.java:389)
at com.liferay.portlet.PortletContainerImpl.processAction(PortletContainerImpl.java:107)
at com.liferay.portlet.SecurityPortletContainerWrapper.processAction(SecurityPortletContainerWrapper.java:109)
at com.liferay.portlet.RestrictPortletContainerWrapper.processAction(RestrictPortletContainerWrapper.java:75)
at com.liferay.portal.kernel.portlet.PortletContainerUtil.processAction(PortletContainerUtil.java:115)
at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:386)
at com.liferay.portal.action.LayoutAction.doExecute(LayoutAction.java:200)
at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:95)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
Full configuration.jsp is given below
<%@ include file="/html/portlet/nested_portlets/init.jsp" %>
<liferay-portlet:actionurl portletConfiguration="true" var="configurationActionURL" />
<liferay-portlet:renderurl portletConfiguration="true" var="configurationRenderURL" />
<aui:form action="<%= configurationActionURL %>" method="post" name="fm">
<aui:input name="<%= Constants.CMD %>" type="hidden" value="<%= Constants.UPDATE %>" />
<aui:input name="redirect" type="hidden" value="<%= configurationRenderURL %>" />
<aui:fieldset label="layout-template">
<layouttemplate> layoutTemplates = LayoutTemplateLocalServiceUtil.getLayoutTemplates(theme.getThemeId());
layoutTemplates = PluginUtil.restrictPlugins(layoutTemplates, user);
List<string> unsupportedLayoutTemplates = ListUtil.fromArray(PropsUtil.getArray(PropsKeys.NESTED_PORTLETS_LAYOUT_TEMPLATE_UNSUPPORTED));
int i = 0;
for (LayoutTemplate layoutTemplate : layoutTemplates) {
if (!unsupportedLayoutTemplates.contains(layoutTemplate.getLayoutTemplateId())) {
String layoutTemplateName = layoutTemplate.getName();
%>
<c:if test="<%= (i % CELLS_PER_ROW) == 0 %>">
</c:if></string></layouttemplate><c:if test="<%= (i % CELLS_PER_ROW) == (CELLS_PER_ROW - 1) %>">
</c:if><table border="0" cellpadding="0" cellspacing="10" style="margin-top: 10px;" width="100%">
<%
int CELLS_PER_ROW = 4;
String layoutTemplateId = portletPreferences.getValue("layoutTemplateId", PropsValues.NESTED_PORTLETS_LAYOUT_TEMPLATE_DEFAULT);
List<tbody><tr>
<td align="center" width="<%= 100 / CELLS_PER_ROW %>%">
<img alt="<liferay-ui:message key=" thumbnail">" onclick="document.getElementById('<portlet:namespace />layoutTemplateId<%= i %>').checked = true;" src="<%= layoutTemplate.getStaticResourcePath() %><%= HtmlUtil.escapeAttribute(layoutTemplate.getThumbnailPath()) %>" /><br>
<aui:input checked="<%= layoutTemplateId.equals(layoutTemplate.getLayoutTemplateId()) %>" id="<%= "layoutTemplateId" + i %>" label="<%= LanguageUtil.get(locale, "layout-template-" + layoutTemplateName, layoutTemplateName) %>" name="preferences--layoutTemplateId--" type="radio" value="<%= layoutTemplate.getLayoutTemplateId() %>" />
</td>
</tr>
<%
i++;
}
}
%>
</tbody></table>
</aui:fieldset>
<%
boolean portletDecorateDefault = GetterUtil.getBoolean(themeDisplay.getThemeSetting("portlet-setup-show-borders-default"), true);
boolean portletSetupShowBorders = GetterUtil.getBoolean(portletPreferences.getValue("portletSetupShowBorders", String.valueOf(portletDecorateDefault)));
%>
<aui:fieldset label="display-settings">
<aui:input label="show-borders" name="preferences--portletSetupShowBorders--" type="checkbox" value="<%= portletSetupShowBorders %>" />
</aui:fieldset>
<aui:button-row>
<aui:button type="submit" />
</aui:button-row>
</aui:form>
<aui:form action="<%= configurationActionURL %>" method="post" name="fm">
<aui:input name="<%= Constants.CMD %>" type="hidden" value="<%= Constants.UPDATE %>" />
<aui:input name="redirect" type="hidden" value="<%= configurationRenderURL %>" />
<%
boolean portletDecorateDefaultBreadCrumbs = GetterUtil.getBoolean(themeDisplay.getThemeSetting("portlet-setup-show-bread-crumbs-default"), true);
boolean portletSetupShowBreadCrumbs = GetterUtil.getBoolean(portletPreferences.getValue("portletSetupShowBreadCrumbs", String.valueOf(portletDecorateDefaultBreadCrumbs)));
%>
<aui:fieldset label="Show BreadCrumbs">
<aui:input label="show-borders" name="preferences--portletSetupShowBreadCrumbs--" type="checkbox" value="<%= portletSetupShowBreadCrumbs %>" />
</aui:fieldset>
<aui:button-row>
<aui:button type="submit" />
</aui:button-row>
</aui:form>
>