Example usage for com.liferay.portal.kernel.util WebKeys THEME_DISPLAY

List of usage examples for com.liferay.portal.kernel.util WebKeys THEME_DISPLAY

Introduction

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

Prototype

String THEME_DISPLAY

To view the source code for com.liferay.portal.kernel.util WebKeys THEME_DISPLAY.

Click Source Link

Usage

From source file:com.liferay.content.targeting.rule.visited.PageVisitedRule.java

License:Open Source License

@Override
public String processRule(PortletRequest request, PortletResponse response, String id,
        Map<String, String> values) throws InvalidRuleException {

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

    String friendlyURL = values.get("friendlyURL");

    try {/*from   w w w . j ava  2 s .c  o m*/
        Layout layout = LayoutLocalServiceUtil.fetchLayoutByFriendlyURL(themeDisplay.getScopeGroupId(), false,
                friendlyURL);

        if (layout == null) {
            layout = LayoutLocalServiceUtil.fetchLayoutByFriendlyURL(themeDisplay.getScopeGroupId(), true,
                    friendlyURL);
        }

        if (layout != null) {
            return String.valueOf(layout.getPlid());
        } else {
            throw new InvalidRuleException("a-page-with-this-friendly-url-could-not-be-found");
        }
    } catch (SystemException e) {
    }

    return StringPool.BLANK;
}

From source file:com.liferay.content.targeting.tracking.action.page.PageTrackingAction.java

License:Open Source License

@Override
public String processTrackingAction(PortletRequest request, PortletResponse response, String id,
        Map<String, String> values) throws InvalidTrackingActionException {

    String friendlyURL = values.get("friendlyURL");

    if (Validator.isNotNull(friendlyURL)) {
        ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);

        Layout layout = _getLayout(themeDisplay.getScopeGroupId(), friendlyURL);

        if (layout != null) {
            values.put("referrerClassName", Layout.class.getName());
            values.put("referrerClassPK", String.valueOf(layout.getPlid()));

            JSONObject jsonObj = JSONFactoryUtil.createJSONObject();

            jsonObj.put("friendlyURL", friendlyURL);

            return jsonObj.toString();
        } else {// w  w w .  j a va 2s .  co  m
            throw new InvalidTrackingActionException("a-page-with-this-friendly-url-could-not-be-found");
        }
    }

    return StringPool.BLANK;
}

From source file:com.liferay.contenttargeting.portlet.ContentTargetingPortlet.java

License:Open Source License

public void updateCampaign(ActionRequest request, ActionResponse response) throws Exception {

    long campaignId = ParamUtil.getLong(request, "campaignId");

    Map<Locale, String> nameMap = LocalizationUtil.getLocalizationMap(request, "name");
    Map<Locale, String> descriptionMap = LocalizationUtil.getLocalizationMap(request, "description");

    Date startDate = _getDate(request, "startDate");
    Date endDate = _getDate(request, "endDate");

    int priority = ParamUtil.getInteger(request, "priority");

    boolean active = ParamUtil.getBoolean(request, "active");

    // Initially, only one user segment per campaign is supported

    long[] userSegmentIds = null;

    long userSegmentId = ParamUtil.getLong(request, "userSegmentId");

    if (userSegmentId > 0) {
        userSegmentIds = new long[] { userSegmentId };
    }/*from   ww w  . j a va 2 s.  c o  m*/

    ServiceContext serviceContext = ServiceContextFactory.getInstance(UserSegment.class.getName(), request);

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

    try {
        Campaign campaign = null;

        if (campaignId > 0) {
            campaign = _campaignService.updateCampaign(campaignId, nameMap, descriptionMap, startDate, endDate,
                    priority, active, userSegmentIds, serviceContext);
        } else {
            campaign = _campaignService.addCampaign(themeDisplay.getUserId(), nameMap, descriptionMap,
                    startDate, endDate, priority, active, userSegmentIds, serviceContext);
        }

        updateTrackingActions(campaign.getCampaignId(), request, response);

        sendRedirect(request, response);
    } catch (Exception e) {
        SessionErrors.add(request, e.getClass().getName());

        if (e instanceof PrincipalException) {
            response.setRenderParameter("mvcPath", ContentTargetingPath.EDIT_CAMPAIGN);
        } else {
            response.setRenderParameter("mvcPath", ContentTargetingPath.ERROR);
        }
    }
}

From source file:com.liferay.contenttargeting.portlet.ContentTargetingPortlet.java

License:Open Source License

