1
22
23 package com.liferay.portal.servlet.taglib.ui;
24
25 import com.liferay.portal.kernel.configuration.Filter;
26 import com.liferay.portal.kernel.log.Log;
27 import com.liferay.portal.kernel.log.LogFactoryUtil;
28 import com.liferay.portal.kernel.servlet.PortalIncludeUtil;
29 import com.liferay.portal.kernel.util.ArrayUtil;
30 import com.liferay.portal.kernel.util.HttpUtil;
31 import com.liferay.portal.util.PropsKeys;
32 import com.liferay.portal.util.PropsUtil;
33
34 import java.util.Map;
35
36 import javax.servlet.http.HttpServletRequest;
37 import javax.servlet.jsp.JspException;
38 import javax.servlet.jsp.PageContext;
39
40 import org.hibernate.util.FastHashMap;
41
42
48 public class SocialBookmarkTagUtil {
49
50 public static void doEndTag(
51 String page, String type, String url, String title, String target,
52 PageContext pageContext)
53 throws JspException {
54
55 try {
56 HttpServletRequest request =
57 (HttpServletRequest)pageContext.getRequest();
58
59 request.setAttribute("liferay-ui:social-bookmark:type", type);
60 request.setAttribute("liferay-ui:social-bookmark:url", url);
61 request.setAttribute("liferay-ui:social-bookmark:title", title);
62 request.setAttribute("liferay-ui:social-bookmark:target", target);
63
64 String[] socialTypes = PropsUtil.getArray(
65 PropsKeys.SOCIAL_BOOKMARK_TYPES);
66
67 if (!ArrayUtil.contains(socialTypes, type)) {
68 return;
69 }
70
71 String postUrl = _getPostUrl(type, url, title);
72
73 request.setAttribute("liferay-ui:social-bookmark:postUrl", postUrl);
74
75 PortalIncludeUtil.include(pageContext, page);
76 }
77 catch (Exception e) {
78 _log.error(e, e);
79
80 throw new JspException(e);
81 }
82 }
83
84 private static String _getPostUrl(String type, String url, String title)
85 throws Exception {
86
87 Map<String, String> vars = new FastHashMap();
88
89 vars.put("liferay:social-bookmark:url", url);
90 vars.put("liferay:social-bookmark:title", HttpUtil.encodeURL(title));
91
92 String postUrl = PropsUtil.get(
93 PropsKeys.SOCIAL_BOOKMARK_POST_URL, new Filter(type, vars));
94
95 return postUrl;
96 }
97
98 private static Log _log =
99 LogFactoryUtil.getLog(SocialBookmarkTagUtil.class);
100
101 }