Example usage for com.liferay.portal.kernel.util PortalUtil getLayoutFullURL

List of usage examples for com.liferay.portal.kernel.util PortalUtil getLayoutFullURL

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util PortalUtil getLayoutFullURL.

Prototype

public static String getLayoutFullURL(ThemeDisplay themeDisplay) throws PortalException 

Source Link

Usage

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());
}