public void updateUserSegment(ActionRequest request, ActionResponse response) throws Exception {

    long userSegmentId = ParamUtil.getLong(request, "userSegmentId");

    Map<Locale, String> nameMap = LocalizationUtil.getLocalizationMap(request, "name");
    Map<Locale, String> descriptionMap = LocalizationUtil.getLocalizationMap(request, "description");

    ServiceContext serviceContext = ServiceContextFactory.getInstance(UserSegment.class.getName(), request);

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

    UserSegment userSegment = null;/*from w ww.  j a v  a  2  s .  co m*/

    try {
        if (userSegmentId > 0) {
            userSegment = _userSegmentService.updateUserSegment(userSegmentId, nameMap, descriptionMap,
                    serviceContext);
        } else {
            userSegment = _userSegmentService.addUserSegment(themeDisplay.getUserId(), nameMap, descriptionMap,
                    serviceContext);
        }

        updateRules(userSegment.getUserSegmentId(), request, response);

        sendRedirect(request, response);
    } catch (Exception e) {
        SessionErrors.add(request, e.getClass().getName());

        if (e instanceof PrincipalException) {
            response.setRenderParameter("mvcPath", ContentTargetingPath.EDIT_USER_SEGMENT);
        } else {
            response.setRenderParameter("mvcPath", ContentTargetingPath.ERROR);
        }
    }
}

From source file:com.liferay.contenttargeting.portlet.ContentTargetingPortlet.java

License:Open Source License

