List of usage examples for com.liferay.portal.kernel.util PortalUtil getLayoutFullURL
public static String getLayoutFullURL(ThemeDisplay themeDisplay) throws PortalException
From source file:com.liferay.asset.publisher.web.util.AssetRSSUtil.java
License:Open Source License
protected static String exportToRSS(PortletRequest portletRequest, PortletResponse portletResponse, String name, String description, String format, double version, String displayStyle, String linkBehavior, List<AssetEntry> assetEntries) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY); SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setDescription(GetterUtil.getString(description, name)); List<SyndEntry> syndEntries = new ArrayList<>(); syndFeed.setEntries(syndEntries);/*from ww w. j a va2s . c o m*/ for (AssetEntry assetEntry : assetEntries) { SyndEntry syndEntry = new SyndEntryImpl(); String author = PortalUtil.getUserName(assetEntry); syndEntry.setAuthor(author); SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); String value = null; String languageId = LanguageUtil.getLanguageId(portletRequest); if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else { value = assetEntry.getSummary(languageId, true); } syndContent.setValue(value); syndEntry.setDescription(syndContent); String link = getEntryURL(portletRequest, portletResponse, linkBehavior, assetEntry); syndEntry.setLink(link); syndEntry.setPublishedDate(assetEntry.getPublishDate()); syndEntry.setTitle(assetEntry.getTitle(languageId, true)); syndEntry.setUpdatedDate(assetEntry.getModifiedDate()); syndEntry.setUri(syndEntry.getLink()); syndEntries.add(syndEntry); } syndFeed.setFeedType(RSSUtil.getFeedType(format, version)); List<SyndLink> syndLinks = new ArrayList<>(); syndFeed.setLinks(syndLinks); SyndLink selfSyndLink = new SyndLinkImpl(); syndLinks.add(selfSyndLink); String feedURL = getFeedURL(portletRequest); selfSyndLink.setHref(feedURL); selfSyndLink.setRel("self"); SyndLink alternateSyndLink = new SyndLinkImpl(); syndLinks.add(alternateSyndLink); alternateSyndLink.setHref(PortalUtil.getLayoutFullURL(themeDisplay)); alternateSyndLink.setRel("alternate"); syndFeed.setPublishedDate(new Date()); syndFeed.setTitle(name); syndFeed.setUri(feedURL); return RSSUtil.export(syndFeed); }
From source file:com.liferay.blogs.service.impl.BlogsEntryLocalServiceImpl.java
License:Open Source License
protected void pingPingback(BlogsEntry entry, ServiceContext serviceContext) throws PortalException { if (!PropsValues.BLOGS_PINGBACK_ENABLED || !entry.isAllowPingbacks() || !entry.isApproved()) { return;//from w ww .j ava 2s. com } HttpServletRequest request = serviceContext.getRequest(); if (request == null) { return; } ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); String layoutFullURL = PortalUtil.getLayoutFullURL(themeDisplay); if (Validator.isNull(layoutFullURL)) { return; } String sourceUri = layoutFullURL + Portal.FRIENDLY_URL_SEPARATOR + "blogs/" + entry.getUrlTitle(); Source source = new Source(entry.getContent()); List<StartTag> tags = source.getAllStartTags("a"); for (StartTag tag : tags) { String targetUri = tag.getAttributeValue("href"); if (Validator.isNotNull(targetUri)) { try { LinkbackProducerUtil.sendPingback(sourceUri, targetUri); } catch (Exception e) { _log.error("Error while sending pingback " + targetUri, e); } } } }
From source file:com.liferay.blogs.service.impl.BlogsEntryLocalServiceImpl.java
License:Open Source License
protected void pingTrackbacks(BlogsEntry entry, String[] trackbacks, boolean pingOldTrackbacks, ServiceContext serviceContext) throws PortalException { if (!PropsValues.BLOGS_TRACKBACK_ENABLED || !entry.isAllowTrackbacks() || !entry.isApproved()) { return;/*from ww w.j av a 2 s .c om*/ } HttpServletRequest request = serviceContext.getRequest(); if (request == null) { return; } ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); String layoutFullURL = PortalUtil.getLayoutFullURL(themeDisplay); if (Validator.isNull(layoutFullURL)) { return; } Map<String, String> parts = new HashMap<>(); String excerpt = StringUtil.shorten(HtmlUtil.extractText(entry.getContent()), PropsValues.BLOGS_LINKBACK_EXCERPT_LENGTH); String url = layoutFullURL + Portal.FRIENDLY_URL_SEPARATOR + "blogs/" + entry.getUrlTitle(); parts.put("title", entry.getTitle()); parts.put("excerpt", excerpt); parts.put("url", url); parts.put("blog_name", entry.getUserName()); Set<String> trackbacksSet = null; if (ArrayUtil.isNotEmpty(trackbacks)) { trackbacksSet = SetUtil.fromArray(trackbacks); } else { trackbacksSet = new HashSet<>(); } if (pingOldTrackbacks) { trackbacksSet.addAll(SetUtil.fromArray(StringUtil.split(entry.getTrackbacks()))); entry.setTrackbacks(StringPool.BLANK); blogsEntryPersistence.update(entry); } Set<String> oldTrackbacks = SetUtil.fromArray(StringUtil.split(entry.getTrackbacks())); Set<String> validTrackbacks = new HashSet<>(); for (String trackback : trackbacksSet) { if (oldTrackbacks.contains(trackback)) { continue; } try { if (LinkbackProducerUtil.sendTrackback(trackback, parts)) { validTrackbacks.add(trackback); } } catch (Exception e) { _log.error("Error while sending trackback at " + trackback, e); } } if (!validTrackbacks.isEmpty()) { String newTrackbacks = StringUtil.merge(validTrackbacks); if (Validator.isNotNull(entry.getTrackbacks())) { newTrackbacks += StringPool.COMMA + entry.getTrackbacks(); } entry.setTrackbacks(newTrackbacks); blogsEntryPersistence.update(entry); } }
From source file:com.liferay.faces.portal.context.internal.LiferayPortletHelperImpl.java
License:Open Source License
@Override public ServiceContext getServiceContext() { ServiceContext serviceContext = new ServiceContext(); ThemeDisplay themeDisplay = getThemeDisplay(); serviceContext.setCompanyId(themeDisplay.getCompanyId()); serviceContext.setLanguageId(themeDisplay.getLanguageId()); serviceContext.setPathMain(PortalUtil.getPathMain()); serviceContext.setPlid(themeDisplay.getPlid()); serviceContext.setPortalURL(PortalUtil.getPortalURL(getPortletRequest())); serviceContext.setScopeGroupId(themeDisplay.getScopeGroupId()); serviceContext.setUserId(themeDisplay.getUserId()); try {//from w w w .java2s. c om serviceContext.setLayoutFullURL(PortalUtil.getLayoutFullURL(themeDisplay)); serviceContext.setLayoutURL(PortalUtil.getLayoutURL(themeDisplay)); serviceContext.setUserDisplayURL(themeDisplay.getUser().getDisplayURL(themeDisplay)); } catch (Exception e) { logger.error(e.getMessage(), e); } return serviceContext; }
From source file:com.liferay.message.boards.web.internal.portlet.action.SplitThreadMVCActionCommand.java
License:Open Source License
protected void splitThread(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); long messageId = ParamUtil.getLong(actionRequest, "messageId"); String splitThreadSubject = ParamUtil.getString(actionRequest, "splitThreadSubject"); ServiceContext serviceContext = ServiceContextFactory.getInstance(MBThread.class.getName(), actionRequest); MBMessage message = _mbMessageLocalService.getMessage(messageId); long oldParentMessageId = message.getParentMessageId(); MBThread newThread = _mbThreadService.splitThread(messageId, splitThreadSubject, serviceContext); boolean addExplanationPost = ParamUtil.getBoolean(actionRequest, "addExplanationPost"); if (addExplanationPost) { String subject = ParamUtil.getString(actionRequest, "subject"); String body = ParamUtil.getString(actionRequest, "body"); MBGroupServiceSettings mbGroupServiceSettings = MBGroupServiceSettings .getInstance(themeDisplay.getScopeGroupId()); String layoutFullURL = PortalUtil.getLayoutFullURL(themeDisplay); String newThreadURL = layoutFullURL + "/-/message_boards/view_message/" + message.getMessageId(); body = StringUtil.replace(body, MBThreadConstants.NEW_THREAD_URL, newThreadURL); serviceContext.setAddGroupPermissions(true); serviceContext.setAddGuestPermissions(true); _mbMessageService.addMessage(oldParentMessageId, subject, body, mbGroupServiceSettings.getMessageFormat(), Collections.<ObjectValuePair<String, InputStream>>emptyList(), false, MBThreadConstants.PRIORITY_NOT_GIVEN, message.getAllowPingbacks(), serviceContext); }/*w ww. j a v a 2s. co m*/ PortletURL portletURL = ((ActionResponseImpl) actionResponse).createRenderURL(); portletURL.setParameter("mvcRenderCommandName", "/message_boards/view_message"); portletURL.setParameter("messageId", String.valueOf(newThread.getRootMessageId())); actionResponse.sendRedirect(portletURL.toString()); }