Example usage for com.liferay.portal.kernel.theme ThemeDisplay getLayout

List of usage examples for com.liferay.portal.kernel.theme ThemeDisplay getLayout

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.theme ThemeDisplay getLayout.

Prototype

public Layout getLayout() 

Source Link

Document

Returns the site's page.

Usage

From source file:com.liferay.journal.search.JournalOpenSearchImpl.java

License:Open Source License

@Override
protected String getURL(ThemeDisplay themeDisplay, long groupId, Document result, PortletURL portletURL)
        throws Exception {

    String articleId = result.get("articleId");

    JournalArticle article = _journalArticleService.getArticle(groupId, articleId);

    if (Validator.isNotNull(article.getLayoutUuid())) {
        String groupFriendlyURL = _portal.getGroupFriendlyURL(
                _layoutSetLocalService.getLayoutSet(article.getGroupId(), false), themeDisplay);

        return groupFriendlyURL.concat(JournalArticleConstants.CANONICAL_URL_SEPARATOR)
                .concat(article.getUrlTitle());
    }/*from  w w  w  . j a  v a 2  s.c o  m*/

    Layout layout = themeDisplay.getLayout();

    List<Long> hitLayoutIds = _journalContentSearchLocalService.getLayoutIds(layout.getGroupId(),
            layout.isPrivateLayout(), articleId);

    for (Long hitLayoutId : hitLayoutIds) {
        PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();

        if (LayoutPermissionUtil.contains(permissionChecker, layout.getGroupId(), layout.isPrivateLayout(),
                hitLayoutId, ActionKeys.VIEW)) {

            Layout hitLayout = _layoutLocalService.getLayout(layout.getGroupId(), layout.isPrivateLayout(),
                    hitLayoutId.longValue());

            return _portal.getLayoutURL(hitLayout, themeDisplay);
        }
    }

    String layoutURL = getLayoutURL(themeDisplay, articleId);

    if (layoutURL != null) {
        return layoutURL;
    }

    AssetEntry assetEntry = _assetEntryLocalService.fetchEntry(JournalArticle.class.getName(),
            article.getResourcePrimKey());

    if (assetEntry == null) {
        return null;
    }

    portletURL.setParameter("assetEntryId", String.valueOf(assetEntry.getEntryId()));
    portletURL.setParameter("groupId", String.valueOf(groupId));
    portletURL.setParameter("articleId", articleId);

    return portletURL.toString();
}

From source file:com.liferay.journal.util.impl.JournalUtil.java

License:Open Source License

private static void _populateTokens(Map<String, String> tokens, long articleGroupId, ThemeDisplay themeDisplay)
        throws PortalException {

    Layout layout = themeDisplay.getLayout();

    Group group = layout.getGroup();

    LayoutSet layoutSet = layout.getLayoutSet();

    String friendlyUrlCurrent = null;

    if (layout.isPublicLayout()) {
        friendlyUrlCurrent = themeDisplay.getPathFriendlyURLPublic();
    } else if (group.isUserGroup()) {
        friendlyUrlCurrent = themeDisplay.getPathFriendlyURLPrivateUser();
    } else {/*ww w.j a  v  a  2  s .c o m*/
        friendlyUrlCurrent = themeDisplay.getPathFriendlyURLPrivateGroup();
    }

    String layoutSetFriendlyUrl = themeDisplay.getI18nPath();

    String virtualHostname = layoutSet.getVirtualHostname();

    if (Validator.isNull(virtualHostname) || !virtualHostname.equals(themeDisplay.getServerName())) {

        layoutSetFriendlyUrl = friendlyUrlCurrent + group.getFriendlyURL();
    }

    tokens.put("article_group_id", String.valueOf(articleGroupId));
    tokens.put("cdn_host", themeDisplay.getCDNHost());
    tokens.put("company_id", String.valueOf(themeDisplay.getCompanyId()));
    tokens.put("friendly_url_current", friendlyUrlCurrent);
    tokens.put("friendly_url_private_group", themeDisplay.getPathFriendlyURLPrivateGroup());
    tokens.put("friendly_url_private_user", themeDisplay.getPathFriendlyURLPrivateUser());
    tokens.put("friendly_url_public", themeDisplay.getPathFriendlyURLPublic());
    tokens.put("group_friendly_url", group.getFriendlyURL());
    tokens.put("image_path", themeDisplay.getPathImage());
    tokens.put("layout_set_friendly_url", layoutSetFriendlyUrl);
    tokens.put("main_path", themeDisplay.getPathMain());
    tokens.put("portal_ctx", themeDisplay.getPathContext());
    tokens.put("portal_url", HttpUtil.removeProtocol(themeDisplay.getURLPortal()));
    tokens.put("protocol", HttpUtil.getProtocol(themeDisplay.getURLPortal()));
    tokens.put("root_path", themeDisplay.getPathContext());
    tokens.put("scope_group_id", String.valueOf(themeDisplay.getScopeGroupId()));
    tokens.put("site_group_id", String.valueOf(themeDisplay.getSiteGroupId()));
    tokens.put("theme_image_path", themeDisplay.getPathThemeImages());

    _populateCustomTokens(tokens, themeDisplay.getCompanyId());

    // Deprecated tokens

    tokens.put("friendly_url", themeDisplay.getPathFriendlyURLPublic());
    tokens.put("friendly_url_private", themeDisplay.getPathFriendlyURLPrivateGroup());
    tokens.put("group_id", String.valueOf(articleGroupId));
    tokens.put("page_url", themeDisplay.getPathFriendlyURLPublic());
}