protected void populateViewContext(String path, PortletRequest portletRequest, PortletResponse portletResponse,
        Template template, TemplateHashModel staticModels) throws Exception {

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

    if (Validator.isNull(path) || path.equals(ContentTargetingPath.VIEW)
            || path.equals(ContentTargetingPath.VIEW_CAMPAIGNS_RESOURCES)
            || path.equals(ContentTargetingPath.VIEW_USER_SEGMENTS_RESOURCES)) {

        template.put("actionKeys", staticModels.get("com.liferay.contenttargeting.util.ActionKeys"));

        template.put("campaignPermission",
                staticModels.get("com.liferay.contenttargeting.service.permission." + "CampaignPermission"));
        template.put("contentTargetingPermission", staticModels
                .get("com.liferay.contenttargeting.service.permission." + "ContentTargetingPermission"));
        template.put("userSegmentPermission",
                staticModels.get("com.liferay.contenttargeting.service.permission." + "UserSegmentPermission"));

        String keywords = ParamUtil.getString(portletRequest, "keywords");

        template.put("campaignSearchContainerIterator",
                new CampaignSearchContainerIterator(themeDisplay.getScopeGroupId(), keywords));
        template.put("userSegmentSearchContainerIterator",
                new UserSegmentSearchContainerIterator(themeDisplay.getScopeGroupId(), keywords));
        template.put("usedUserSegmentExceptionClass", UsedUserSegmentException.class);
    } else if (path.equals(ContentTargetingPath.EDIT_CAMPAIGN)
            || path.equals(ContentTargetingPath.VIEW_CAMPAIGN_REPORTS)) {

        long campaignId = ParamUtil.getLong(portletRequest, "campaignId");

        template.put("campaignId", campaignId);

        int priority = 1;
        long userSegmentId = -1;

        if (campaignId > 0) {
            Campaign campaign = _campaignLocalService.getCampaign(campaignId);

            template.put("campaign", campaign);

            List<UserSegment> campaignUserSegments = _userSegmentLocalService
                    .getCampaignUserSegments(campaignId);

            priority = campaign.getPriority();

            // Initially, only one user segment per campaign is supported

            if ((campaignUserSegments != null) && !campaignUserSegments.isEmpty()) {

                UserSegment campaignUserSegment = campaignUserSegments.get(0);

                userSegmentId = campaignUserSegment.getUserSegmentId();
            }//from www .  ja va 2  s . c  o m
        }

        template.put("priority", priority);
        template.put("userSegmentId", userSegmentId);

        long[] groupIds = ContentTargetingUtil.getAncestorsAndCurrentGroupIds(themeDisplay.getScopeGroupId());

        List<UserSegment> userSegments = _userSegmentService.getUserSegments(groupIds);

        template.put("userSegments", userSegments);

        template.put("trackingActionsRegistry", _trackingActionsRegistry);

        Map<String, TrackingAction> trackingActions = _trackingActionsRegistry.getTrackingActions();

        boolean isolated = themeDisplay.isIsolated();

        try {
            themeDisplay.setIsolated(true);

            template.put("trackingActions", trackingActions.values());

            if (campaignId > 0) {
                List<TrackingActionInstance> instances = _trackingActionInstanceService
                        .getTrackingActionInstances(campaignId);

                template.put("trackingActionInstances", instances);

                List<TrackingActionTemplate> addedTrackingActionTemplates = new ArrayList<TrackingActionTemplate>();

                for (TrackingActionInstance instance : instances) {
                    TrackingAction trackingAction = _trackingActionsRegistry
                            .getTrackingAction(instance.getTrackingActionKey());

                    TrackingActionTemplate trackingActionTemplate = new TrackingActionTemplate();

                    String html = trackingAction.getFormHTML(instance, _cloneTemplateContext(template));

                    trackingActionTemplate.setInstanceId(instance.getTrackingActionInstanceId());
                    trackingActionTemplate.setTrackingAction(trackingAction);
                    trackingActionTemplate.setTemplate(HtmlUtil.escapeAttribute(html));

                    addedTrackingActionTemplates.add(trackingActionTemplate);
                }

                template.put("addedTrackingActionTemplates", addedTrackingActionTemplates);
            }

            List<TrackingActionTemplate> trackingActionTemplates = new ArrayList<TrackingActionTemplate>();

            for (TrackingAction trackingAction : trackingActions.values()) {
                TrackingActionTemplate trackingActionTemplate = new TrackingActionTemplate();

                String html = trackingAction.getFormHTML(null, _cloneTemplateContext(template));

                trackingActionTemplate.setTrackingAction(trackingAction);
                trackingActionTemplate.setTemplate(HtmlUtil.escapeAttribute(html));

                trackingActionTemplates.add(trackingActionTemplate);
            }

            template.put("trackingActionTemplates", trackingActionTemplates);

            if (path.equals(ContentTargetingPath.VIEW_CAMPAIGN_REPORTS)) {
                template.put("tabs2", ParamUtil.getString(portletRequest, "tabs2"));

                Map<String, Report> campaignReports = _reportsRegistry.getReports(Campaign.class.getName());

                List<ReportTemplate> campaignReportsTemplates = new ArrayList<ReportTemplate>();

                for (Report report : campaignReports.values()) {
                    ReportTemplate reportTemplate = new ReportTemplate();

                    String html = report.getHTML(_cloneTemplateContext(template));

                    reportTemplate.setReport(report);
                    reportTemplate.setTemplate(html);

                    campaignReportsTemplates.add(reportTemplate);
                }

                template.put("campaignReportsTabNames", ListUtil.toString(campaignReportsTemplates, "name"));
                template.put("campaignReportsTemplates", campaignReportsTemplates);
            }
        } finally {
            themeDisplay.setIsolated(isolated);
        }
    } else if (path.equals(ContentTargetingPath.EDIT_USER_SEGMENT)
            || path.equals(ContentTargetingPath.VIEW_USER_SEGMENT_REPORTS)) {

        long userSegmentId = ParamUtil.getLong(portletRequest, "userSegmentId");

        template.put("userSegmentId", userSegmentId);

        template.put("rulesRegistry", _rulesRegistry);

        Map<String, Rule> rules = _rulesRegistry.getRules();

        boolean isolated = themeDisplay.isIsolated();

        try {
            themeDisplay.setIsolated(true);

            template.put("rules", rules.values());

            if (userSegmentId > 0) {
                List<RuleInstance> ruleInstances = _ruleInstanceService.getRuleInstances(userSegmentId);

                template.put("ruleInstances", ruleInstances);

                List<RuleTemplate> addedRuleTemplates = new ArrayList<RuleTemplate>();

                for (RuleInstance ruleInstance : ruleInstances) {
                    Rule rule = _rulesRegistry.getRule(ruleInstance.getRuleKey());

                    RuleTemplate ruleTemplate = new RuleTemplate();

                    String html = rule.getFormHTML(ruleInstance, _cloneTemplateContext(template));

                    ruleTemplate.setInstanceId(ruleInstance.getRuleInstanceId());
                    ruleTemplate.setRule(rule);
                    ruleTemplate.setTemplate(HtmlUtil.escapeAttribute(html));

                    addedRuleTemplates.add(ruleTemplate);
                }

                template.put("addedRuleTemplates", addedRuleTemplates);

                UserSegment userSegment = _userSegmentLocalService.getUserSegment(userSegmentId);

                template.put("userSegment", userSegment);
            }

            List<RuleTemplate> ruleTemplates = new ArrayList<RuleTemplate>();

            for (Rule rule : rules.values()) {
                RuleTemplate ruleTemplate = new RuleTemplate();

                String html = rule.getFormHTML(null, _cloneTemplateContext(template));

                ruleTemplate.setRule(rule);
                ruleTemplate.setTemplate(HtmlUtil.escapeAttribute(html));

                ruleTemplates.add(ruleTemplate);
            }

            template.put("ruleTemplates", ruleTemplates);

            if (path.equals(ContentTargetingPath.VIEW_USER_SEGMENT_REPORTS)) {

                template.put("tabs2", ParamUtil.getString(portletRequest, "tabs2"));

                Map<String, Report> userSegmentReports = _reportsRegistry
                        .getReports(UserSegment.class.getName());

                List<ReportTemplate> userSegmentReportsTemplates = new ArrayList<ReportTemplate>();

                for (Report report : userSegmentReports.values()) {
                    ReportTemplate reportTemplate = new ReportTemplate();

                    String html = report.getHTML(_cloneTemplateContext(template));

                    reportTemplate.setReport(report);
                    reportTemplate.setTemplate(html);

                    userSegmentReportsTemplates.add(reportTemplate);
                }

                template.put("userSegmentReportsTabNames",
                        ListUtil.toString(userSegmentReportsTemplates, "name"));
                template.put("userSegmentReportsTemplates", userSegmentReportsTemplates);
            }
        } finally {
            themeDisplay.setIsolated(isolated);
        }
    }
}

