Example usage for com.liferay.portal.kernel.model Layout getTypeSettingsProperties

List of usage examples for com.liferay.portal.kernel.model Layout getTypeSettingsProperties

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.model Layout getTypeSettingsProperties.

Prototype

public com.liferay.portal.kernel.util.UnicodeProperties getTypeSettingsProperties();

Source Link

Usage

From source file:com.liferay.asset.publisher.layout.prototype.internal.instance.lifecycle.AddLayoutPrototypePortalInstanceLifecycleListener.java

License:Open Source License

protected void addWebContentPage(long companyId, long defaultUserId, List<LayoutPrototype> layoutPrototypes)
        throws Exception {

    ResourceBundleLoader resourceBundleLoader = new AggregateResourceBundleLoader(
            ResourceBundleUtil.getResourceBundleLoader("content.Language", getClassLoader()),
            LanguageResources.RESOURCE_BUNDLE_LOADER);

    Map<Locale, String> nameMap = ResourceBundleUtil.getLocalizationMap(resourceBundleLoader,
            "layout-prototype-web-content-title");
    Map<Locale, String> descriptionMap = ResourceBundleUtil.getLocalizationMap(resourceBundleLoader,
            "layout-prototype-web-content-description");

    Layout layout = DefaultLayoutPrototypesUtil.addLayoutPrototype(companyId, defaultUserId, nameMap,
            descriptionMap, "2_columns_ii", layoutPrototypes);

    if (layout == null) {
        return;//from w  w w  .  j av a 2  s .c  om
    }

    DefaultLayoutPrototypesUtil.addPortletId(layout, AssetTagsNavigationPortletKeys.ASSET_TAGS_NAVIGATION,
            "column-1");

    DefaultLayoutPrototypesUtil.addPortletId(layout,
            AssetCategoriesNavigationPortletKeys.ASSET_CATEGORIES_NAVIGATION, "column-1");

    String portletId = DefaultLayoutPrototypesUtil.addPortletId(layout,
            AssetPublisherPortletKeys.ASSET_PUBLISHER, "column-2");

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

    preferences.put("showOnlyLayoutAssets", Boolean.TRUE.toString());

    DefaultLayoutPrototypesUtil.updatePortletSetup(layout, portletId, preferences);

    UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties();

    typeSettingsProperties.setProperty(LayoutTypePortletConstants.DEFAULT_ASSET_PUBLISHER_PORTLET_ID,
            portletId);

    _layoutLocalService.updateLayout(layout.getGroupId(), layout.isPrivateLayout(), layout.getLayoutId(),
            layout.getTypeSettings());
}

From source file:com.liferay.asset.publisher.web.portlet.action.AssetPublisherConfigurationAction.java

License:Open Source License

protected void updateDefaultAssetPublisher(ActionRequest actionRequest) throws Exception {

    boolean defaultAssetPublisher = ParamUtil.getBoolean(actionRequest, "defaultAssetPublisher");

    Layout layout = (Layout) actionRequest.getAttribute(WebKeys.LAYOUT);

    String portletResource = ParamUtil.getString(actionRequest, "portletResource");

    UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties();

    if (defaultAssetPublisher) {
        typeSettingsProperties.setProperty(LayoutTypePortletConstants.DEFAULT_ASSET_PUBLISHER_PORTLET_ID,
                portletResource);//from w  w w . j ava 2 s . c o  m
    } else {
        String defaultAssetPublisherPortletId = typeSettingsProperties
                .getProperty(LayoutTypePortletConstants.DEFAULT_ASSET_PUBLISHER_PORTLET_ID);

        if (Validator.isNotNull(defaultAssetPublisherPortletId)
                && defaultAssetPublisherPortletId.equals(portletResource)) {

            typeSettingsProperties.setProperty(LayoutTypePortletConstants.DEFAULT_ASSET_PUBLISHER_PORTLET_ID,
                    StringPool.BLANK);
        }
    }

    layout = layoutLocalService.updateLayout(layout.getGroupId(), layout.isPrivateLayout(),
            layout.getLayoutId(), layout.getTypeSettings());

    if (LayoutStagingUtil.isBranchingLayout(layout)) {
        HttpServletRequest request = portal.getHttpServletRequest(actionRequest);

        LayoutSetBranch layoutSetBranch = LayoutStagingUtil.getLayoutSetBranch(layout.getLayoutSet());

        long layoutSetBranchId = layoutSetBranch.getLayoutSetBranchId();

        long layoutRevisionId = staging.getRecentLayoutRevisionId(request, layoutSetBranchId, layout.getPlid());

        LayoutRevision layoutRevision = layoutRevisionLocalService.getLayoutRevision(layoutRevisionId);

        PortletPreferencesImpl portletPreferences = (PortletPreferencesImpl) actionRequest.getPreferences();

        if (layoutRevision != null) {
            portletPreferences.setPlid(layoutRevision.getLayoutRevisionId());
        }
    }
}

