Forums de discussion

Extend Classic Theme in Liferay 7

Mario Starlinger, modifié il y a 7 années.

Extend Classic Theme in Liferay 7

New Member Publications: 20 Date d'inscription: 20/04/15 Publications récentes
Hello everybody,

i am currently using the classic theme in Liferay 7. I like it, but I want to make some little changes.
I recognized that it is only possible to extend unstyled- and styled-theme via "gulp extend".
Is there any chance to extend classic theme?

Thanks in advance.

Regards,
Mario Starlinger
thumbnail
Byrån Zaugg, modifié il y a 7 années.

RE: Extend Classic Theme in Liferay 7

Expert Publications: 252 Date d'inscription: 06/04/12 Publications récentes
Classic and Control Panel themes were not really meant to be extended from, as they may get changed by Liferay in a future update. If you were to extend from those, your own theme may break, unexpectedly.

It would be better to copy the files from the Classic theme, into your own, which is extended from _styled.
https://github.com/liferay/liferay-portal/tree/master/modules/apps/foundation/frontend-theme/frontend-theme-classic/src
scott E mitchell, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

Junior Member Publications: 41 Date d'inscription: 01/10/16 Publications récentes
I have download same https://github.com/liferay/liferay-portal/tree/master/modules/apps/foundation/frontend-theme/frontend-theme-classic/src
and put all the src to my new custom theme but its wont work its not at all looks like classic theme is there any other way to inherit/extend the classic theme or any other git link for LF7 -GA3....


TIA........................
scott E mitchell, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

Junior Member Publications: 41 Date d'inscription: 01/10/16 Publications récentes
Facing some issue can you please look into it.........


HTTP Status 500 - javax.servlet.jsp.JspException: com.liferay.portal.kernel.template.TemplateException: Unable to process template democlassictheme-theme_SERVLET_CONTEXT_/templates/portal_normal.ftl

type Exception report

message javax.servlet.jsp.JspException: com.liferay.portal.kernel.template.TemplateException: Unable to process template democlassictheme-theme_SERVLET_CONTEXT_/templates/portal_normal.ftl

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: javax.servlet.jsp.JspException: com.liferay.portal.kernel.template.TemplateException: Unable to process template democlassictheme-theme_SERVLET_CONTEXT_/templates/portal_normal.ftl
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:905)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:838)
com.liferay.taglib.servlet.PageContextWrapper.handlePageException(PageContextWrapper.java:164)
org.apache.jsp.html.common.themes.portal_jsp._jspService(portal_jsp.java:721)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:115)
com.liferay.portal.struts.StrutsUtil.forward(StrutsUtil.java:71)
com.liferay.portal.struts.PortalRequestProcessor.doForward(PortalRequestProcessor.java:277)
org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:271)
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:332)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232)
com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:170)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:568)
com.liferay.portal.servlet.MainServlet.service(MainServlet.java:545)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:180)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:303)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:115)
com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:172)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:180)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.security.sso.ntlm.internal.servlet.filter.NtlmPostFilter.processFilter(NtlmPostFilter.java:107)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:336)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:125)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:303)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:269)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:86)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:268)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:260)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
com.liferay.portal.servlet.filters.urlrewrite.UrlRewriteFilter.processFilter(UrlRewriteFilter.java:65)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:115)
root cause