From source file:com.liferay.contenttargeting.portlet.ContentTargetingPortlet.java

License:Open Source License

protected void updateRules(long userSegmentId, ActionRequest request, ActionResponse response)
        throws Exception {

    String userSegmentRules = ParamUtil.getString(request, "userSegmentRules");

    if (Validator.isNull(userSegmentRules)) {
        return;//from   w  ww .j av a 2s  .c  om
    }

    ServiceContext serviceContext = ServiceContextFactory.getInstance(RuleInstance.class.getName(), request);

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

    JSONObject jSONObject = JSONFactoryUtil.createJSONObject(userSegmentRules);

    String rules = jSONObject.getString("fields");

    JSONArray jSONArray = JSONFactoryUtil.createJSONArray(rules);

    List<RuleInstance> ruleInstances = ListUtil.copy(_ruleInstanceService.getRuleInstances(userSegmentId));

    for (int i = 0; i < jSONArray.length(); i++) {
        JSONObject jSONObjectRule = jSONArray.getJSONObject(i);

        long ruleInstanceId = 0;
        String type = jSONObjectRule.getString("type");

        if (type.contains(StringPool.UNDERLINE)) {
            String[] ids = type.split(StringPool.UNDERLINE);

            ruleInstanceId = GetterUtil.getLong(ids[1]);
            type = ids[0];
        }

        Rule rule = _rulesRegistry.getRule(type);

        String id = jSONObjectRule.getString("id");

        Map<String, String> ruleValues = getJSONValues(jSONObjectRule.getJSONArray("data"),
                response.getNamespace(), id);

        String typeSettings = rule.processRule(request, response, id, ruleValues);

        try {
            if (ruleInstanceId > 0) {
                RuleInstance ruleInstance = _ruleInstanceService.updateRuleInstance(ruleInstanceId,
                        typeSettings, serviceContext);

                ruleInstances.remove(ruleInstance);
            } else {
                _ruleInstanceService.addRuleInstance(themeDisplay.getUserId(), type, userSegmentId,
                        typeSettings, serviceContext);
            }
        } catch (Exception e) {
            _log.error("Cannot update rule", e);
        }
    }

    // Delete removed rules

    for (RuleInstance ruleInstance : ruleInstances) {
        _ruleInstanceService.deleteRuleInstance(ruleInstance.getRuleInstanceId());
    }
}

From source file:com.liferay.contenttargeting.portlet.ContentTargetingPortlet.java

License:Open Source License

