|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectorg.opencms.site.xmlsitemap.CmsXmlSitemapGenerator
public class CmsXmlSitemapGenerator
Class for generating XML sitemaps for SEO purposes, as described in http://www.sitemaps.org/protocol.html.
| Nested Class Summary | |
|---|---|
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. |
| Field Summary | |
|---|---|
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. |
| Constructor Summary | |
|---|---|
CmsXmlSitemapGenerator(java.lang.String folderRootPath)
Creates a new sitemap generator instance. |
|
| Method Summary | |
|---|---|
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. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
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
| Constructor Detail |
|---|
public CmsXmlSitemapGenerator(java.lang.String folderRootPath)
throws CmsException
folderRootPath - the root folder for the XML sitemap to generate
CmsException - if something goes wrong| Method Detail |
|---|
protected 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 obtained
protected static void removeInternalFiles(java.util.List<CmsResource> resources)
resources - the list which should be replaced
public 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 value
protected void addResult(CmsXmlSitemapUrlBean result,
int resultPriority)
result - the result URL bean to addresultPriority - the internal priority to use for updating the map of results
protected long computeContainerPageModificationDate(CmsResource containerPage)
throws CmsException
containerPage - the container page
CmsException - if something goes wrong
protected 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 link
protected java.util.List<I_CmsResourceType> getDetailTypesForPage(CmsResource resource)
resource - a resource for which we want to find the detail page types
protected 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 written
protected java.util.List<CmsResource> getNavigationPages()
protected java.lang.String getUrlSetOpenTag()
protected java.lang.String getXmlForEntry(CmsXmlSitemapUrlBean entry)
entry - the XML sitemap entry bean
protected boolean isAliasBelowBaseFolder(CmsAlias alias)
alias - the alias to check
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||