com.liferay.portal.kernel.template.TemplateException: Unable to process template democlassictheme-theme_SERVLET_CONTEXT_/templates/portal_normal.ftl
com.liferay.portal.template.AbstractSingleResourceTemplate.processTemplate(AbstractSingleResourceTemplate.java:85)
com.liferay.taglib.util.ThemeUtil.doIncludeFTL(ThemeUtil.java:283)
com.liferay.taglib.util.ThemeUtil.doDispatch(ThemeUtil.java:157)
com.liferay.taglib.util.ThemeUtil.includeFTL(ThemeUtil.java:100)
com.liferay.taglib.util.ThemeUtil.include(ThemeUtil.java:82)
com.liferay.taglib.theme.IncludeTag.doEndTag(IncludeTag.java:34)
org.apache.jsp.html.common.themes.portal_jsp._jspx_meth_liferay_002dtheme_005finclude_005f1(portal_jsp.java:759)
org.apache.jsp.html.common.themes.portal_jsp._jspService(portal_jsp.java:696)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:115)
com.liferay.portal.struts.StrutsUtil.forward(StrutsUtil.java:71)
com.liferay.portal.struts.PortalRequestProcessor.doForward(PortalRequestProcessor.java:277)
org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:271)
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:332)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232)
com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:170)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:568)
com.liferay.portal.servlet.MainServlet.service(MainServlet.java:545)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:180)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:303)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:115)
com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:172)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:180)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.security.sso.ntlm.internal.servlet.filter.NtlmPostFilter.processFilter(NtlmPostFilter.java:107)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:336)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:125)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:303)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:269)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:86)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:268)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:260)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
com.liferay.portal.servlet.filters.urlrewrite.UrlRewriteFilter.processFilter(UrlRewriteFilter.java:65)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:115)
root cause

freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> freeMarkerPortletPreferences.getPreferences [in template "democlassictheme-theme_SERVLET_CONTEXT_/templates/navigation.ftl" at line 4, column 48]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign preferences = freeMarkerPortl... [in template "democlassictheme-theme_SERVLET_CONTEXT_/templates/navigation.ftl" at line 4, column 25]
- Reached through: #include "${full_templates_path}/navi... [in template "democlassictheme-theme_SERVLET_CONTEXT_/templates/portal_normal.ftl" at line 52, column 25]
----
freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:131)
freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:77)
freemarker.core.UnexpectedTypeException.<init>(UnexpectedTypeException.java:40)
freemarker.core.NonMethodException.<init>(NonMethodException.java:46)
freemarker.core.MethodCall._eval(MethodCall.java:84)
freemarker.core.Expression.eval(Expression.java:78)
freemarker.core.Assignment.accept(Assignment.java:131)
freemarker.core.Environment.visit(Environment.java:324)
freemarker.core.MixedContent.accept(MixedContent.java:54)
freemarker.core.Environment.visitByHiddingParent(Environment.java:345)
freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
freemarker.core.Environment.visit(Environment.java:324)
freemarker.core.MixedContent.accept(MixedContent.java:54)
freemarker.core.Environment.visit(Environment.java:324)
freemarker.core.Environment.include(Environment.java:2072)
freemarker.core.Include.accept(Include.java:167)
freemarker.core.Environment.visit(Environment.java:324)
freemarker.core.MixedContent.accept(MixedContent.java:54)
freemarker.core.Environment.visit(Environment.java:324)
freemarker.core.Environment.process(Environment.java:302)
freemarker.template.Template.process(Template.java:325)
com.liferay.portal.template.freemarker.internal.FreeMarkerTemplate.processTemplate(FreeMarkerTemplate.java:121)
com.liferay.portal.template.AbstractSingleResourceTemplate.processTemplate(AbstractSingleResourceTemplate.java:78)
com.liferay.taglib.util.ThemeUtil.doIncludeFTL(ThemeUtil.java:283)
com.liferay.taglib.util.ThemeUtil.doDispatch(ThemeUtil.java:157)
com.liferay.taglib.util.ThemeUtil.includeFTL(ThemeUtil.java:100)
com.liferay.taglib.util.ThemeUtil.include(ThemeUtil.java:82)
com.liferay.taglib.theme.IncludeTag.doEndTag(IncludeTag.java:34)
org.apache.jsp.html.common.themes.portal_jsp._jspx_meth_liferay_002dtheme_005finclude_005f1(portal_jsp.java:759)
org.apache.jsp.html.common.themes.portal_jsp._jspService(portal_jsp.java:696)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:115)
com.liferay.portal.struts.StrutsUtil.forward(StrutsUtil.java:71)
com.liferay.portal.struts.PortalRequestProcessor.doForward(PortalRequestProcessor.java:277)
org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:271)
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:332)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232)
com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:170)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:568)
com.liferay.portal.servlet.MainServlet.service(MainServlet.java:545)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:180)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:303)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:115)
com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:172)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:180)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.security.sso.ntlm.internal.servlet.filter.NtlmPostFilter.processFilter(NtlmPostFilter.java:107)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:336)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:125)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:303)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:269)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:86)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:268)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:260)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
com.liferay.portal.servlet.filters.urlrewrite.UrlRewriteFilter.processFilter(UrlRewriteFilter.java:65)
com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:115)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.32 logs.
thumbnail
Olaf Kock, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

