Package org.ametys.cms.content
Class ContentHelper
java.lang.Object
org.ametys.runtime.plugin.component.AbstractLogEnabled
org.ametys.cms.content.ContentHelper
- All Implemented Interfaces:
LogEnabled
,Initializable
,Component
,Contextualizable
,Serviceable
- Direct Known Subclasses:
ContentHelper
public class ContentHelper
extends AbstractLogEnabled
implements Component, Serviceable, Contextualizable, Initializable
Helper for
Content
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaddContentType
(String contentId, String contentTypeId, int actionId) Add a content type to an existing contentaddMixinType
(String contentId, String mixinId, int actionId) Add a mixin type to an existing contentvoid
contextualize
(Context context) getContentAttributeDefinitionsAsJSON
(String contentId, boolean isEdition) Converts the content attribute definitions in a JSON MapgetContentAttributeDefinitionsAsJSON
(String contentId, List<String> attibutePaths, boolean isEdition) Converts the given content attribute definitions in a JSON MapgetContentBOUrl
(String contentId, Map<String, Object> contextualParameters) Get the content URL in back officegetContentEditionInformation
(String contentId) Get content edition information.getContentHtmlViewUrl
(Content content, String viewName) Get the URL for the HTML view of a content with the needed parametersGet the URL for the HTML view of a content with the needed parametersgetContentTypes
(Content content) Retrieves aCollection
containing all content types of the given contentgetContentTypes
(Content content, boolean includeMixins) Retrieves aCollection
containing content types of the given contentgetContentViewAsJSON
(String contentId, String viewName, String fallbackViewName, boolean isEdition) Converts the content view with the given name in a JSON MapgetContentViewUrl
(Content content, String viewName, String format) Get the URL for the view of a content with the needed parametersgetContentViewUrl
(Content content, String viewName, String format, Map<String, String> additionalParams) Get the URL for the view of a content with the needed parametersgetContentViewUrlParameters
(Content content, String viewName, String format) Get the needed url parameters for a content viewgetContentViewUrlParameters
(Content content, String viewName, String format, Map<String, String> additionalParams) Get the needed url parameters for a content viewgetDefaultWorkflowName
(Content content) Get the default workflow name for the content.getReferencingContents
(Content content) Returns all Contents referencing the given content with their value pathgetTargetContent
(Content sourceContent, String fieldPath) Get the content from which to get the system property.getTargetContents
(Content sourceContent, String fieldPath) Get the contents from which to get the system property.Get the title of a content.<br> If the content is a multilingual content, the title will be retrieved for the current locale if exists, or for default locale 'en' if exists, or for the first found locale.getTitleVariants
(Content content) Get the title variants of a multilingual contentgetUnknownContentTypeIds
(Content content) Determines if the given content has some of its types that are unknown (the extension does not exist)getUnknownContentTypeIds
(Content content, boolean checkMixins) Determines if the given content has some of its types that are unknown (the extension does not exist)Get the typed value(s) of a content at given path.boolean
hasIndexingReferences
(Content content) Test if the given content has indexing references, i.e.boolean
hasReferencingContents
(Content content, List<String> ignoreContentTypes, boolean includeSubTypes) Determines if the content has referencing contents other than whose type is in content types to ignore.void
boolean
isArchivedContent
(Content content) Determines if the content is archivedboolean
isMultilingual
(Content content) Determines if a content is a multilingual contentboolean
isReferenceTable
(Content content) Determines if the content is a reference table content typeboolean
Determines if the content is a simple content typeremoveContentType
(String contentId, String contentTypeId, int actionId) Remove a content type to an existing contentremoveMixinType
(String contentId, String mixinId, int actionId) Remove a mixin type to an existing contentvoid
service
(ServiceManager smanager) validateContent
(Content content) Validate the content (global validator and each attribute validation)Methods inherited from class org.ametys.runtime.plugin.component.AbstractLogEnabled
getLogger, setLogger
-
Field Details
-
ROLE
The component role. -
_baseURL
The base URL for the CMS
-
-
Constructor Details
-
ContentHelper
public ContentHelper()
-
-
Method Details
-
service
- Specified by:
service
in interfaceServiceable
- Throws:
ServiceException
-
initialize
- Specified by:
initialize
in interfaceInitializable
- Throws:
Exception
-
contextualize
- Specified by:
contextualize
in interfaceContextualizable
- Throws:
ContextException
-
addContentType
public Map<String,Object> addContentType(String contentId, String contentTypeId, int actionId) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException Add a content type to an existing content- Parameters:
contentId
- The content idcontentTypeId
- The content type to addactionId
- The workflow action id- Returns:
- The result in a Map
- Throws:
com.opensymphony.workflow.WorkflowException
- ifAmetysRepositoryException
- if an error occurred
-
removeContentType
public Map<String,Object> removeContentType(String contentId, String contentTypeId, int actionId) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException Remove a content type to an existing content- Parameters:
contentId
- The content idcontentTypeId
- The content type to addactionId
- The workflow action id- Returns:
- The result in a Map
- Throws:
com.opensymphony.workflow.WorkflowException
- ifAmetysRepositoryException
- if an error occurred
-
addMixinType
public Map<String,Object> addMixinType(String contentId, String mixinId, int actionId) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException Add a mixin type to an existing content- Parameters:
contentId
- The content idmixinId
- The mixin type to addactionId
- The workflow action id- Returns:
- The result in a Map
- Throws:
com.opensymphony.workflow.WorkflowException
- ifAmetysRepositoryException
- if an error occurred
-
removeMixinType
public Map<String,Object> removeMixinType(String contentId, String mixinId, int actionId) throws AmetysRepositoryException, com.opensymphony.workflow.WorkflowException Remove a mixin type to an existing content- Parameters:
contentId
- The content idmixinId
- The mixin type to addactionId
- The workflow action id- Returns:
- The result in a Map
- Throws:
com.opensymphony.workflow.WorkflowException
- ifAmetysRepositoryException
- if an error occurred
-
getContentEditionInformation
Get content edition information.- Parameters:
contentId
- the content ID.- Returns:
- a Map containing content edition information.
-
hasIndexingReferences
Test if the given content has indexing references, i.e. if modifying it potentially implies reindexing other contents.- Parameters:
content
- the content to test.- Returns:
true
if one of the content types or mixins has indexing references,false
otherwise.
-
getContentAttributeDefinitionsAsJSON
public Map<String,Object> getContentAttributeDefinitionsAsJSON(String contentId, boolean isEdition) throws ProcessingException Converts the content attribute definitions in a JSON Map- Parameters:
contentId
- the content identifierisEdition
-true
if the JSON result is used for edition purposes (configure a form panel, ...)false
otherwise- Returns:
- the content attribute definitions as a JSON Map
- Throws:
ProcessingException
- if an error occurs when converting the definitions
-
getContentAttributeDefinitionsAsJSON
public Map<String,Object> getContentAttributeDefinitionsAsJSON(String contentId, List<String> attibutePaths, boolean isEdition) throws ProcessingException Converts the given content attribute definitions in a JSON Map- Parameters:
contentId
- the content identifierattibutePaths
- the paths of the attribute definitions to convertisEdition
-true
if the JSON result is used for edition purposes (configure a form panel, ...)false
otherwise- Returns:
- the content attribute definitions as a JSON Map
- Throws:
ProcessingException
- if an error occurs when converting the definitions
-
getContentViewAsJSON
public Map<String,Object> getContentViewAsJSON(String contentId, String viewName, String fallbackViewName, boolean isEdition) throws ProcessingException Converts the content view with the given name in a JSON Map- Parameters:
contentId
- the content identifierviewName
- the name of the view to convertfallbackViewName
- the name of the view to convert if the initial was not found. Can be null.isEdition
-true
if the JSON result is used for edition purposes (configure a form panel, ...)false
otherwise- Returns:
- the view as a JSON Map
- Throws:
ProcessingException
- if an error occurs when converting the view
-
getContentTypes
Retrieves aCollection
containing all content types of the given content- Parameters:
content
- the content- Returns:
- all content types of the content
-
getContentTypes
Retrieves aCollection
containing content types of the given content- Parameters:
content
- the contentincludeMixins
-true
to retrieve the mixins the the collection,false
otherwise- Returns:
- content types of the content
-
getUnknownContentTypeIds
Determines if the given content has some of its types that are unknown (the extension does not exist)- Parameters:
content
- the content- Returns:
true
if at least one of the types of the content is unknown,false
otherwise
-
getUnknownContentTypeIds
Determines if the given content has some of its types that are unknown (the extension does not exist)- Parameters:
content
- the contentcheckMixins
-true
to check unknown content types in mixin types- Returns:
true
if at least one of the types of the content is unknown,false
otherwise
-
isReferenceTable
Determines if the content is a reference table content type- Parameters:
content
- The content- Returns:
- true if content is a reference table
-
isMultilingual
Determines if a content is a multilingual content- Parameters:
content
- The content- Returns:
true
if the content is an instance of content type
-
isSimple
Determines if the content is a simple content type- Parameters:
content
- The content- Returns:
- true if content is simple
-
isArchivedContent
Determines if the content is archived- Parameters:
content
- the content- Returns:
- true if the content is archived
-
getValue
Get the typed value(s) of a content at given path. The path can represent a system property id or a path of an attribute into the content or an attribute on one or more linked contents, such as 'composite/linkedContent/secondContent/composite/attribute'. The returned value is typed.- Parameters:
content
- The contentfieldPath
- The field id or the path to the attribute, separated by '/'- Returns:
- The typed final value(s). If the final field is multiple, or contained into a repeater or multiple 'CONTENT' attribute, the returned value will be a Collection
-
getTargetContent
Get the content from which to get the system property.- Parameters:
sourceContent
- The source content.fieldPath
- The field path- Returns:
- The target content.
-
getTargetContents
Get the contents from which to get the system property.- Parameters:
sourceContent
- The source content.fieldPath
- The field path- Returns:
- The target contents.
-
getTitle
Get the title of a content.<br> If the content is a multilingual content, the title will be retrieved for the current locale if exists, or for default locale 'en' if exists, or for the first found locale.- Parameters:
content
- The content- Returns:
- The title of the content
-
getTitleVariants
Get the title variants of a multilingual content- Parameters:
content
- The multilingual content- Returns:
- the content's title for each locale
- Throws:
IllegalArgumentException
- if the content is not a multilingual content
-
hasReferencingContents
public boolean hasReferencingContents(Content content, List<String> ignoreContentTypes, boolean includeSubTypes) Determines if the content has referencing contents other than whose type is in content types to ignore.- Parameters:
content
- The content to checkignoreContentTypes
- The content types to ignore for referencing contentsincludeSubTypes
- True if sub content types are take into account in ignore content types- Returns:
true
if there is at least one Content referencing the content
-
getReferencingContents
Returns all Contents referencing the given content with their value path- Parameters:
content
- The content to get references- Returns:
- the list of pair path / contents
-
getDefaultWorkflowName
Get the default workflow name for the content. If several workflows are possible, an emptyOptional
is returned.- Parameters:
content
- The content- Returns:
- The default workflow name or
Optional.empty()
if it cannot be determine
-
getContentHtmlViewUrl
Get the URL for the HTML view of a content with the needed parameters- Parameters:
content
- the contentviewName
- the view name- Returns:
- the content uri
-
getContentHtmlViewUrl
public String getContentHtmlViewUrl(Content content, String viewName, Map<String, String> additionalParams) Get the URL for the HTML view of a content with the needed parameters- Parameters:
content
- the contentviewName
- the view nameadditionalParams
- the additional parameters. Can be empty- Returns:
- the content uri
-
getContentViewUrl
Get the URL for the view of a content with the needed parameters- Parameters:
content
- the contentviewName
- the view nameformat
- the output format (html, xml, doc, pdf, ...)- Returns:
- the content uri
-
getContentViewUrl
public String getContentViewUrl(Content content, String viewName, String format, Map<String, String> additionalParams) Get the URL for the view of a content with the needed parameters- Parameters:
content
- the contentviewName
- the view nameformat
- the output format (html, xml, doc, pdf, ...)additionalParams
- the additional parameters. Can be empty- Returns:
- the content uri
-
getContentViewUrlParameters
public Map<String,String> getContentViewUrlParameters(Content content, String viewName, String format) Get the needed url parameters for a content view- Parameters:
content
- the contentviewName
- the view nameformat
- the output format (html, xml, doc, pdf, ...)- Returns:
- the uri parameters
-
getContentViewUrlParameters
public Map<String,String> getContentViewUrlParameters(Content content, String viewName, String format, Map<String, String> additionalParams) Get the needed url parameters for a content view- Parameters:
content
- the contentviewName
- the view nameformat
- the output format (html, xml, doc, pdf, ...)additionalParams
- the additional parameters. Can be empty- Returns:
- the uri parameters
-
getContentBOUrl
Get the content URL in back office- Parameters:
contentId
- the content idcontextualParameters
- the contextual parameters- Returns:
- the content URL
-
validateContent
Validate the content (global validator and each attribute validation)- Parameters:
content
- the content to validate- Returns:
- the validation result
-