CommonContentService
- In this article:
Warning
This init instance over Imcms.getServices().getCommonContentService() working from 10 version
Introduction
Each documents page have common content with enable/disable languages, which store itself data about document.
We can easy get all info about it , just use CommonContentService
.
Init CommonContentService bean service - Imcms.getServices().getCommonContentService();
Look at the code below how use API.
Use API
List<CommonContent> getOrCreateCommonContents(int docId, int versionNo); //Get document's common contents for all languages //If common content of non working version is null it creates new common content based on working. CommonContent getOrCreate(int docId, int versionNo, Language language); //Gets common content for working or published versions. //If common content of non working version is null it creates new common content based on working. <T extends CommonContent> void save(int docId, Collection<T> saveUs); Set<CommonContent> getByVersion(Version version); deleteByDocId(Integer docId);
Block parameters:
Parameters |
Type |
Description |
---|---|---|
versionNo |
Integer |
number version document |
docId |
Integer |
Identify the linked document |
saveUs |
Collection<T> |
List common contents which need to save |
How to use getOrCreate
method simple example:
- How to init languageService see to languageService-documentation
Language language = languageService.findByCode(String code); int versionNo = 0; //working version int docId = 1001; CommonContentService commonContentService = Imcms.getServices().getCommonContentService(); commonContentService.getOrCreate(int docId, int versionNo, Language language);
Checking what languages the document is active in, example:
Using lambda and stream API java8+
List<Language> listEnableLang = Imcms.getServices().getCommonContentService().getOrCreateCommonContents(int docId, int versionNo)
.stream()
.filter(CommonContent::isEnabled)
.map(CommonContent::getLanguage)
.collect(Collectors.toList());
Using simple code without stream API:
List<CommonContent> contents = Imcms.getServices().getCommonContentService().getOrCreateCommonContents(int docId, int versionNo);
List<Language> languages = new ArrayList<>();
for (CommonContent commonContent: contents) {
if (commonContent.isEnabled()) {
languages.add(commonContent.getLanguage());
}
}