1
22
23 package com.liferay.portal.lastmodified;
24
25 import com.liferay.portal.kernel.servlet.BrowserSniffer;
26 import com.liferay.portal.kernel.servlet.HttpHeaders;
27 import com.liferay.portal.kernel.util.ParamUtil;
28 import com.liferay.portal.model.ColorScheme;
29 import com.liferay.portal.model.Theme;
30 import com.liferay.portal.service.impl.ThemeLocalUtil;
31 import com.liferay.portal.theme.ThemeDisplay;
32 import com.liferay.portal.util.WebKeys;
33
34 import javax.servlet.http.HttpServletRequest;
35 import javax.servlet.http.HttpServletResponse;
36
37 import org.apache.struts.action.Action;
38 import org.apache.struts.action.ActionForm;
39 import org.apache.struts.action.ActionForward;
40 import org.apache.struts.action.ActionMapping;
41
42
48 public abstract class LastModifiedAction extends Action {
49
50 public ActionForward execute(
51 ActionMapping mapping, ActionForm form, HttpServletRequest req,
52 HttpServletResponse res)
53 throws Exception {
54
55 ThemeDisplay themeDisplay =
56 (ThemeDisplay)req.getAttribute(WebKeys.THEME_DISPLAY);
57
58 Theme theme = themeDisplay.getTheme();
59 ColorScheme colorScheme = themeDisplay.getColorScheme();
60
61 String themeId = ParamUtil.getString(req, "themeId");
62 String colorSchemeId = ParamUtil.getString(req, "colorSchemeId");
63
64
69
77 if ((theme == null) || (colorScheme == null) ||
78 (!theme.getThemeId().equals(themeId)) ||
79 (!colorScheme.getColorSchemeId().equals(colorSchemeId))) {
80
81 boolean wapTheme = BrowserSniffer.is_wap_xhtml(req);
82
83 theme = ThemeLocalUtil.getTheme(
84 themeDisplay.getCompanyId(), themeId, wapTheme);
85 colorScheme = ThemeLocalUtil.getColorScheme(
86 themeDisplay.getCompanyId(), themeId, colorSchemeId, wapTheme);
87
88 themeDisplay.setLookAndFeel(theme, colorScheme);
89
90 req.setAttribute(WebKeys.THEME, theme);
91 req.setAttribute(WebKeys.COLOR_SCHEME, colorScheme);
92 }
93
94 res.addHeader(HttpHeaders.CACHE_CONTROL, "max-age=0");
95
96 res.setDateHeader(
97 HttpHeaders.LAST_MODIFIED, System.currentTimeMillis());
98
99 return mapping.findForward("modified.jsp");
100 }
101
102 public abstract String getLastModifiedKey(HttpServletRequest req);
103
104 public abstract String getLastModifiedValue(String key);
105
106 public abstract void setLastModifiedValue(String key, String value);
107
108 }