List of usage examples for com.liferay.portal.kernel.util StringUtil shorten
public static String shorten(String s, int length, String suffix)
From source file:com.liferay.blogs.service.impl.BlogsEntryServiceImpl.java
License:Open Source License
protected String exportToRSS(String name, String description, String type, double version, String displayStyle, String feedURL, String entryURL, List<BlogsEntry> blogsEntries, ThemeDisplay themeDisplay) { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setDescription(description); List<SyndEntry> syndEntries = new ArrayList<>(); syndFeed.setEntries(syndEntries);/* w w w.j a v a 2 s.co m*/ for (BlogsEntry entry : blogsEntries) { SyndEntry syndEntry = new SyndEntryImpl(); String author = PortalUtil.getUserName(entry); syndEntry.setAuthor(author); SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); String value = null; if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) { String summary = entry.getDescription(); if (Validator.isNull(summary)) { summary = entry.getContent(); } value = StringUtil.shorten(HtmlUtil.extractText(summary), PropsValues.BLOGS_RSS_ABSTRACT_LENGTH, StringPool.BLANK); } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else { value = StringUtil.replace(entry.getContent(), new String[] { "href=\"/", "src=\"/" }, new String[] { "href=\"" + themeDisplay.getURLPortal() + "/", "src=\"" + themeDisplay.getURLPortal() + "/" }); } syndContent.setValue(value); syndEntry.setDescription(syndContent); StringBundler sb = new StringBundler(4); sb.append(entryURL); if (!entryURL.endsWith(StringPool.QUESTION)) { sb.append(StringPool.AMPERSAND); } sb.append("entryId="); sb.append(entry.getEntryId()); String link = sb.toString(); syndEntry.setLink(link); syndEntry.setPublishedDate(entry.getDisplayDate()); syndEntry.setTitle(entry.getTitle()); syndEntry.setUpdatedDate(entry.getModifiedDate()); syndEntry.setUri(link); syndEntries.add(syndEntry); } syndFeed.setFeedType(RSSUtil.getFeedType(type, version)); List<SyndLink> syndLinks = new ArrayList<>(); syndFeed.setLinks(syndLinks); SyndLink selfSyndLink = new SyndLinkImpl(); syndLinks.add(selfSyndLink); selfSyndLink.setHref(feedURL); selfSyndLink.setRel("self"); syndFeed.setPublishedDate(new Date()); syndFeed.setTitle(name); syndFeed.setUri(feedURL); try { return RSSUtil.export(syndFeed); } catch (FeedException fe) { throw new SystemException(fe); } }
From source file:com.liferay.portlet.blogs.service.impl.BlogsEntryServiceImpl.java
License:Open Source License
protected String exportToRSS(String name, String description, String type, double version, String displayStyle, String feedURL, String entryURL, List<BlogsEntry> blogsEntries, ThemeDisplay themeDisplay) throws SystemException { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setFeedType(RSSUtil.getFeedType(type, version)); syndFeed.setTitle(name);/*from w w w . j a v a 2 s .c o m*/ syndFeed.setLink(feedURL); syndFeed.setDescription(description); List<SyndEntry> syndEntries = new ArrayList<SyndEntry>(); syndFeed.setEntries(syndEntries); for (BlogsEntry entry : blogsEntries) { String author = HtmlUtil.escape(PortalUtil.getUserName(entry.getUserId(), entry.getUserName())); StringBundler link = new StringBundler(4); if (entryURL.endsWith("/blogs/rss")) { link.append(entryURL.substring(0, entryURL.length() - 3)); link.append(entry.getUrlTitle()); } else { link.append(entryURL); if (!entryURL.endsWith(StringPool.QUESTION)) { link.append(StringPool.AMPERSAND); } link.append("entryId="); link.append(entry.getEntryId()); } String value = null; if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) { value = StringUtil.shorten(HtmlUtil.extractText(entry.getDescription()), PropsValues.BLOGS_RSS_ABSTRACT_LENGTH, StringPool.BLANK); } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else { value = StringUtil.replace(entry.getContent(), new String[] { "href=\"/", "src=\"/" }, new String[] { "href=\"" + themeDisplay.getURLPortal() + "/", "src=\"" + themeDisplay.getURLPortal() + "/" }); } SyndEntry syndEntry = new SyndEntryImpl(); syndEntry.setAuthor(author); syndEntry.setTitle(entry.getTitle()); syndEntry.setLink(link.toString()); syndEntry.setUri(syndEntry.getLink()); syndEntry.setPublishedDate(entry.getCreateDate()); syndEntry.setUpdatedDate(entry.getModifiedDate()); SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); syndContent.setValue(value); syndEntry.setDescription(syndContent); syndEntries.add(syndEntry); } try { return RSSUtil.export(syndFeed); } catch (FeedException fe) { throw new SystemException(fe); } }
From source file:com.liferay.portlet.messageboards.service.impl.MBMessageServiceImpl.java
License:Open Source License
protected String exportToRSS(String name, String description, String type, double version, String displayStyle, String feedURL, String entryURL, List<MBMessage> messages, ThemeDisplay themeDisplay) throws SystemException { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setFeedType(RSSUtil.getFeedType(type, version)); syndFeed.setTitle(name);//from w w w .j a v a 2s . com syndFeed.setLink(feedURL); syndFeed.setDescription(description); List<SyndEntry> syndEntries = new ArrayList<SyndEntry>(); syndFeed.setEntries(syndEntries); Iterator<MBMessage> itr = messages.iterator(); while (itr.hasNext()) { MBMessage message = itr.next(); String author = HtmlUtil.escape(PortalUtil.getUserName(message.getUserId(), message.getUserName())); String value = null; if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) { value = StringUtil.shorten(HtmlUtil.extractText(message.getBody()), PropsValues.MESSAGE_BOARDS_RSS_ABSTRACT_LENGTH, StringPool.BLANK); } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else { value = BBCodeTranslatorUtil.getHTML(message.getBody()); value = StringUtil.replace(value, new String[] { "@theme_images_path@", "href=\"/", "src=\"/" }, new String[] { themeDisplay.getURLPortal() + themeDisplay.getPathThemeImages(), "href=\"" + themeDisplay.getURLPortal() + "/", "src=\"" + themeDisplay.getURLPortal() + "/" }); } SyndEntry syndEntry = new SyndEntryImpl(); if (!message.isAnonymous()) { syndEntry.setAuthor(author); } syndEntry.setTitle(message.getSubject()); syndEntry.setLink(entryURL + "&messageId=" + message.getMessageId()); syndEntry.setUri(syndEntry.getLink()); syndEntry.setPublishedDate(message.getCreateDate()); syndEntry.setUpdatedDate(message.getModifiedDate()); SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); syndContent.setValue(value); syndEntry.setDescription(syndContent); syndEntries.add(syndEntry); } try { return RSSUtil.export(syndFeed); } catch (FeedException fe) { throw new SystemException(fe); } }
From source file:com.liferay.portlet.tags.service.impl.TagsAssetLocalServiceImpl.java
License:Open Source License
public TagsAsset updateAsset(long userId, long groupId, String className, long classPK, String[] categoryNames, String[] entryNames, boolean visible, Date startDate, Date endDate, Date publishDate, Date expirationDate, String mimeType, String title, String description, String summary, String url, int height, int width, Integer priority, boolean sync) throws PortalException, SystemException { // Asset/*from www . ja v a2 s . c o m*/ User user = userPersistence.findByPrimaryKey(userId); long classNameId = PortalUtil.getClassNameId(className); if (entryNames == null) { entryNames = new String[0]; } if (categoryNames == null) { categoryNames = new String[0]; } title = StringUtil.shorten(title, 300, StringPool.BLANK); Date now = new Date(); validate(className, entryNames); TagsAsset asset = tagsAssetPersistence.fetchByC_C(classNameId, classPK); boolean isNewAssetEntry = false; if (asset == null) { isNewAssetEntry = true; long assetId = counterLocalService.increment(); asset = tagsAssetPersistence.create(assetId); asset.setCompanyId(user.getCompanyId()); asset.setUserId(user.getUserId()); asset.setUserName(user.getFullName()); asset.setCreateDate(now); asset.setClassNameId(classNameId); asset.setClassPK(classPK); asset.setVisible(visible); asset.setPublishDate(publishDate); asset.setExpirationDate(expirationDate); if (priority == null) { asset.setPriority(0); } asset.setViewCount(0); } asset.setGroupId(groupId); asset.setModifiedDate(now); asset.setVisible(visible); asset.setStartDate(startDate); asset.setEndDate(endDate); asset.setPublishDate(publishDate); asset.setExpirationDate(expirationDate); asset.setMimeType(mimeType); asset.setTitle(title); asset.setDescription(description); asset.setSummary(summary); asset.setUrl(url); asset.setHeight(height); asset.setWidth(width); if (priority != null) { asset.setPriority(priority.intValue()); } // Entries List<TagsEntry> tagsEntriesList = TagsEntryLocalServiceUtil.getEntries(asset.getClassNameId(), asset.getClassPK()); List<TagsEntry> entries = new ArrayList<TagsEntry>(entryNames.length); /** start extend code */ // check if user has moderator or admin role boolean isModerator = false; List<Role> roleList = RoleLocalServiceUtil.getUserRoles(userId); for (Role role : roleList) { if (role.getName().equals(SCYCOM_MODERATOR)) { isModerator = true; } else if (role.getName().equals(RoleConstants.ADMINISTRATOR)) { isModerator = true; } } // check if user want to add or delete moderator tags and has not the rights if (!isModerator) { boolean isApprovedBefore = false; boolean isUnderConBefore = false; boolean isApprovedAfter = false; boolean isUnderConAfter = false; for (TagsEntry tagsEntry : tagsEntriesList) { if (tagsEntry.getName().equals(APPROVED)) { isApprovedBefore = true; } else if (tagsEntry.getName().equals(UNDER_CONSTRUCTION)) { isUnderConBefore = true; } } for (String entryName : entryNames) { if (entryName.equals(APPROVED)) { isApprovedAfter = true; } else if (entryName.equals(UNDER_CONSTRUCTION)) { isUnderConAfter = true; } } List<String> bewareOldEntriesList = new ArrayList<String>(); for (String oldNames : entryNames) { boolean addName = true; if (oldNames.equals(APPROVED) && !isApprovedBefore && isApprovedAfter) { addName = false; } else if (oldNames.equals(UNDER_CONSTRUCTION) && !isUnderConBefore && isUnderConAfter) { addName = false; } if (addName) { bewareOldEntriesList.add(oldNames); } } if (isApprovedBefore && !isApprovedAfter) { bewareOldEntriesList.add(APPROVED); } if (isUnderConBefore && !isUnderConAfter) { bewareOldEntriesList.add(UNDER_CONSTRUCTION); } for (String entryName : bewareOldEntriesList) { TagsEntry entry = null; try { entry = tagsEntryLocalService.getEntry(groupId, entryName, TagsEntryConstants.FOLKSONOMY_TAG); } catch (NoSuchEntryException nsee) { ServiceContext serviceContext = new ServiceContext(); serviceContext.setAddCommunityPermissions(true); serviceContext.setAddGuestPermissions(true); serviceContext.setScopeGroupId(groupId); entry = tagsEntryLocalService.addEntry(user.getUserId(), null, entryName, null, PropsValues.TAGS_PROPERTIES_DEFAULT, serviceContext); tagsPropertyLocalService.addProperty( userId, entry.getEntryId(), String.valueOf(user.getUserId()) + String.valueOf(asset.getAssetId()) + String.valueOf(entry.getEntryId()), String.valueOf(asset.getAssetId())); } if (entry != null) { entries.add(entry); } } /** end extend code */ } else { for (int i = 0; i < entryNames.length; i++) { TagsEntry entry = null; try { entry = tagsEntryLocalService.getEntry(groupId, entryNames[i], TagsEntryConstants.FOLKSONOMY_TAG); } catch (NoSuchEntryException nsee) { ServiceContext serviceContext = new ServiceContext(); serviceContext.setAddCommunityPermissions(true); serviceContext.setAddGuestPermissions(true); serviceContext.setScopeGroupId(groupId); entry = tagsEntryLocalService.addEntry(user.getUserId(), null, entryNames[i], null, PropsValues.TAGS_PROPERTIES_DEFAULT, serviceContext); tagsPropertyLocalService.addProperty( userId, entry.getEntryId(), String.valueOf(user.getUserId()) + String.valueOf(asset.getAssetId()) + String.valueOf(entry.getEntryId()), String.valueOf(asset.getAssetId())); } if (entry != null) { entries.add(entry); } } } /** start extend code */ // add UNDER_CONSTRUCTION tag to new files if (isNewAssetEntry) { TagsEntry entry = null; try { entry = tagsEntryLocalService.getEntry(groupId, UNDER_CONSTRUCTION, TagsEntryConstants.FOLKSONOMY_TAG); } catch (NoSuchEntryException nsee) { long defaultUserId = UserLocalServiceUtil.getDefaultUser(user.getCompanyId()).getUserId(); ServiceContext serviceContext = new ServiceContext(); serviceContext.setAddCommunityPermissions(true); serviceContext.setAddGuestPermissions(true); serviceContext.setScopeGroupId(groupId); entry = tagsEntryLocalService.addEntry(defaultUserId, null, UNDER_CONSTRUCTION, null, PropsValues.TAGS_PROPERTIES_DEFAULT, serviceContext); tagsPropertyLocalService.addProperty( defaultUserId, entry.getEntryId(), String.valueOf(defaultUserId) + String.valueOf(asset.getAssetId()) + String.valueOf(entry.getEntryId()), String.valueOf(asset.getAssetId())); } if (entry != null) { entries.add(entry); } } /** end extend code */ // Categories for (int i = 0; i < categoryNames.length; i++) { try { TagsEntry entry = tagsEntryLocalService.getEntry(groupId, categoryNames[i], TagsEntryConstants.FOLKSONOMY_CATEGORY); entries.add(entry); } catch (NoSuchEntryException nsee) { } } tagsAssetPersistence.setTagsEntries(asset.getAssetId(), entries); // Update asset after entries so that asset listeners have access the // saved entries tagsAssetPersistence.update(asset, false); // Synchronize if (!sync) { return asset; } if (className.equals(BlogsEntry.class.getName())) { BlogsEntry entry = blogsEntryPersistence.findByPrimaryKey(classPK); entry.setTitle(title); blogsEntryPersistence.update(entry, false); } else if (className.equals(BookmarksEntry.class.getName())) { BookmarksEntry entry = bookmarksEntryPersistence.findByPrimaryKey(classPK); entry.setName(title); entry.setComments(description); entry.setUrl(url); bookmarksEntryPersistence.update(entry, false); } else if (className.equals(DLFileEntry.class.getName())) { DLFileEntry fileEntry = dlFileEntryPersistence.findByPrimaryKey(classPK); fileEntry.setTitle(title); fileEntry.setDescription(description); dlFileEntryPersistence.update(fileEntry, false); } else if (className.equals(JournalArticle.class.getName())) { JournalArticle article = journalArticlePersistence.findByPrimaryKey(classPK); article.setTitle(title); article.setDescription(description); journalArticlePersistence.update(article, false); } else if (className.equals(MBMessage.class.getName())) { MBMessage message = mbMessagePersistence.findByPrimaryKey(classPK); message.setSubject(title); mbMessagePersistence.update(message, false); } else if (className.equals(WikiPage.class.getName())) { WikiPage page = wikiPagePersistence.findByPrimaryKey(classPK); page.setTitle(title); wikiPagePersistence.update(page, false); } return asset; }
From source file:com.liferay.portlet.wiki.service.impl.WikiPageServiceImpl.java
License:Open Source License
protected String exportToRSS(long companyId, String name, String description, String type, double version, String displayStyle, String feedURL, String entryURL, List<WikiPage> pages, boolean diff, Locale locale) throws SystemException { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setFeedType(RSSUtil.getFeedType(type, version)); syndFeed.setTitle(name);/*from w w w .j av a 2 s . c o m*/ syndFeed.setLink(feedURL); syndFeed.setDescription(description); List<SyndEntry> syndEntries = new ArrayList<SyndEntry>(); syndFeed.setEntries(syndEntries); WikiPage latestPage = null; StringBundler link = new StringBundler(7); for (WikiPage page : pages) { String author = HtmlUtil.escape(PortalUtil.getUserName(page.getUserId(), page.getUserName())); String title = page.getTitle() + StringPool.SPACE + page.getVersion(); if (page.isMinorEdit()) { title += StringPool.SPACE + StringPool.OPEN_PARENTHESIS + LanguageUtil.get(locale, "minor-edit") + StringPool.CLOSE_PARENTHESIS; } link.setIndex(0); link.append(entryURL); link.append(StringPool.AMPERSAND); link.append(HttpUtil.encodeURL(page.getTitle())); SyndEntry syndEntry = new SyndEntryImpl(); syndEntry.setAuthor(author); syndEntry.setTitle(title); syndEntry.setPublishedDate(page.getCreateDate()); syndEntry.setUpdatedDate(page.getModifiedDate()); SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); if (diff) { if (latestPage != null) { link.append(StringPool.QUESTION); link.append(PortalUtil.getPortletNamespace(PortletKeys.WIKI)); link.append("version="); link.append(page.getVersion()); String value = getPageDiff(companyId, latestPage, page, locale); syndContent.setValue(value); syndEntry.setDescription(syndContent); syndEntries.add(syndEntry); } } else { String value = null; if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) { value = StringUtil.shorten(HtmlUtil.extractText(page.getContent()), PropsValues.WIKI_RSS_ABSTRACT_LENGTH, StringPool.BLANK); } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else { value = page.getContent(); } syndContent.setValue(value); syndEntry.setDescription(syndContent); syndEntries.add(syndEntry); } syndEntry.setLink(link.toString()); syndEntry.setUri(syndEntry.getLink()); latestPage = page; } try { return RSSUtil.export(syndFeed); } catch (FeedException fe) { throw new SystemException(fe); } }
From source file:com.liferay.wiki.service.impl.WikiPageServiceImpl.java
License:Open Source License
protected String exportToRSS(String name, String description, String type, double version, String displayStyle, String feedURL, String entryURL, String attachmentURLPrefix, List<WikiPage> pages, boolean diff, Locale locale) throws PortalException { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setDescription(description); List<SyndEntry> syndEntries = new ArrayList<>(); syndFeed.setEntries(syndEntries);//from ww w . j ava 2s . co m WikiPage latestPage = null; StringBundler sb = new StringBundler(6); for (WikiPage page : pages) { SyndEntry syndEntry = new SyndEntryImpl(); String author = PortalUtil.getUserName(page); syndEntry.setAuthor(author); SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); sb.setIndex(0); sb.append(entryURL); if (entryURL.endsWith(StringPool.SLASH)) { sb.append(HttpUtil.encodeURL(page.getTitle())); } if (diff) { if ((latestPage != null) || (pages.size() == 1)) { sb.append(StringPool.QUESTION); sb.append(PortalUtil.getPortletNamespace(WikiPortletKeys.WIKI)); sb.append("version="); sb.append(page.getVersion()); String value = null; if (latestPage == null) { value = wikiEngineRenderer.convert(page, null, null, attachmentURLPrefix); } else { try { value = wikiEngineRenderer.diffHtml(latestPage, page, null, null, attachmentURLPrefix); } catch (PortalException pe) { throw pe; } catch (SystemException se) { throw se; } catch (Exception e) { throw new SystemException(e); } } syndContent.setValue(value); syndEntry.setDescription(syndContent); syndEntries.add(syndEntry); } } else { String value = null; WikiGroupServiceOverriddenConfiguration wikiGroupServiceOverriddenConfiguration = configurationProvider .getConfiguration(WikiGroupServiceOverriddenConfiguration.class, new GroupServiceSettingsLocator(page.getGroupId(), WikiConstants.SERVICE_NAME)); if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) { value = StringUtil.shorten(HtmlUtil.extractText(page.getContent()), wikiGroupServiceOverriddenConfiguration.rssAbstractLength(), StringPool.BLANK); } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else { value = wikiEngineRenderer.convert(page, null, null, attachmentURLPrefix); } syndContent.setValue(value); syndEntry.setDescription(syndContent); syndEntries.add(syndEntry); } syndEntry.setLink(sb.toString()); syndEntry.setPublishedDate(page.getCreateDate()); String title = page.getTitle() + StringPool.SPACE + page.getVersion(); if (page.isMinorEdit()) { title += StringPool.SPACE + StringPool.OPEN_PARENTHESIS + LanguageUtil.get(locale, "minor-edit") + StringPool.CLOSE_PARENTHESIS; } syndEntry.setTitle(title); syndEntry.setUpdatedDate(page.getModifiedDate()); syndEntry.setUri(sb.toString()); latestPage = page; } syndFeed.setFeedType(RSSUtil.getFeedType(type, version)); List<SyndLink> syndLinks = new ArrayList<>(); syndFeed.setLinks(syndLinks); SyndLink syndLinkSelf = new SyndLinkImpl(); syndLinks.add(syndLinkSelf); syndLinkSelf.setHref(feedURL); syndLinkSelf.setRel("self"); syndFeed.setPublishedDate(new Date()); syndFeed.setTitle(name); syndFeed.setUri(feedURL); try { return RSSUtil.export(syndFeed); } catch (FeedException fe) { throw new SystemException(fe); } }
From source file:com.vportal.portlet.vcms.service.impl.VcmsCategoryServiceImpl.java
License:Open Source License
protected String exportToRSS(String name, String description, String type, double version, String displayStyle, String feedURL, String entryURL, List<VcmsArticle> vcmsArticle, ThemeDisplay themeDisplay) throws SystemException { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setFeedType(RSSUtil.getFeedType(type, version)); syndFeed.setTitle(name);//from w ww . ja v a 2 s. co m syndFeed.setLink(feedURL); syndFeed.setDescription(description); List<SyndEntry> entries = new ArrayList<SyndEntry>(); syndFeed.setEntries(entries); for (VcmsArticle entry : vcmsArticle) { String author = ""; try { author = UserServiceUtil.getUserById(Long.parseLong(entry.getPublishedByUser())).getFullName(); } catch (Exception e) { // TODO: handle exception } String link = entryURL; link += "&articleId=" + entry.getArticleId(); String value = null; if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) { value = StringUtil.shorten(HtmlUtil.extractText(entry.getContent()), _RSS_ABSTRACT_LENGTH, StringPool.BLANK); } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else { value = StringUtil.replace(entry.getContent(), new String[] { "href=\"/", "src=\"/" }, new String[] { "href=\"" + themeDisplay.getURLPortal() + "/", "src=\"" + themeDisplay.getURLPortal() + "/" }); } SyndEntry syndEntry = new SyndEntryImpl(); syndEntry.setAuthor(author); syndEntry.setTitle(entry.getTitle()); syndEntry.setLink(link); syndEntry.setPublishedDate(entry.getCreatedDate()); SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.DEFAULT_ENTRY_TYPE); syndContent.setValue(value); syndEntry.setDescription(syndContent); entries.add(syndEntry); } try { return RSSUtil.export(syndFeed); } catch (FeedException fe) { throw new SystemException(fe); } }
From source file:de.olafkock.liferay.blogs.PodcastingUtil.java
License:Open Source License
public static String exportToRSS(String name, String description, String type, double version, String displayStyle, String feedURL, String entryURL, List<BlogsEntry> blogsEntries, ThemeDisplay themeDisplay) throws SystemException, PortalException { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setFeedType(RSSUtil.getFeedType(type, version)); syndFeed.setTitle(name);//from w w w . j a v a 2 s .c o m syndFeed.setLink(feedURL); syndFeed.setDescription(description); List<SyndEntry> syndEntries = new ArrayList<SyndEntry>(); syndFeed.setEntries(syndEntries); for (BlogsEntry entry : blogsEntries) { String author = HtmlUtil.escape(PortalUtil.getUserName(entry.getUserId(), entry.getUserName())); StringBundler link = new StringBundler(4); if (entryURL.endsWith("/blogs/rss")) { link.append(entryURL.substring(0, entryURL.length() - 3)); link.append(entry.getUrlTitle()); } else { link.append(entryURL); if (!entryURL.endsWith(StringPool.QUESTION)) { link.append(StringPool.AMPERSAND); } link.append("entryId="); link.append(entry.getEntryId()); } String value = null; if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) { String summary = entry.getDescription(); if (Validator.isNull(summary)) { summary = entry.getContent(); } value = StringUtil.shorten(HtmlUtil.extractText(summary), 200 /* PropsValues.BLOGS_RSS_ABSTRACT_LENGTH */, StringPool.BLANK); } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else { value = StringUtil.replace(entry.getContent(), new String[] { "href=\"/", "src=\"/" }, new String[] { "href=\"" + themeDisplay.getURLPortal() + "/", "src=\"" + themeDisplay.getURLPortal() + "/" }); } SyndEntry syndEntry = new SyndEntryImpl(); syndEntry.setAuthor(author); syndEntry.setTitle(entry.getTitle()); syndEntry.setLink(link.toString()); syndEntry.setUri(syndEntry.getLink()); syndEntry.setPublishedDate(entry.getCreateDate()); syndEntry.setUpdatedDate(entry.getModifiedDate()); SyndEnclosure enclosure = getEnclosure(entry.getCompanyId(), entry.getPrimaryKey()); if (enclosure != null) { List<SyndEnclosure> enclosures = new LinkedList<SyndEnclosure>(); enclosures.add(enclosure); syndEntry.setEnclosures(enclosures); EntryInformation info = getItunesInfo(entry); ArrayList<EntryInformation> modules = new ArrayList<EntryInformation>(); modules.add(info); syndEntry.setModules(modules); } SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); syndContent.setValue(value); syndEntry.setDescription(syndContent); syndEntries.add(syndEntry); } try { return RSSUtil.export(syndFeed); } catch (FeedException fe) { throw new SystemException(fe); } }