protected void updateTrackingActions(long campaignId, ActionRequest request, ActionResponse response)
        throws Exception {

    String campaignTrackingActions = ParamUtil.getString(request, "campaignTrackingActions");

    if (Validator.isNull(campaignTrackingActions)) {
        return;/*from  w  w  w. j  a  va  2  s.c o m*/
    }

    ServiceContext serviceContext = ServiceContextFactory.getInstance(TrackingActionInstance.class.getName(),
            request);

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

    JSONObject jSONObject = JSONFactoryUtil.createJSONObject(campaignTrackingActions);

    String trackingActions = jSONObject.getString("fields");

    JSONArray jSONArray = JSONFactoryUtil.createJSONArray(trackingActions);

    List<TrackingActionInstance> trackingActionInstances = ListUtil
            .copy(_trackingActionInstanceService.getTrackingActionInstances(campaignId));

    for (int i = 0; i < jSONArray.length(); i++) {
        JSONObject jSONObjectTrackingAction = jSONArray.getJSONObject(i);

        long trackingActionInstanceId = 0;
        String type = jSONObjectTrackingAction.getString("type");

        if (type.contains(StringPool.UNDERLINE)) {
            String[] ids = type.split(StringPool.UNDERLINE);

            trackingActionInstanceId = GetterUtil.getLong(ids[1]);
            type = ids[0];
        }

        TrackingAction trackingAction = _trackingActionsRegistry.getTrackingAction(type);

        String id = jSONObjectTrackingAction.getString("id");

        Map<String, String> trackingActionValues = getJSONValues(jSONObjectTrackingAction.getJSONArray("data"),
                response.getNamespace(), id);

        String typeSettings = trackingAction.processTrackingAction(request, response, id, trackingActionValues);

        String alias = trackingActionValues.get("alias");
        String referrerClassName = trackingActionValues.get("referrerClassName");
        long referrerClassPK = GetterUtil.getLong(trackingActionValues.get("referrerClassPK"));
        String elementId = trackingActionValues.get("elementId");
        String eventType = trackingActionValues.get("eventType");

        try {
            if (trackingActionInstanceId > 0) {
                TrackingActionInstance trackingActionInstance = _trackingActionInstanceService
                        .updateTrackingActionInstance(trackingActionInstanceId, alias, referrerClassName,
                                referrerClassPK, elementId, eventType, typeSettings, serviceContext);

                trackingActionInstances.remove(trackingActionInstance);
            } else {
                _trackingActionInstanceService.addTrackingActionInstance(themeDisplay.getUserId(), type,
                        campaignId, alias, referrerClassName, referrerClassPK, elementId, eventType,
                        typeSettings, serviceContext);
            }
        } catch (Exception e) {
            _log.error("Cannot update tracking action", e);
        }
    }

    // Delete removed Tracking Actions

    for (TrackingActionInstance trackingActionInstance : trackingActionInstances) {

        _trackingActionInstanceService
                .deleteTrackingActionInstance(trackingActionInstance.getTrackingActionInstanceId());
    }
}

From source file:com.liferay.contenttargeting.portlet.util.UserSegmentContentDisplayUtil.java

License:Open Source License

public static PortletURL getAssetBrowserURL(HttpServletRequest request, String className) throws Exception {

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

    PortletURL assetBrowserURL = PortletURLFactoryUtil.create(request, PortletKeys.ASSET_BROWSER,
            PortalUtil.getControlPanelPlid(themeDisplay.getCompanyId()), PortletRequest.RENDER_PHASE);

    assetBrowserURL.setParameter("struts_action", "/asset_browser/view");
    assetBrowserURL.setParameter("groupId", String.valueOf(themeDisplay.getScopeGroupId()));
    assetBrowserURL.setParameter("selectedGroupIds", String.valueOf(themeDisplay.getScopeGroupId()));
    assetBrowserURL.setParameter("eventName", "selectContent");
    assetBrowserURL.setParameter("typeSelection", className);
    assetBrowserURL.setPortletMode(PortletMode.VIEW);
    assetBrowserURL.setWindowState(LiferayWindowState.POP_UP);

    return assetBrowserURL;
}

From source file:com.liferay.contenttargeting.portlet.util.UserSegmentContentDisplayUtil.java

License:Open Source License

public static Map<String, Object> getAssetSelectorIconData(HttpServletRequest request,
        AssetRendererFactory assetRendererFactory, String index) throws Exception {

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

    PortletURL assetBrowserURL = getAssetBrowserURL(request, assetRendererFactory.getClassName());

    String typeName = assetRendererFactory.getTypeName(themeDisplay.getLocale(), false);

    Map<String, Object> data = new HashMap<String, Object>();

    data.put("groupid", String.valueOf(themeDisplay.getScopeGroupId()));
    data.put("href", assetBrowserURL.toString());
    data.put("index", index);
    data.put("title", LanguageUtil.format(themeDisplay.getLocale(), "select-x", typeName, false));
    data.put("type", typeName);

    return data;/*from  ww  w .  j  a v  a 2s .co m*/
}

From source file:com.liferay.ddlform.util.DDLFormUtil.java

License:Open Source License

public static boolean hasSubmitted(HttpServletRequest request, long recordSetId) {

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

    List<DDLRecord> records = DDLRecordLocalServiceUtil.getRecords(recordSetId, themeDisplay.getUserId());

    if (records.isEmpty()) {
        return false;
    }//from  w ww.  ja va 2s. c  o m

    return true;
}