1
22
23 package com.liferay.portlet.journal.util;
24
25 import com.liferay.portal.kernel.search.Document;
26 import com.liferay.portal.kernel.search.Hits;
27 import com.liferay.portal.model.Layout;
28 import com.liferay.portal.search.HitsOpenSearchImpl;
29 import com.liferay.portal.service.LayoutLocalServiceUtil;
30 import com.liferay.portal.theme.ThemeDisplay;
31 import com.liferay.portal.util.PortalUtil;
32 import com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil;
33 import com.liferay.portlet.journal.service.JournalContentSearchLocalServiceUtil;
34
35 import java.util.List;
36
37 import javax.portlet.PortletURL;
38
39
45 public class JournalOpenSearchImpl extends HitsOpenSearchImpl {
46
47 public static final String SEARCH_PATH = "/c/journal/open_search";
48
49 public static final String TITLE = "Liferay Journal Search: ";
50
51 public Hits getHits(
52 long companyId, String keywords, int start, int end)
53 throws Exception {
54
55 return JournalArticleLocalServiceUtil.search(
56 companyId, 0, keywords, start, end);
57 }
58
59 public String getSearchPath() {
60 return SEARCH_PATH;
61 }
62
63 public String getTitle(String keywords) {
64 return TITLE + keywords;
65 }
66
67 protected String getURL(
68 ThemeDisplay themeDisplay, long groupId, Document result,
69 PortletURL portletURL)
70 throws Exception {
71
72 Layout layout = themeDisplay.getLayout();
73
74 String articleId = result.get("articleId");
75 String version = result.get("version");
76
77 List<Long> hitLayoutIds =
78 JournalContentSearchLocalServiceUtil.getLayoutIds(
79 layout.getGroupId(), layout.isPrivateLayout(), articleId);
80
81 if (hitLayoutIds.size() > 0) {
82 Long hitLayoutId = hitLayoutIds.get(0);
83
84 Layout hitLayout = LayoutLocalServiceUtil.getLayout(
85 layout.getGroupId(), layout.isPrivateLayout(),
86 hitLayoutId.longValue());
87
88 return PortalUtil.getLayoutURL(hitLayout, themeDisplay);
89 }
90 else {
91 StringBuilder sb = new StringBuilder();
92
93 sb.append(themeDisplay.getPathMain());
94 sb.append("/journal/view_article_content?groupId=");
95 sb.append(groupId);
96 sb.append("&articleId=");
97 sb.append(articleId);
98 sb.append("&version=");
99 sb.append(version);
100
101 return sb.toString();
102 }
103 }
104
105 }