From source file:com.liferay.journal.web.asset.JournalArticleAssetRenderer.java

License:Open Source License

@Override
public String getURLViewInContext(LiferayPortletRequest liferayPortletRequest,
        LiferayPortletResponse liferayPortletResponse, String noSuchEntryRedirect) throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) liferayPortletRequest.getAttribute(WebKeys.THEME_DISPLAY);

    Layout layout = _article.getLayout();

    if (layout == null) {
        layout = themeDisplay.getLayout();
    }/*from   www. ja  v a  2  s  .  c o  m*/

    String portletId = (String) liferayPortletRequest.getAttribute(WebKeys.PORTLET_ID);

    PortletPreferences portletSetup = PortletPreferencesFactoryUtil.getStrictLayoutPortletSetup(layout,
            portletId);

    String linkToLayoutUuid = GetterUtil.getString(portletSetup.getValue("portletSetupLinkToLayoutUuid", null));

    if (Validator.isNotNull(_article.getLayoutUuid()) && Validator.isNull(linkToLayoutUuid)) {

        Group group = themeDisplay.getScopeGroup();

        if (group.getGroupId() != _article.getGroupId()) {
            group = GroupLocalServiceUtil.getGroup(_article.getGroupId());
        }

        String groupFriendlyURL = PortalUtil.getGroupFriendlyURL(
                LayoutSetLocalServiceUtil.getLayoutSet(group.getGroupId(), layout.isPrivateLayout()),
                themeDisplay);

        return PortalUtil.addPreservedParameters(themeDisplay, groupFriendlyURL
                .concat(JournalArticleConstants.CANONICAL_URL_SEPARATOR).concat(_article.getUrlTitle()));
    }

    String hitLayoutURL = getHitLayoutURL(layout.isPrivateLayout(), noSuchEntryRedirect, themeDisplay);

    if (hitLayoutURL.equals(noSuchEntryRedirect)) {
        hitLayoutURL = getHitLayoutURL(!layout.isPrivateLayout(), noSuchEntryRedirect, themeDisplay);
    }

    return hitLayoutURL;
}

From source file:com.liferay.journal.web.internal.portlet.JournalPortlet.java

License:Open Source License

protected void updateContentSearch(ActionRequest actionRequest, String portletResource, String articleId)
        throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

    Layout layout = themeDisplay.getLayout();

    long referringPlid = ParamUtil.getLong(actionRequest, "referringPlid");

    if (referringPlid > 0) {
        layout = _layoutLocalService.fetchLayout(referringPlid);
    }//from w  w w. j  av  a2 s.c  om

    _journalContentSearchLocalService.updateContentSearch(layout.getGroupId(), layout.isPrivateLayout(),
            layout.getLayoutId(), portletResource, articleId, true);
}

From source file:com.liferay.journal.web.util.JournalRSSUtil.java

License:Open Source License

public byte[] getRSS(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY);

    JournalFeed feed = null;//w  w  w  .j a v  a2  s  .c om

    long id = ParamUtil.getLong(resourceRequest, "id");

    if (id > 0) {
        try {
            feed = _journalFeedLocalService.getFeed(id);
        } catch (NoSuchFeedException nsfe) {

            // Backward compatibility with old URLs

            feed = _journalFeedLocalService.getFeed(themeDisplay.getScopeGroupId(), String.valueOf(id));
        }
    } else {
        long groupId = ParamUtil.getLong(resourceRequest, "groupId");
        String feedId = ParamUtil.getString(resourceRequest, "feedId");

        feed = _journalFeedLocalService.getFeed(groupId, feedId);
    }

    String languageId = LanguageUtil.getLanguageId(resourceRequest);

    long plid = _portal.getPlidFromFriendlyURL(themeDisplay.getCompanyId(), feed.getTargetLayoutFriendlyUrl());

    Layout layout = null;

    if (plid > 0) {
        layout = _layoutLocalService.fetchLayout(plid);
    }

    if (layout == null) {
        layout = themeDisplay.getLayout();
    }

    String rss = exportToRSS(resourceRequest, resourceResponse, feed, languageId, layout, themeDisplay);

    return rss.getBytes(StringPool.UTF8);
}

From source file:com.liferay.layout.admin.web.internal.control.menu.CustomizationSettingsProductNavigationControlMenuEntry.java

