public class CmsXmlSitemapGenerator
extends java.lang.Object
限定符和类型 | 类和说明 |
---|---|
protected class |
CmsXmlSitemapGenerator.ResultEntry
A bean that consists of a sitemap URL bean and a priority score, to determine which of multiple entries with the same
URL are to be preferred.
|
限定符和类型 | 字段和说明 |
---|---|
static java.lang.String |
DEFAULT_CHANGE_FREQUENCY
The default change frequency.
|
static double |
DEFAULT_PRIORITY
The default priority.
|
protected java.lang.String |
m_baseFolderRootPath
The root path for the sitemap root folder.
|
protected java.lang.String |
m_baseFolderSitePath
The site path of the base folder.
|
protected boolean |
m_computeContainerPageDates
Flag to control whether container page dates should be computed.
|
protected java.util.List<CmsDetailPageInfo> |
m_detailPageInfos
The list of detail page info beans.
|
protected java.util.Map<java.lang.String,java.util.List<CmsResource>> |
m_detailResources
A map from type names to lists of potential detail resources of that type.
|
protected com.google.common.collect.Multimap<java.lang.String,java.lang.String> |
m_detailTypesByPage
A multimap from detail page root paths to corresponding types.
|
protected CmsObject |
m_guestCms
A CMS context with guest privileges.
|
protected CmsPathIncludeExcludeSet |
m_includeExcludeSet
The include/exclude configuration used for choosing pages for the XML sitemap.
|
protected com.google.common.collect.Multimap<CmsUUID,CmsAlias> |
m_pageAliasesBelowBaseFolderByStructureId
A map from structure ids to page aliases below the base folder which point to the given structure id.
|
protected java.util.Map<java.lang.String,CmsXmlSitemapGenerator.ResultEntry> |
m_resultMap
The map used for storing the results, with URLs as keys.
|
protected CmsObject |
m_siteGuestCms
A guest user CMS object with the site root of the base folder.
|
protected java.lang.String |
m_siteRoot
The site root of the base folder.
|
protected java.lang.String |
m_siteRootLink
A link to the site root.
|
构造器和说明 |
---|
CmsXmlSitemapGenerator(java.lang.String folderRootPath)
Creates a new sitemap generator instance.
|
限定符和类型 | 方法和说明 |
---|---|
protected void |
addResult(CmsXmlSitemapUrlBean result,
int resultPriority)
Adds an URL bean to the internal map of results, but only if there is no existing entry with higher internal priority
than the priority given as an argument.
|
protected long |
computeContainerPageModificationDate(CmsResource containerPage)
Computes the container the container page modification date from its referenced contents.
|
java.util.List<CmsXmlSitemapUrlBean> |
generateSitemapBeans()
Generates a list of XML sitemap entry beans for the root folder which has been set in the constructor.
|
protected static java.lang.String |
getChangeFrequency(java.util.List<CmsProperty> properties)
Gets the change frequency for a sitemap entry from a list of properties.
|
protected java.lang.String |
getDetailLink(CmsResource pageRes,
CmsResource detailRes,
java.util.Locale locale)
Gets the detail link for a given container page and detail content.
|
protected java.util.List<I_CmsResourceType> |
getDetailTypesForPage(CmsResource resource)
Gets the types for which a given resource is configured as a detail page.
|
protected java.util.List<CmsResource> |
getDirectPages()
Gets the list of pages which should be directly added to the XML sitemap.
|
CmsPathIncludeExcludeSet |
getIncludeExcludeSet()
Gets the include/exclude configuration of this XML sitemap generator.
|
protected java.lang.String |
getInnerXmlForEntry(CmsXmlSitemapUrlBean entry)
Writes the inner node content for an url element to a buffer.
|
protected java.util.List<CmsResource> |
getNavigationPages()
Gets the list of pages from the navigation which should be directly added to the XML sitemap.
|
protected java.lang.String |
getUrlSetOpenTag()
Gets the opening tag for the urlset element (can be overridden to add e.g. more namespaces.
|
protected java.lang.String |
getXmlForEntry(CmsXmlSitemapUrlBean entry)
Writes the XML for an URL entry to a buffer.
|
protected boolean |
isAliasBelowBaseFolder(CmsAlias alias)
Checks whether the given alias is below the base folder.
|
protected static void |
removeInternalFiles(java.util.List<CmsResource> resources)
Removes files marked as internal from a resource list.
|
java.lang.String |
renderSitemap()
Generates a sitemap and formats it as a string.
|
void |
setComputeContainerPageDates(boolean computeContainerPageDates)
Enables or disables computation of container page dates.
|
public static final java.lang.String DEFAULT_CHANGE_FREQUENCY
public static final double DEFAULT_PRIORITY
protected java.lang.String m_baseFolderRootPath
protected java.lang.String m_baseFolderSitePath
protected boolean m_computeContainerPageDates
protected java.util.List<CmsDetailPageInfo> m_detailPageInfos
protected java.util.Map<java.lang.String,java.util.List<CmsResource>> m_detailResources
protected com.google.common.collect.Multimap<java.lang.String,java.lang.String> m_detailTypesByPage
protected CmsObject m_guestCms
protected CmsPathIncludeExcludeSet m_includeExcludeSet
protected com.google.common.collect.Multimap<CmsUUID,CmsAlias> m_pageAliasesBelowBaseFolderByStructureId
protected java.util.Map<java.lang.String,CmsXmlSitemapGenerator.ResultEntry> m_resultMap
protected CmsObject m_siteGuestCms
protected java.lang.String m_siteRoot
protected java.lang.String m_siteRootLink
public CmsXmlSitemapGenerator(java.lang.String folderRootPath) throws CmsException
folderRootPath
- the root folder for the XML sitemap to generateCmsException
- if something goes wrongprotected static java.lang.String getChangeFrequency(java.util.List<CmsProperty> properties)
If the change frequency is not defined in the properties, this method will return null.
properties
- the properties from which the change frequency should be obtainedprotected static void removeInternalFiles(java.util.List<CmsResource> resources)
resources
- the list which should be replacedpublic java.util.List<CmsXmlSitemapUrlBean> generateSitemapBeans() throws CmsException
CmsException
- if something goes wrongpublic CmsPathIncludeExcludeSet getIncludeExcludeSet()
public java.lang.String renderSitemap() throws CmsException
CmsException
- if something goes wrongpublic void setComputeContainerPageDates(boolean computeContainerPageDates)
computeContainerPageDates
- the new valueprotected void addResult(CmsXmlSitemapUrlBean result, int resultPriority)
result
- the result URL bean to addresultPriority
- the internal priority to use for updating the map of resultsprotected long computeContainerPageModificationDate(CmsResource containerPage) throws CmsException
containerPage
- the container pageCmsException
- if something goes wrongprotected java.lang.String getDetailLink(CmsResource pageRes, CmsResource detailRes, java.util.Locale locale)
pageRes
- the container pagedetailRes
- the detail contentlocale
- the locale for which we want the linkprotected java.util.List<I_CmsResourceType> getDetailTypesForPage(CmsResource resource)
resource
- a resource for which we want to find the detail page typesprotected java.util.List<CmsResource> getDirectPages() throws CmsException
CmsException
- if something goes wrongprotected java.lang.String getInnerXmlForEntry(CmsXmlSitemapUrlBean entry)
entry
- the entry for which the content should be writtenprotected java.util.List<CmsResource> getNavigationPages()
protected java.lang.String getUrlSetOpenTag()
protected java.lang.String getXmlForEntry(CmsXmlSitemapUrlBean entry)
entry
- the XML sitemap entry beanprotected boolean isAliasBelowBaseFolder(CmsAlias alias)
alias
- the alias to check