Liferay Legend Publications: 6403 Date d'inscription: 23/09/08 Publications récentes
scott E mitchell:
I have download same https://github.com/liferay/liferay-portal/tree/master/modules/apps/foundation/frontend-theme/frontend-theme-classic/src
and put all the src to my new custom theme but its wont work


You might want to start with the 7.0 GA3 version (branch, tag or source download). The master branch is the development branch and might differ significantly from the current release (e.g. it might be closer to Liferay's next version than to the previous version.
scott E mitchell, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

Junior Member Publications: 41 Date d'inscription: 01/10/16 Publications récentes
Thank Olaf for you reply but there is 7.0.x branch is it working for LF7-GA3 ????


TIA...........
Patrick Yeo, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

Junior Member Publications: 61 Date d'inscription: 08/02/13 Publications récentes
scott E mitchell:
Thank Olaf for you reply but there is 7.0.x branch is it working for LF7-GA3 ????


TIA...........



Hey Scott,

You can navigate to 7.0GA3 source by going to https://github.com/liferay/liferay-portal/releases and clicking the commit, then click Browse Files near the top right.

7.0GA3 Source for the lazy people https://github.com/liferay/liferay-portal/tree/475b9805d040f0ce2a046955bd68bf16fe1c2f0e
thumbnail
Mirto Silvio Busico, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

Regular Member Publications: 240 Date d'inscription: 18/01/12 Publications récentes
Hi all.

I tried tho use these instruction and ended i an almost working copy of the classic theme.
Something is missing and the differences I see are in the package.json file.
Here the package.json file is the one generated by the Liferay Theme Generator. Th "gulpfile (1).js" is the original classic-theme file.
The differences are:
sysop@vm12:~/temi/frontend-theme-classic-mofified-theme$ diff package.json "gulpfile (1).js"
1,23c1,9
&lt; {
&lt;       "name": "frontend-theme-classic-mofified-theme",
&lt;       "version": "1.0.0",
&lt;       "main": "package.json",
&lt;       "keywords": [
&lt;               "liferay-theme"
&lt;       ],
&lt;       "liferayTheme": {
&lt;               "baseTheme": "styled",
&lt;               "screenshot": "",
&lt;               "rubySass": false,
&lt;               "templateLanguage": "ftl",
&lt;               "version": "7.0"
&lt;       },
&lt;       "devDependencies": {
&lt;               "gulp": "^3.8.10",
&lt;               "liferay-theme-tasks": "*",
&lt;               "liferay-theme-deps-7.0": "~1.0.0"                                                                                                                                                           
&lt;       },                                                                                                                                                                                                   
&lt;       "publishConfig": {                                                                                                                                                                                   
&lt;               "tag": "7_0_x"                                                                                                                                                                               
&lt;       }                                                                                                                                                                                                    
&lt; }                                                                                                                                                                                                          
\ Manca newline alla fine del file                                                                                                                                                                           
---                                                                                                                                                                                                          
&gt; 'use strict';                                                                                                                                                                                              
&gt;                                                                                                                                                                                                            
&gt; var gulp = require('gulp');                                                                                                                                                                                
&gt; var liferayThemeTasks = require('liferay-theme-tasks');                                                                                                                                                    
&gt;                                                                                                                                                                                                            
&gt; liferayThemeTasks.registerTasks(                                                                                                                                                                           
&gt;       {                                                                                                                                                                                                    
&gt;               gulp: gulp                                                                                                                                                                                   
&gt;       });                                                                                                                                                                                                  
\ Manca newline alla fine del file                                                                                                                                                                           
sysop@vm12:~/temi/frontend-theme-classic-mofified-theme$


What I'm missing?

Below the steps I followed to generate the theme:

Download liferay 7 GA 3 from git using URL
https://github.com/liferay/liferay-portal/tree/475b9805d040f0ce2a046955bd68bf16fe1c2f0e

From there click the Download button selecting “Download zip”
The downloaded file is 1.3 Gb and have the name:
liferay-portal-475b9805d040f0ce2a046955bd68bf16fe1c2f0e.zip

From the directory obtained unzipping the file
/home/sysop/Scaricati/liferay-portal-475b9805d040f0ce2a046955bd68bf16fe1c2f0e/modules/apps/foundation/frontend-theme/

Copy the “frontend-theme-classic”in the folder you use for developing themes (example in my case)
/home/sysop/temi/

In “package.json” change the name in “classic-theme-modified”
"name": "classic-theme-modified",

Go inside the theme directory
cd /home/sysop/temi/frontend-theme-classic/

Crate a theme with liferay theme generator in “home/sysop/temi” with the name “frontend-theme-classic-mofified”
sysop@vm12:~/temi$ yo liferay-theme
? ==========================================================================
We're constantly looking for ways to make yo better! 
May we anonymously report usage statistics to improve the tool over time? 
More info: https://github.com/yeoman/insight &amp; http://yeoman.io
========================================================================== Yes

     _-----_
    |       |    .--------------------------.
    |--(o)--|    |  Welcome to the splendid |
   `---------´   | Liferay Theme generator! |
    ( _´U`_ )    '--------------------------'
    /___A___\    
     |  ~  |     
   __'.___.'__   
 ´   `  |° ´ Y ` 