License:Open Source License

public boolean hasUpdateLayoutPermission(ThemeDisplay themeDisplay) throws PortalException {

    if (LayoutPermissionUtil.contains(themeDisplay.getPermissionChecker(), themeDisplay.getLayout(),
            ActionKeys.UPDATE)) {//w  w  w . j a  v  a 2s.c o m

        return true;
    }

    return false;
}

From source file:com.liferay.layout.admin.web.internal.control.menu.CustomizationSettingsProductNavigationControlMenuEntry.java

License:Open Source License

protected boolean isCustomizableLayout(ThemeDisplay themeDisplay) throws PortalException {

    Layout layout = themeDisplay.getLayout();

    Group group = layout.getGroup();

    if (group.isLayoutPrototype() || group.isLayoutSetPrototype() || group.isStagingGroup()
            || group.isUserGroup()) {/*from w  w w. j a va  2s .com*/

        return false;
    }

    LayoutTypePortlet layoutTypePortlet = themeDisplay.getLayoutTypePortlet();

    if (!layout.isTypePortlet() || (layoutTypePortlet == null)) {
        return false;
    }

    if (layout.isCustomizable() && hasUpdateLayoutPermission(themeDisplay)) {

        return true;
    }

    if (!layoutTypePortlet.isCustomizable()) {
        return false;
    }

    if (!LayoutPermissionUtil.containsWithoutViewableGroup(themeDisplay.getPermissionChecker(), layout, false,
            ActionKeys.CUSTOMIZE)) {

        return false;
    }

    return true;
}

From source file:com.liferay.layout.admin.web.internal.control.menu.CustomizationSettingsProductNavigationControlMenuEntry.java

License:Open Source License

private boolean _isShow(HttpServletRequest request) throws PortalException {
    ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);

    Layout layout = themeDisplay.getLayout();

    if (layout.isTypeControlPanel()) {
        return false;
    }/*from   www .  j a v a  2 s . c  o  m*/

    if (!isCustomizableLayout(themeDisplay)) {
        return false;
    }

    return super.isShow(request);
}

From source file:com.liferay.layout.admin.web.internal.control.menu.ManageLayoutProductNavigationControlMenuEntry.java

License:Open Source License

@Override
public boolean includeIcon(HttpServletRequest request, HttpServletResponse response) throws IOException {

    Map<String, String> values = new HashMap<>();

    ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);

    ResourceBundle resourceBundle = ResourceBundleUtil.getBundle("content.Language", themeDisplay.getLocale(),
            getClass());/*from   www .j av  a 2s  .co m*/

    values.put("configurePage", _html.escape(_language.get(resourceBundle, "configure-page")));

    PortletURL editPageURL = _portal.getControlPanelPortletURL(request, LayoutAdminPortletKeys.GROUP_PAGES,
            PortletRequest.RENDER_PHASE);

    Layout layout = themeDisplay.getLayout();

    editPageURL.setParameter("mvcRenderCommandName", "/layout/edit_layout");
    editPageURL.setParameter("backURL", _portal.getCurrentURL(request));
    editPageURL.setParameter("groupId", String.valueOf(layout.getGroupId()));
    editPageURL.setParameter("selPlid", String.valueOf(layout.getPlid()));
    editPageURL.setParameter("privateLayout", String.valueOf(layout.isPrivateLayout()));

    values.put("editPageURL", editPageURL.toString());

    try {
        IconTag iconTag = new IconTag();

        iconTag.setCssClass("icon-monospaced");
        iconTag.setImage("cog");
        iconTag.setMarkupView("lexicon");

        PageContext pageContext = PageContextFactoryUtil.create(request, response);

        values.put("iconCog", iconTag.doTagAsString(pageContext));

        SuccessTag successTag = new SuccessTag();

        successTag.setKey("layoutUpdated");
        successTag.setMessage(_language.get(resourceBundle, "the-page-was-updated-succesfully"));
        successTag.setTargetNode("#controlMenuAlertsContainer");

        values.put("layoutUpdatedMessage", successTag.doTagAsString(pageContext));
    } catch (JspException je) {
        ReflectionUtil.throwException(je);
    }

    Writer writer = response.getWriter();

    writer.write(StringUtil.replace(_TMPL_CONTENT, "${", "}", values));

    return true;
}

From source file:com.liferay.layout.admin.web.internal.control.menu.ManageLayoutProductNavigationControlMenuEntry.java

License:Open Source License

@Override
public boolean isShow(HttpServletRequest request) throws PortalException {
    ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);

    Layout layout = themeDisplay.getLayout();

    if (layout.isTypeControlPanel()) {
        return false;
    }//from w w  w  . j  a v a2s  .co m

    if (!(themeDisplay.isShowLayoutTemplatesIcon() || themeDisplay.isShowPageSettingsIcon())) {

        return false;
    }

    return super.isShow(request);
}