protected static Sort[] getSorts(AssetEntryQuery assetEntryQuery, Locale locale) throws Exception { Sort sort1 = getSort(assetEntryQuery.getOrderByType1(), assetEntryQuery.getOrderByCol1(), locale); Sort sort2 = getSort(assetEntryQuery.getOrderByType2(), assetEntryQuery.getOrderByCol2(), locale); return new Sort[] {sort1, sort2}; }
public static List<AssetEntry> getAssetEntries( long[] groupIds, long[] classNameIds, long[] assetTagIds, long resourcePrimKey, int start, int end, String orderByColumn) throws PortalException { AssetEntryQuery assetEntryQuery = new AssetEntryQuery(); assetEntryQuery.setAnyTagIds(assetTagIds); assetEntryQuery.setClassNameIds(classNameIds); assetEntryQuery.setEnd(end + 1); assetEntryQuery.setGroupIds(groupIds); assetEntryQuery.setOrderByCol1(orderByColumn); assetEntryQuery.setStart(start); List<AssetEntry> assetEntries = ListUtil.copy(AssetEntryServiceUtil.getEntries(assetEntryQuery)); AssetEntry assetEntry = null; for (AssetEntry curAssetEntry : assetEntries) { if (curAssetEntry.getClassPK() == resourcePrimKey) { assetEntry = curAssetEntry; } } assetEntries.remove(assetEntry); return ListUtil.subList(assetEntries, 0, 10); }
@Override public void addUserAttributes( User user, String[] customUserAttributeNames, AssetEntryQuery assetEntryQuery) throws Exception { if ((user == null) || (customUserAttributeNames.length == 0)) { return; } Group companyGroup = GroupLocalServiceUtil.getCompanyGroup(user.getCompanyId()); long[] allCategoryIds = assetEntryQuery.getAllCategoryIds(); PrimitiveLongList allCategoryIdsList = new PrimitiveLongList(allCategoryIds.length + customUserAttributeNames.length); allCategoryIdsList.addAll(allCategoryIds); for (String customUserAttributeName : customUserAttributeNames) { ExpandoBridge userCustomAttributes = user.getExpandoBridge(); Serializable userCustomFieldValue = userCustomAttributes.getAttribute(customUserAttributeName); if (userCustomFieldValue == null) { continue; } String userCustomFieldValueString = userCustomFieldValue.toString(); List<AssetCategory> assetCategories = AssetCategoryLocalServiceUtil.search( companyGroup.getGroupId(), userCustomFieldValueString, new String[0], QueryUtil.ALL_POS, QueryUtil.ALL_POS); for (AssetCategory assetCategory : assetCategories) { allCategoryIdsList.add(assetCategory.getCategoryId()); } } assetEntryQuery.setAllCategoryIds(allCategoryIdsList.getArray()); }
protected static AssetSearcher getAssetSearcher( SearchContext searchContext, AssetEntryQuery assetEntryQuery, int start, int end) throws Exception { Indexer<?> searcher = AssetSearcher.getInstance(); AssetSearcher assetSearcher = (AssetSearcher) searcher; assetSearcher.setAssetEntryQuery(assetEntryQuery); Layout layout = assetEntryQuery.getLayout(); if (layout != null) { searchContext.setAttribute(Field.LAYOUT_UUID, layout.getUuid()); } String ddmStructureFieldName = (String) assetEntryQuery.getAttribute("ddmStructureFieldName"); Serializable ddmStructureFieldValue = assetEntryQuery.getAttribute("ddmStructureFieldValue"); if (Validator.isNotNull(ddmStructureFieldName) && Validator.isNotNull(ddmStructureFieldValue)) { searchContext.setAttribute("ddmStructureFieldName", ddmStructureFieldName); searchContext.setAttribute("ddmStructureFieldValue", ddmStructureFieldValue); } String paginationType = GetterUtil.getString(assetEntryQuery.getPaginationType(), "more"); if (!paginationType.equals("none") && !paginationType.equals("simple")) { searchContext.setAttribute("paginationType", paginationType); } searchContext.setClassTypeIds(assetEntryQuery.getClassTypeIds()); searchContext.setEnd(end); searchContext.setGroupIds(assetEntryQuery.getGroupIds()); if (Validator.isNotNull(assetEntryQuery.getKeywords())) { searchContext.setLike(true); } searchContext.setSorts(getSorts(assetEntryQuery, searchContext.getLocale())); searchContext.setStart(start); return assetSearcher; }
public List<AssetEntry> getTopViewedEntries(String[] className, boolean asc, int start, int end) throws SystemException { long[] classNameIds = new long[className.length]; for (int i = 0; i < className.length; i++) { classNameIds[i] = PortalUtil.getClassNameId(className[i]); } AssetEntryQuery entryQuery = new AssetEntryQuery(); entryQuery.setClassNameIds(classNameIds); entryQuery.setEnd(end); entryQuery.setExcludeZeroViewCount(true); entryQuery.setOrderByCol1("viewCount"); entryQuery.setOrderByType1(asc ? "ASC" : "DESC"); entryQuery.setStart(start); return assetEntryFinder.findEntries(entryQuery); }
protected List<AssetEntry> getAssetEntries( PortletRequest portletRequest, PortletPreferences preferences) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY); AssetEntryQuery assetEntryQuery = AssetPublisherUtil.getAssetEntryQuery( preferences, new long[] {themeDisplay.getScopeGroupId()}); boolean anyAssetType = GetterUtil.getBoolean(preferences.getValue("anyAssetType", null), true); if (!anyAssetType) { long[] availableClassNameIds = AssetRendererFactoryRegistryUtil.getClassNameIds(); long[] classNameIds = AssetPublisherUtil.getClassNameIds(preferences, availableClassNameIds); assetEntryQuery.setClassNameIds(classNameIds); } long[] classTypeIds = GetterUtil.getLongValues(preferences.getValues("classTypeIds", null)); assetEntryQuery.setClassTypeIds(classTypeIds); boolean enablePermissions = GetterUtil.getBoolean(preferences.getValue("enablePermissions", null)); assetEntryQuery.setEnablePermissions(enablePermissions); int rssDelta = GetterUtil.getInteger(preferences.getValue("rssDelta", "20")); assetEntryQuery.setEnd(rssDelta); boolean excludeZeroViewCount = GetterUtil.getBoolean(preferences.getValue("excludeZeroViewCount", null)); assetEntryQuery.setExcludeZeroViewCount(excludeZeroViewCount); long[] groupIds = AssetPublisherUtil.getGroupIds( preferences, themeDisplay.getScopeGroupId(), themeDisplay.getLayout()); assetEntryQuery.setGroupIds(groupIds); boolean showOnlyLayoutAssets = GetterUtil.getBoolean(preferences.getValue("showOnlyLayoutAssets", null)); if (showOnlyLayoutAssets) { assetEntryQuery.setLayout(themeDisplay.getLayout()); } String orderByColumn1 = GetterUtil.getString(preferences.getValue("orderByColumn1", "modifiedDate")); assetEntryQuery.setOrderByCol1(orderByColumn1); String orderByColumn2 = GetterUtil.getString(preferences.getValue("orderByColumn2", "title")); assetEntryQuery.setOrderByCol2(orderByColumn2); String orderByType1 = GetterUtil.getString(preferences.getValue("orderByType1", "DESC")); assetEntryQuery.setOrderByType1(orderByType1); String orderByType2 = GetterUtil.getString(preferences.getValue("orderByType2", "ASC")); assetEntryQuery.setOrderByType2(orderByType2); assetEntryQuery.setStart(0); return AssetEntryServiceUtil.getEntries(assetEntryQuery); }
public AssetEntryQuery getAssetEntryQuery() throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) _request.getAttribute(WebKeys.THEME_DISPLAY); long[] groupIds = getGroupIds(); if (!ArrayUtil.contains(groupIds, themeDisplay.getScopeGroupId())) { groupIds = ArrayUtil.append(groupIds, themeDisplay.getScopeGroupId()); } AssetEntryQuery assetEntryQuery = AssetPublisherUtil.getAssetEntryQuery(_portletPreferences, groupIds); long[] classNameIds = getClassNameIds(); long[] classTypeIds = getClassTypeIds(); if (isSubtypeFieldsFilterEnabled() && (classNameIds.length == 1) && (classTypeIds.length == 1) && Validator.isNotNull(getDDMStructureFieldName()) && Validator.isNotNull(getDDMStructureFieldValue())) { AssetRendererFactory assetRendererFactory = AssetRendererFactoryRegistryUtil.getAssetRendererFactoryByClassName( PortalUtil.getClassName(classNameIds[0])); Tuple classTypeFieldName = assetRendererFactory.getClassTypeFieldName( classTypeIds[0], getDDMStructureFieldName(), themeDisplay.getLocale()); long ddmStructureId = GetterUtil.getLong(classTypeFieldName.getObject(3)); assetEntryQuery.setAttribute( "ddmStructureFieldName", DDMIndexerUtil.encodeName( ddmStructureId, getDDMStructureFieldName(), themeDisplay.getLocale())); assetEntryQuery.setAttribute("ddmStructureFieldValue", getDDMStructureFieldValue()); } AssetPublisherUtil.processAssetEntryQuery( themeDisplay.getUser(), _portletPreferences, assetEntryQuery); assetEntryQuery.setAllCategoryIds(getAllAssetCategoryIds()); if (hasLayoutGroup(groupIds)) { assetEntryQuery.setAllTagIds( AssetTagLocalServiceUtil.getTagIds(groupIds, getAllAssetTagNames())); } else { assetEntryQuery.setAllTagIds( AssetTagLocalServiceUtil.getTagIds(getGroupIds(), getAllAssetTagNames())); } assetEntryQuery.setClassTypeIds(classTypeIds); assetEntryQuery.setEnablePermissions(isEnablePermissions()); assetEntryQuery.setExcludeZeroViewCount(isExcludeZeroViewCount()); String portletName = getPortletName(); if (!portletName.equals(PortletKeys.RELATED_ASSETS)) { assetEntryQuery.setGroupIds(getGroupIds()); } if (isShowOnlyLayoutAssets()) { assetEntryQuery.setLayout(themeDisplay.getLayout()); } if (portletName.equals(PortletKeys.RELATED_ASSETS)) { AssetEntry layoutAssetEntry = (AssetEntry) _request.getAttribute(WebKeys.LAYOUT_ASSET_ENTRY); if (layoutAssetEntry != null) { assetEntryQuery.setLinkedAssetEntryId(layoutAssetEntry.getEntryId()); } } assetEntryQuery.setPaginationType(getPaginationType()); assetEntryQuery.setOrderByCol1(getOrderByColumn1()); assetEntryQuery.setOrderByCol2(getOrderByColumn2()); assetEntryQuery.setOrderByType1(getOrderByType1()); assetEntryQuery.setOrderByType2(getOrderByType2()); return assetEntryQuery; }
@RequestMapping public String ver( RenderRequest request, RenderResponse response, @RequestParam(required = false) Integer dias, Model model) { log.debug("Viendo el versiculo"); TimeZone tz = null; DateTimeZone zone = null; ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); try { tz = themeDisplay.getTimeZone(); zone = DateTimeZone.forID(tz.getID()); } catch (IllegalArgumentException e) { zone = DateTimeZone.forID(ZonaHorariaUtil.getConvertedId(tz.getID())); } try { long scopeGroupId = themeDisplay.getScopeGroupId(); AssetEntryQuery assetEntryQuery = new AssetEntryQuery(); DateTime hoy = (DateTime) request.getPortletSession().getAttribute("hoy", PortletSession.APPLICATION_SCOPE); if (hoy == null) { hoy = new DateTime(zone); log.debug("Subiendo atributo hoy({}) a la sesion", hoy); request.getPortletSession().setAttribute("hoy", hoy, PortletSession.APPLICATION_SCOPE); } // Busca el contenido del dia String[] tags = TagsUtil.getTags(new String[4], hoy); tags[3] = "versiculo"; long[] assetTagIds = AssetTagLocalServiceUtil.getTagIds(scopeGroupId, tags); assetEntryQuery.setAllTagIds(assetTagIds); List<AssetEntry> results = AssetEntryServiceUtil.getEntries(assetEntryQuery); log.debug("Buscando el versiculo de la semana {}", hoy); for (AssetEntry asset : results) { if (asset.getClassName().equals(JournalArticle.class.getName())) { JournalArticle ja = JournalArticleLocalServiceUtil.getLatestArticle(asset.getClassPK()); String contenido = JournalArticleLocalServiceUtil.getArticleContent( ja.getGroupId(), ja.getArticleId(), "view", "" + themeDisplay.getLocale(), themeDisplay); model.addAttribute("contenido", contenido); } } } catch (Exception e) { log.error("No se pudo cargar el contenido", e); throw new RuntimeException("No se pudo cargar el contenido", e); } return "versiculo/ver"; }
@Override public AssetEntryQuery getAssetEntryQuery( PortletPreferences portletPreferences, long[] scopeGroupIds) throws PortalException, SystemException { AssetEntryQuery assetEntryQuery = new AssetEntryQuery(); long[] allAssetCategoryIds = new long[0]; long[] anyAssetCategoryIds = new long[0]; long[] notAllAssetCategoryIds = new long[0]; long[] notAnyAssetCategoryIds = new long[0]; String[] allAssetTagNames = new String[0]; String[] anyAssetTagNames = new String[0]; String[] notAllAssetTagNames = new String[0]; String[] notAnyAssetTagNames = new String[0]; for (int i = 0; true; i++) { String[] queryValues = portletPreferences.getValues("queryValues" + i, null); if ((queryValues == null) || (queryValues.length == 0)) { break; } boolean queryContains = GetterUtil.getBoolean(portletPreferences.getValue("queryContains" + i, StringPool.BLANK)); boolean queryAndOperator = GetterUtil.getBoolean( portletPreferences.getValue("queryAndOperator" + i, StringPool.BLANK)); String queryName = portletPreferences.getValue("queryName" + i, StringPool.BLANK); if (Validator.equals(queryName, "assetCategories")) { long[] assetCategoryIds = GetterUtil.getLongValues(queryValues); if (queryContains && queryAndOperator) { allAssetCategoryIds = assetCategoryIds; } else if (queryContains && !queryAndOperator) { anyAssetCategoryIds = assetCategoryIds; } else if (!queryContains && queryAndOperator) { notAllAssetCategoryIds = assetCategoryIds; } else { notAnyAssetCategoryIds = assetCategoryIds; } } else { if (queryContains && queryAndOperator) { allAssetTagNames = queryValues; } else if (queryContains && !queryAndOperator) { anyAssetTagNames = queryValues; } else if (!queryContains && queryAndOperator) { notAllAssetTagNames = queryValues; } else { notAnyAssetTagNames = queryValues; } } } assetEntryQuery.setAllCategoryIds(allAssetCategoryIds); for (String assetTagName : allAssetTagNames) { long[] allAssetTagIds = AssetTagLocalServiceUtil.getTagIds(scopeGroupIds, assetTagName); assetEntryQuery.addAllTagIdsArray(allAssetTagIds); } assetEntryQuery.setAnyCategoryIds(anyAssetCategoryIds); long[] anyAssetTagIds = AssetTagLocalServiceUtil.getTagIds(scopeGroupIds, anyAssetTagNames); assetEntryQuery.setAnyTagIds(anyAssetTagIds); assetEntryQuery.setNotAllCategoryIds(notAllAssetCategoryIds); for (String assetTagName : notAllAssetTagNames) { long[] notAllAssetTagIds = AssetTagLocalServiceUtil.getTagIds(scopeGroupIds, assetTagName); assetEntryQuery.addNotAllTagIdsArray(notAllAssetTagIds); } assetEntryQuery.setNotAnyCategoryIds(notAnyAssetCategoryIds); long[] notAnyAssetTagIds = AssetTagLocalServiceUtil.getTagIds(scopeGroupIds, notAnyAssetTagNames); assetEntryQuery.setNotAnyTagIds(notAnyAssetTagIds); return assetEntryQuery; }
@Override public List<AssetEntry> getAssetEntries( PortletPreferences preferences, Layout layout, long scopeGroupId, int max, boolean checkPermission) throws PortalException, SystemException { AssetEntryQuery assetEntryQuery = getAssetEntryQuery(preferences, new long[] {scopeGroupId}); boolean anyAssetType = GetterUtil.getBoolean(preferences.getValue("anyAssetType", null), true); if (!anyAssetType) { long[] availableClassNameIds = AssetRendererFactoryRegistryUtil.getClassNameIds(layout.getCompanyId()); long[] classNameIds = getClassNameIds(preferences, availableClassNameIds); assetEntryQuery.setClassNameIds(classNameIds); } long[] classTypeIds = GetterUtil.getLongValues(preferences.getValues("classTypeIds", null)); assetEntryQuery.setClassTypeIds(classTypeIds); boolean enablePermissions = GetterUtil.getBoolean(preferences.getValue("enablePermissions", null)); assetEntryQuery.setEnablePermissions(enablePermissions); assetEntryQuery.setEnd(max); boolean excludeZeroViewCount = GetterUtil.getBoolean(preferences.getValue("excludeZeroViewCount", null)); assetEntryQuery.setExcludeZeroViewCount(excludeZeroViewCount); long[] groupIds = getGroupIds(preferences, scopeGroupId, layout); assetEntryQuery.setGroupIds(groupIds); boolean showOnlyLayoutAssets = GetterUtil.getBoolean(preferences.getValue("showOnlyLayoutAssets", null)); if (showOnlyLayoutAssets) { assetEntryQuery.setLayout(layout); } String orderByColumn1 = GetterUtil.getString(preferences.getValue("orderByColumn1", "modifiedDate")); assetEntryQuery.setOrderByCol1(orderByColumn1); String orderByColumn2 = GetterUtil.getString(preferences.getValue("orderByColumn2", "title")); assetEntryQuery.setOrderByCol2(orderByColumn2); String orderByType1 = GetterUtil.getString(preferences.getValue("orderByType1", "DESC")); assetEntryQuery.setOrderByType1(orderByType1); String orderByType2 = GetterUtil.getString(preferences.getValue("orderByType2", "ASC")); assetEntryQuery.setOrderByType2(orderByType2); assetEntryQuery.setStart(0); if (checkPermission) { return AssetEntryServiceUtil.getEntries(assetEntryQuery); } else { return AssetEntryLocalServiceUtil.getEntries(assetEntryQuery); } }