From source file:com.liferay.asset.publisher.web.portlet.DisplayPageFriendlyURLResolver.java

License:Open Source License

@Override
public String getActualURL(long companyId, long groupId, boolean privateLayout, String mainPath,
        String friendlyURL, Map<String, String[]> params, Map<String, Object> requestContext)
        throws PortalException {

    String urlTitle = friendlyURL.substring(JournalArticleConstants.CANONICAL_URL_SEPARATOR.length());

    JournalArticle journalArticle = _journalArticleLocalService.getArticleByUrlTitle(groupId, urlTitle);

    Layout layout = getJournalArticleLayout(groupId, privateLayout, friendlyURL);

    String layoutActualURL = _portal.getLayoutActualURL(layout, mainPath);

    InheritableMap<String, String[]> actualParams = new InheritableMap<>();

    if (params != null) {
        actualParams.setParentMap(params);
    }/*w  w w. ja va 2s.com*/

    UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties();

    String defaultAssetPublisherPortletId = typeSettingsProperties
            .get(LayoutTypePortletConstants.DEFAULT_ASSET_PUBLISHER_PORTLET_ID);

    String currentDefaultAssetPublisherPortletId = defaultAssetPublisherPortletId;

    if (Validator.isNull(defaultAssetPublisherPortletId)) {
        defaultAssetPublisherPortletId = PortletIdCodec.encode(AssetPublisherPortletKeys.ASSET_PUBLISHER);
    }

    HttpServletRequest request = (HttpServletRequest) requestContext.get("request");

    if (Validator.isNull(currentDefaultAssetPublisherPortletId)) {
        String actualPortletAuthenticationToken = AuthTokenUtil.getToken(request, layout.getPlid(),
                defaultAssetPublisherPortletId);

        actualParams.put("p_p_auth", new String[] { actualPortletAuthenticationToken });
    }

    actualParams.put("p_p_id", new String[] { defaultAssetPublisherPortletId });
    actualParams.put("p_p_lifecycle", new String[] { "0" });

    if (Validator.isNull(currentDefaultAssetPublisherPortletId)) {
        actualParams.put("p_p_state", new String[] { WindowState.MAXIMIZED.toString() });
    }

    actualParams.put("p_p_mode", new String[] { "view" });
    actualParams.put("p_j_a_id", new String[] { String.valueOf(journalArticle.getId()) });

    String namespace = _portal.getPortletNamespace(defaultAssetPublisherPortletId);

    actualParams.put(namespace + "mvcPath", new String[] { "/view_content.jsp" });

    AssetRendererFactory<?> assetRendererFactory = AssetRendererFactoryRegistryUtil
            .getAssetRendererFactoryByClassName(JournalArticle.class.getName());

    actualParams.put(namespace + "type", new String[] { assetRendererFactory.getType() });

    actualParams.put(namespace + "urlTitle", new String[] { journalArticle.getUrlTitle() });

    String queryString = _http.parameterMapToString(actualParams, false);

    if (layoutActualURL.contains(StringPool.QUESTION)) {
        layoutActualURL = layoutActualURL + StringPool.AMPERSAND + queryString;
    } else {
        layoutActualURL = layoutActualURL + StringPool.QUESTION + queryString;
    }

    Locale locale = _portal.getLocale(request);

    _portal.addPageSubtitle(journalArticle.getTitle(locale), request);
    _portal.addPageDescription(journalArticle.getDescription(locale), request);

    List<AssetTag> assetTags = _assetTagLocalService.getTags(JournalArticle.class.getName(),
            journalArticle.getPrimaryKey());

    if (!assetTags.isEmpty()) {
        _portal.addPageKeywords(ListUtil.toString(assetTags, AssetTag.NAME_ACCESSOR), request);
    }

    return layoutActualURL;
}

From source file:com.liferay.exportimport.resources.importer.internal.util.FileSystemImporter.java

License:Open Source License