? What would you like to call your theme? frontend-theme-classic-mofified
? Would you like to use this as the themeId? frontend-theme-classic-mofified
? Which version of Liferay is this theme for? 7.0
   create package.json
   create .gitignore
   create gulpfile.js
   create src/WEB-INF/liferay-look-and-feel.xml
   create src/WEB-INF/liferay-plugin-package.properties
   create src/css/_custom.scss


I'm all done. Running npm install for you to install the required dependencies. If this fails, try running the command yourself.

Go to theme directory
cd ~/temi/frontend-theme-classic-mofified-theme

Copy the classic theme directory content in the new created direcory.
Two files conflict “gulpfile.js” and “package.json”: maintain the generated theme files and delete the two files coming from frontend-classic-theme.
Generate the theme
gulp build

Copy the dist war file in
/home/sysop/temi/frontend-theme-classic-mofified-theme/dist/frontend-theme-classic-mofified-theme.war

In the deploy Liferay directory (in my case)
/LH/bundles/liferay-ce-portal-7.0-ga3/deploy/
Patrick Yeo, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

Junior Member Publications: 61 Date d'inscription: 08/02/13 Publications récentes
Hey Mirto,

The process I use to extend classic theme is:

1. create a directory to place your themes in
2. Install liferay-theme-generator by following the readme at https://github.com/liferay/generator-liferay-theme
3. Create a new theme by running yo liferay-theme, use the defaults (will install some stuffs)
4. Specify the path to your app server directory when it asks `Enter the path to your app server directory:`
5. Navigate to the theme directory you just created
6. Copy all the files from https://github.com/liferay/liferay-portal/tree/475b9805d040f0ce2a046955bd68bf16fe1c2f0e/modules/apps/foundation/frontend-theme/frontend-theme-classic/src/css into the css directory of your new theme
7. Copy all the files fromhttps://github.com/liferay/liferay-portal/tree/475b9805d040f0ce2a046955bd68bf16fe1c2f0e/modules/apps/foundation/frontend-theme/frontend-theme-classic/src/images into the images directory
8. Copy all files from https://github.com/liferay/liferay-portal/tree/475b9805d040f0ce2a046955bd68bf16fe1c2f0e/modules/apps/foundation/frontend-theme/frontend-theme-classic/src/js into js directory
9. Copy all files from https://github.com/liferay/liferay-portal/tree/475b9805d040f0ce2a046955bd68bf16fe1c2f0e/modules/apps/foundation/frontend-theme/frontend-theme-classic/src/templates into templates directory
10. You can add your custom changes at the bottom of _custom.scss (try adding #wrapper { background: red; })
11. Type gulp deploy in your themes root directory, background should be red if it worked
thumbnail
Mirto Silvio Busico, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

Regular Member Publications: 240 Date d'inscription: 18/01/12 Publications récentes
Thanks a lot.
I'll try asap
Lucy W, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

Junior Member Publications: 50 Date d'inscription: 21/09/16 Publications récentes
If you're using the liferay-theme-generator, there's a much easier way than copying all the source code. Use the "gulp kickstart" command and choose classic when presented with the options. This will pull in a one-time instance of the classic theme that you can then modify and not have to worry that it will be altered by future updates to the classic theme.

I don't know why the kickstart task isn't listed in the Liferay docs, but it definitely exists:
https://www.npmjs.com
thumbnail
Wouter Vernaillen, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

Junior Member Publications: 80 Date d'inscription: 06/06/09 Publications récentes
Lucy W:
Use the "gulp kickstart" command and choose classic when presented with the options.

I just tried it and it worked perfectly! Thanks!
thumbnail
Mirto Silvio Busico, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

Regular Member Publications: 240 Date d'inscription: 18/01/12 Publications récentes
It worked perfectly also for me.

Thanks
Janne Lepola, modifié il y a 6 années.

RE: Extend Classic Theme in Liferay 7

New Member Publications: 19 Date d'inscription: 28/02/17 Publications récentes
This method worked for me as well, +1 .

Just little note for anyone looking for this solution: I first generated default theme with "yo liferay-theme". Next I went to this folder which contains gulp-file. This is where you run "gulp kickstart" and select third option. Copy all the files from src-folder to your theme which you have created from IDE (into it's src-folder).

Interesting how liferay-theme-generator mentions an issue on Windows-platform (requires python + visual studio), even though I don't have either installed and generator seemed to work well. emoticon
Maarten van Leunen, modifié il y a 5 années.

RE: Extend Classic Theme in Liferay 7

New Member Publications: 8 Date d'inscription: 08/01/16 Publications récentes
L Winchester:
If you're using the liferay-theme-generator, there's a much easier way than copying all the source code. Use the "gulp kickstart" command and choose [i]classic [/i]when presented with the options. This will pull in a one-time instance of the classic theme that you can then modify and not have to worry that it will be altered by future updates to the classic theme. I don't know why the kickstart task isn't listed in the Liferay docs, but it definitely exists: [url=https://www.npmjs.com/package/liferay-theme-tasks#kickstart]https://www.npmjs.com[/url]
 
 

When I choose 7.0 for the theme, kickstart does indeed present me with a third choice called Classic.

 

When I choose 7.1 for the theme, this third choice is no longer available.

 

Had it been removed?

Lee Jordan, modifié il y a 3 années.

RE: Extend Classic Theme in Liferay 7

Expert Publications: 449 Date d'inscription: 26/05/15 Publications récentes
What's the branch version for frontend-theme-classic for 7.2 please.
7, 8 or 9 ?? 

Documentation is horrible.
Patrick Yeo, modifié il y a 3 années.

RE: Extend Classic Theme in Liferay 7

Junior Member Publications: 61 Date d'inscription: 08/02/13 Publications récentes