protected void resetLayoutColumns(Layout layout) {
    UnicodeProperties typeSettings = layout.getTypeSettingsProperties();

    Set<Map.Entry<String, String>> set = typeSettings.entrySet();

    Iterator<Map.Entry<String, String>> iterator = set.iterator();

    while (iterator.hasNext()) {
        Map.Entry<String, String> entry = iterator.next();

        String key = entry.getKey();

        if (!key.startsWith("column-")) {
            continue;
        }/*from ww w .  ja va2s .c  om*/

        String[] portletIds = StringUtil.split(entry.getValue());

        for (String portletId : portletIds) {
            try {
                portletPreferencesLocalService.deletePortletPreferences(PortletKeys.PREFS_OWNER_ID_DEFAULT,
                        PortletKeys.PREFS_OWNER_TYPE_LAYOUT, layout.getPlid(), portletId);
            } catch (PortalException pe) {
                if (_log.isWarnEnabled()) {
                    _log.warn("Unable to delete portlet preferences for " + "portlet " + portletId, pe);
                }
            }
        }

        iterator.remove();
    }

    layout.setTypeSettingsProperties(typeSettings);

    layoutLocalService.updateLayout(layout);
}

From source file:com.liferay.exportimport.resources.importer.test.ResourcesImporterTest.java

License:Open Source License

protected void validateLayouts(Group importedGroup) throws Exception {
    long privateLayoutsCount = LayoutLocalServiceUtil.getLayoutsCount(importedGroup, true);

    Assert.assertEquals(1, privateLayoutsCount);

    long publicLayoutsCount = LayoutLocalServiceUtil.getLayoutsCount(importedGroup, false);

    Assert.assertEquals(9, publicLayoutsCount);

    Layout layout = LayoutLocalServiceUtil.getFriendlyURLLayout(importedGroup.getGroupId(), false, "/home");

    Map<Locale, String> nameMap = layout.getNameMap();

    Assert.assertTrue(nameMap.containsValue("Bienvenue"));

    Assert.assertTrue(layout.isTypePortlet());

    LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) layout.getLayoutType();

    List<Portlet> portlets = layoutTypePortlet.getAllPortlets();

    Assert.assertEquals(portlets.toString(), 7, portlets.size());

    UnicodeProperties layoutTypeSettingsProperties = layout.getTypeSettingsProperties();

    String nestedColumnIds = layoutTypeSettingsProperties.get(LayoutTypePortletConstants.NESTED_COLUMN_IDS);

    Assert.assertTrue((nestedColumnIds != null) && nestedColumnIds.contains("column-1")
            && nestedColumnIds.contains("column-2"));

    layout = LayoutLocalServiceUtil.getFriendlyURLLayout(importedGroup.getGroupId(), false,
            "/layout-prototypes-page-1");

    Assert.assertTrue(layout.isLayoutPrototypeLinkActive());
    Assert.assertEquals("371647ba-3649-4039-bfe6-ae32cf404737", layout.getLayoutPrototypeUuid());

    layout = LayoutLocalServiceUtil.getFriendlyURLLayout(importedGroup.getGroupId(), false,
            "/layout-prototypes-page-2");

    Assert.assertFalse(layout.isLayoutPrototypeLinkActive());
    Assert.assertEquals("c98067d0-fc10-9556-7364-238d39693bc4", layout.getLayoutPrototypeUuid());

    layout = LayoutLocalServiceUtil.getFriendlyURLLayout(importedGroup.getGroupId(), false, "/url-page");

    Assert.assertTrue(layout.isTypeURL());

    layout = LayoutLocalServiceUtil.getFriendlyURLLayout(importedGroup.getGroupId(), false, "/hidden-page");

    Assert.assertTrue(layout.isHidden());
}

From source file:com.liferay.exportimport.staging.StagingImpl.java

License:Open Source License

@Override
public void deleteLastImportSettings(Group liveGroup, boolean privateLayout) throws PortalException {

    List<Layout> layouts = _layoutLocalService.getLayouts(liveGroup.getGroupId(), privateLayout);

    for (Layout layout : layouts) {
        UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties();

        Set<String> keys = new HashSet<>();

        for (String key : typeSettingsProperties.keySet()) {
            if (key.startsWith("last-import-")) {
                keys.add(key);/*from w w  w.  jav  a2s .c  om*/
            }
        }

        if (keys.isEmpty()) {
            continue;
        }

        for (String key : keys) {
            typeSettingsProperties.remove(key);
        }

        _layoutLocalService.updateLayout(layout.getGroupId(), layout.getPrivateLayout(), layout.getLayoutId(),
                typeSettingsProperties.toString());
    }
}

From source file:com.liferay.exportimport.staging.StagingImpl.java

License:Open Source License

@Override
public void updateLastImportSettings(Element layoutElement, Layout layout,
        PortletDataContext portletDataContext) {

    Map<String, String[]> parameterMap = portletDataContext.getParameterMap();

    String cmd = MapUtil.getString(parameterMap, Constants.CMD);

    if (!cmd.equals(Constants.PUBLISH_TO_LIVE) && !cmd.equals("schedule_publish_to_live")) {

        return;// w  w w.  j a v  a  2 s  . co m
    }

    UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties();

    typeSettingsProperties.setProperty("last-import-date", String.valueOf(System.currentTimeMillis()));

    String layoutRevisionId = GetterUtil.getString(layoutElement.attributeValue("layout-revision-id"));

    typeSettingsProperties.setProperty("last-import-layout-revision-id", layoutRevisionId);

    String layoutSetBranchId = MapUtil.getString(parameterMap, "layoutSetBranchId");

    typeSettingsProperties.setProperty("last-import-layout-set-branch-id", layoutSetBranchId);

    String layoutSetBranchName = MapUtil.getString(parameterMap, "layoutSetBranchName");

    typeSettingsProperties.setProperty("last-import-layout-set-branch-name", layoutSetBranchName);

    String lastImportUserName = MapUtil.getString(parameterMap, "lastImportUserName");

    typeSettingsProperties.setProperty("last-import-user-name", lastImportUserName);

    String lastImportUserUuid = MapUtil.getString(parameterMap, "lastImportUserUuid");

    typeSettingsProperties.setProperty("last-import-user-uuid", lastImportUserUuid);

    String layoutBranchId = GetterUtil.getString(layoutElement.attributeValue("layout-branch-id"));

    typeSettingsProperties.setProperty("last-import-layout-branch-id", layoutBranchId);

    String layoutBranchName = GetterUtil.getString(layoutElement.attributeValue("layout-branch-name"));

    typeSettingsProperties.setProperty("last-import-layout-branch-name", layoutBranchName);

    layout.setTypeSettingsProperties(typeSettingsProperties);
}

From source file:com.liferay.exportimport.test.LayoutSetPrototypePropagationTest.java

License:Open Source License

protected Layout setLayoutUpdateable(Layout layout, boolean layoutUpdateable) throws Exception {

    UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties();

    typeSettingsProperties.put(Sites.LAYOUT_UPDATEABLE, String.valueOf(layoutUpdateable));

    layout.setTypeSettingsProperties(typeSettingsProperties);

    return LayoutLocalServiceUtil.updateLayout(layout);
}

From source file:com.liferay.layout.admin.web.internal.exportimport.data.handler.LayoutStagedModelDataHandler.java

License:Open Source License

protected void exportLinkedLayout(PortletDataContext portletDataContext, Layout layout, Element layoutElement)
        throws Exception {

    UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties();

    long linkToLayoutId = GetterUtil
            .getLong(typeSettingsProperties.getProperty("linkToLayoutId", StringPool.BLANK));

    if (linkToLayoutId > 0) {
        try {// ww w .ja  v  a  2  s .  c o  m
            Layout linkedToLayout = _layoutLocalService.getLayout(portletDataContext.getScopeGroupId(),
                    layout.isPrivateLayout(), linkToLayoutId);

            StagedModelDataHandlerUtil.exportReferenceStagedModel(portletDataContext, layout, linkedToLayout,
                    PortletDataContext.REFERENCE_TYPE_STRONG);

            layoutElement.addAttribute("linked-to-layout-uuid", linkedToLayout.getUuid());
        } catch (NoSuchLayoutException nsle) {

            // LPS-52675

            if (_log.isDebugEnabled()) {
                _log.debug(nsle, nsle);
            }
        }
    }
}

From source file:com.liferay.layout.admin.web.internal.exportimport.data.handler.LayoutStagedModelDataHandler.java

License:Open Source License

protected Object[] extractFriendlyURLInfo(Layout layout) {
    if (!Objects.equals(layout.getType(), LayoutConstants.TYPE_URL)) {
        return null;
    }/*from w w  w  . j  a va2 s  .  c  o  m*/

    UnicodeProperties typeSettings = layout.getTypeSettingsProperties();

    String url = GetterUtil.getString(typeSettings.getProperty("url"));

    String friendlyURLPrivateGroupPath = PropsValues.LAYOUT_FRIENDLY_URL_PRIVATE_GROUP_SERVLET_MAPPING;
    String friendlyURLPrivateUserPath = PropsValues.LAYOUT_FRIENDLY_URL_PRIVATE_USER_SERVLET_MAPPING;
    String friendlyURLPublicPath = PropsValues.LAYOUT_FRIENDLY_URL_PUBLIC_SERVLET_MAPPING;

    if (!url.startsWith(friendlyURLPrivateGroupPath) && !url.startsWith(friendlyURLPrivateUserPath)
            && !url.startsWith(friendlyURLPublicPath)) {

        return null;
    }

    int x = url.indexOf(CharPool.SLASH, 1);

    if (x == -1) {
        return null;
    }

    int y = url.indexOf(CharPool.SLASH, x + 1);

    if (y == -1) {
        return null;
    }

    return new Object[] { url.substring(x, y), url, x, y };
}