Class AmetysXSLTHelper

All Implemented Interfaces:
Contextualizable, LogEnabled, Serviceable
Direct Known Subclasses:
LinkDirectoryXSLTHelper, OrgUnitXSLTHelper, UgcXSLTHelper, UserXSLTHelper

public class AmetysXSLTHelper extends AmetysXSLTHelper
Helper component to be used from XSL stylesheets.
  • Constructor Details

  • Method Details

    • service

      public void service(ServiceManager manager) throws ServiceException
      Specified by:
      service in interface Serviceable
      Overrides:
      service in class AmetysXSLTHelper
      Throws:
      ServiceException
    • uriPrefix

      public static String uriPrefix()
      Returns the current URI prefix, depending on the rendering context.
      Returns:
      the current URI prefix.
    • siteUriPrefix

      public static String siteUriPrefix()
      Returns the URI prefix corresponding to the current site, depending on the rendering context.
      Returns:
      the URI prefix corresponding to the current site.
    • absoluteUriPrefix

      public static String absoluteUriPrefix()
      Returns the absolute URI prefix, depending on the rendering context.
      Returns:
      the absolute URI prefix.
    • absoluteSiteUriPrefix

      public static String absoluteSiteUriPrefix()
      Returns the absolute URI prefix corresponding to the current site, depending on the rendering context.
      Returns:
      the absolute URI prefix corresponding to the current site.
    • absoluteSiteUriPrefix

      public static String absoluteSiteUriPrefix(String siteName)
      Returns the absolute URI prefix corresponding to the given site, depending on the rendering context.
      Parameters:
      siteName - The site name. Can be null to get the current site.
      Returns:
      the absolute URI prefix corresponding to the current site.
    • skin

      public static String skin()
      Returns the current skin name.
      Returns:
      the current skin name.
    • template

      public static String template()
      Returns the current template name.
      Returns:
      the current template name.
    • lang

      public static String lang()
      Returns the current sitemap name.
      Returns:
      the current sitemap name.
    • lang

      public static String lang(String pageId)
      Returns the current sitemap name.
      Parameters:
      pageId - The page identifier to get sitemap on
      Returns:
      the current sitemap name.
    • skinURL

      public static String skinURL(String path)
      Computes the URI for the given resource in the current site's skin.
      If the URI is requested by the front-office, it will be absolutized.
      Parameters:
      path - the resource path.
      Returns:
      the URI for the given resource.
    • skinImageURL

      public static String skinImageURL(String path, int height, int width)
      Computes the URI for the given image with a given heigth and width in the current site's skin.
      If the URI is requested by the front-office, it will be absolutized.
      Parameters:
      path - the resource path
      height - the height for the resource to get
      width - the width for the resource to get
      Returns:
      the URI of the given resource
    • skinImageBase64

      public static String skinImageBase64(String skin, String path) throws IOException
      Computes the base 64 representation of the image at the specified path.
      Parameters:
      skin - the skin to search in
      path - the path of the image
      Returns:
      the base 64-encoded image
      Throws:
      IOException - if an error occurs while trying to get the file
    • skinImageBase64

      public static String skinImageBase64(String path) throws IOException
      Computes the base 64 representation of the image at the specified path.
      Parameters:
      path - the path of the image
      Returns:
      the base 64-encoded image
      Throws:
      IOException - if an error occurs while trying to get the file
    • skinBoundedImageURL

      public static String skinBoundedImageURL(String path, int maxHeight, int maxWidth)
      Computes the URI for the given image with a given heigth and width in the current site's skin.
      If the URI is requested by the front-office, it will be absolutized.
      Parameters:
      path - the resource path
      maxHeight - the maximum height for the resource to get
      maxWidth - the maximum width for the resource to get
      Returns:
      the URI of the given resource
    • templateURL

      public static String templateURL(String path)
      Computes the URI for the given resource in the current template.
      If the URI is requested by the front-office, it will be absolutized.
      Parameters:
      path - the resource path.
      Returns:
      the URI for the given resource.
    • pluginResourceURL

      public static String pluginResourceURL(String plugin, String path)
      Computes the URI for the given resource in the given plugin.
      If the URI is requested by the front-office, it will be absolutized.
      Parameters:
      plugin - the plugin name.
      path - the resource path.
      Returns:
      the URI for the given resource.
    • renderingContext

      public static String renderingContext()
      Returns the current RenderingContext.
      Returns:
      the current RenderingContext.
    • zone

      public static String zone(String defaultValue)
      Return the name of the zone beeing handled
      Parameters:
      defaultValue - If no page is handled currently, this value is returned (can be null, empty...)
      Returns:
      the name or the default value (so can be null or empty)
    • siteParameter

      public static String siteParameter(String parameter)
      Return the value of a site parameter as a String.
      Parameters:
      parameter - the parameter ID.
      Returns:
      the parameter value as a String.
    • siteParameter

      public static String siteParameter(String siteName, String parameter)
      Return the value of a site parameter as a String.
      Parameters:
      siteName - the site name
      parameter - the parameter ID.
      Returns:
      the parameter value as a String.
    • siteLanguages

      public static NodeList siteLanguages()
      Returns the sitemap' names handled by the current site
      Returns:
      The available languages
    • siteLanguages

      public static NodeList siteLanguages(String siteName)
      Returns the sitemap' names handled by a site
      Parameters:
      siteName - The site name
      Returns:
      The available languages
    • serviceParameters

      public static Node serviceParameters()
      Get the service parameters as a Node.
      Returns:
      the service parameters as a Node.
    • serviceParameter

      public static Node serviceParameter(String parameterPath)
      Returns the value of the given parameter for the current service, or the empty string if the parameter does not exist.
      Parameters:
      parameterPath - the parameter path.
      Returns:
      the value of the given parameter for the current service.
    • serviceParameter

      public static Node serviceParameter(String parameterPath, Object defaultValue)
      Returns the value of the given parameter for the current service, or the provided default value if the parameter does not exist.
      Parameters:
      parameterPath - the parameter path.
      defaultValue - the default value. Note that default value is ignored if the parameter is a composite parameter.
      Returns:
      the value of the given parameter for the current service.
    • site

      public static String site()
      Returns the current site
      Returns:
      the current site
    • site

      public static String site(String pageId)
      Returns the current site
      Parameters:
      pageId - The identifier ot the page
      Returns:
      the current site
    • sitemap

      @Deprecated public static Node sitemap()
      Deprecated.
      Use the version with depth argument
      Return the current sitemap as a Node. Invisible pages will not be displayed
      Returns:
      the current sitemap.
    • sitemap

      public static Node sitemap(long depth)
      Return the current sitemap as a Node. Invisible pages will not be displayed
      Parameters:
      depth - The depth to get. 1 for root pages, -1 for infinite.
      Returns:
      the current sitemap.
    • sitemap

      @Deprecated public static Node sitemap(boolean includeInvisiblePages)
      Deprecated.
      Use the version with depth argument
      Return the current sitemap as a Node.
      Parameters:
      includeInvisiblePages - Should return child invisible pages
      Returns:
      the current sitemap.
    • sitemap

      public static Node sitemap(long depth, boolean includeInvisiblePages)
      Return the current sitemap as a Node.
      Parameters:
      depth - The depth to get. 1 for root pages, -1 for infinite.
      includeInvisiblePages - Should return child invisible pages
      Returns:
      the current sitemap.
    • sitemap

      @Deprecated public static Node sitemap(String pageId)
      Deprecated.
      Use the version with depth argument
      Return the subsitemap of the given page as a Node. Invisible child pages will not be returned;
      Parameters:
      pageId - The root page
      Returns:
      The page as node.
    • sitemap

      public static Node sitemap(String pageId, long depth)
      Return the subsitemap of the given page as a Node. Invisible child pages will not be returned;
      Parameters:
      pageId - The root page
      depth - The depth to get. 0 for the root page only, 1 for its child pages, -1 for infinite child pages.
      Returns:
      The page as node.
    • sitemap

      public static Node sitemap(String pageId, boolean includeInvisiblePages)
      Return the subsitemap of the given page as a Node.
      Parameters:
      pageId - The root page
      includeInvisiblePages - Should return child invisible pages
      Returns:
      The page as node.
    • sitemap

      public static Node sitemap(String pageId, long depth, boolean includeInvisiblePages)
      Return the subsitemap of the given page as a Node.
      Parameters:
      pageId - The root page
      depth - The depth to get. 0 for the root page only, 1 for its child pages, -1 for infinite child pages.
      includeInvisiblePages - Should return child invisible pages
      Returns:
      The page as node.
    • resourcesById

      public static Node resourcesById(String collectionId)
      Returns a DOM Element representing files and folder of the resources explorer, under the ResourceCollection corresponding to the given id.
      Parameters:
      collectionId - the id of the root ResourceCollection.
      Returns:
      an Element containing files and folders.
    • resourcesByPath

      public static Node resourcesByPath(String path)
      Returns a DOM Element representing files and folder of the resources explorer, under the ResourceCollection corresponding to the given path.
      This path is intended to be relative to the current site's resource explorer.
      Parameters:
      path - the path of the root ResourceCollection, relative to the current site's resource explorer.
      Returns:
      an Element containing files and folders or null if the specified resource does not exist.
    • resourceByPath

      public static Node resourceByPath(String path)
      Returns a DOM Element representing a single file of the resources explorer.
      This path is intended to be relative to the current site's resource explorer.
      Parameters:
      path - the path of the Resource, relative to the current site's resource explorer.
      Returns:
      an Element containing a file or null if the specified resource does not exist.
    • skinResources

      public static Node skinResources(String path) throws IOException
      Returns a DOM Element representing files and folder of a skin directory.
      This path is intended to be relative to the current skin's 'resources' directory.
      Parameters:
      path - the path of the root ResourceCollection, relative to the current skin's 'resources' directory. Can be a file path to test its existance.
      Returns:
      an Element containing files and folders. node name is 'collection' or 'resource' with an attribute 'name'. Return null if the path does not exits.
      Throws:
      IOException - if an error occurred while listing files.
    • pageSiteName

      public static String pageSiteName(String pageId)
      Get the site name of a page.
      Parameters:
      pageId - The page id.
      Returns:
      The name or empty if the page does not exist.
    • pageTitle

      public static String pageTitle(String sitename, String lang, String path)
      Get the title of a page.
      Parameters:
      sitename - the site name.
      lang - the sitemap name.
      path - the page path.
      Returns:
      The name or empty if the meta or the page does not exist.
    • pageExists

      public static boolean pageExists(String sitename, String lang, String path)
      Determines if page exists
      Parameters:
      sitename - the site name.
      lang - the sitemap name.
      path - the page path.
      Returns:
      false the page does not exist.
    • pageTitle

      public static String pageTitle(String pageId)
      Get the title of a page.
      Parameters:
      pageId - The page id.
      Returns:
      The name or empty if the meta or the page does not exist.
    • pageLongTitle

      public static String pageLongTitle(String sitename, String lang, String path)
      Get the long title of a page
      Parameters:
      sitename - the site name
      lang - the page's language
      path - the page's path
      Returns:
      The name or empty if the meta or the page does not exist
    • pageLongTitle

      public static String pageLongTitle(String pageId)
      Get the long title of a page
      Parameters:
      pageId - The page id
      Returns:
      The name or empty if the meta or the page does not exist
    • pageType

      public static String pageType(String pageId)
      Get the type of a page.
      Parameters:
      pageId - The page id.
      Returns:
      The type or empty if the page does not exist.
    • pageUrl

      public static String pageUrl(String pageId)
      Get the linked url of a page.
      Parameters:
      pageId - The page id.
      Returns:
      The linked url or empty if the page does not exist or if it is not a LINK page
    • pageUrlType

      public static String pageUrlType(String pageId)
      Get the linked URL type of a page.
      Parameters:
      pageId - The page id.
      Returns:
      The linked URL type or empty if the page does not exist or if it is not a LINK page
    • pageMetadata

      public static String pageMetadata(String sitename, String lang, String path, String dataPath)
      Get the data of a page at the given path
      Parameters:
      sitename - the site name
      lang - the page's language
      path - the page's path
      dataPath - The data path (use '/' as separator for composites and repeaters)
      Returns:
      The value or empty if the data or the page does not exist
    • pageMetadata

      public static String pageMetadata(String pageId, String dataPath)
      Get the data of a page at the given path
      Parameters:
      pageId - The page id
      dataPath - The data path (use '/' as separator for composites and repeaters)
      Returns:
      The value or empty if the data or the page does not exist
    • pageIsVisible

      public static boolean pageIsVisible(String pageId)
      Returns true if the given page is visible into navigation elements
      Parameters:
      pageId - the page id.
      Returns:
      true if the page is visible
    • pageIsVisible

      public static boolean pageIsVisible(String sitename, String lang, String path)
      Returns true if the given page is visible into navigation elements
      Parameters:
      sitename - the site name
      lang - the page's language
      path - the page's path
      Returns:
      true if the page is visible
    • pageHasRestrictedAccess

      public static boolean pageHasRestrictedAccess(String pageId)
      Returns true if the given page has restricted access.
      Parameters:
      pageId - the page id.
      Returns:
      true if the page exists and has restricted access.
    • hasReadAccessOnPage

      public static boolean hasReadAccessOnPage(String pageId)
      Returns true if the current user has read access on the specified page
      Parameters:
      pageId - Page Id
      Returns:
      true if the current user has read access on the specified page
    • hasRightOnPage

      public static boolean hasRightOnPage(String rightId)
      Returns true if the current user has the specified right on the current page
      Parameters:
      rightId - Right Id
      Returns:
      true if the current user has the specified right on the current page
    • hasRightOnPage

      public static boolean hasRightOnPage(String rightId, String pageId)
      Returns true if the current user has the specified right on the specified page
      Parameters:
      rightId - Right Id
      pageId - Page Id
      Returns:
      true if the current user has the specified right on the specified page
    • pageHasRestrictedAccess

      public static boolean pageHasRestrictedAccess(String sitename, String lang, String path)
      Returns true if the given page has restricted access.
      Parameters:
      sitename - the site name
      lang - the page's language
      path - the page's path
      Returns:
      true if the page exists and has restricted access.
    • pagePath

      public static String pagePath()
      Returns the path of the current page, relative to the sitemap's root.
      Returns:
      the path of the current Page, or empty if there's no current page.
    • pagePath

      public static String pagePath(String pageId)
      Returns the path in sitemap of a page
      Parameters:
      pageId - The id of page
      Returns:
      the path of the Page, or empty if not exists
    • pageId

      public static String pageId()
      Returns the id of the current page.
      Returns:
      the id of the current Page, or empty if there's no current page.
    • zoneItemId

      public static String zoneItemId()
      Returns the id of the current zone item id.
      Returns:
      the id of the current zone item id, or empty if there's no current zone item.
    • zoneItemPosition

      public static int zoneItemPosition()
      Get the position of the current zone item in its zone
      Returns:
      the position of the current zone item or -1 if there's no current zone item.
    • isCacheable

      public static boolean isCacheable()
      Determines if the current zone item or (if there is no current zone item) the current page is cacheable This method is only valid for a page.
      Returns:
      true if the current zone item or page is cacheable.
    • isEditionMode

      public static boolean isEditionMode()
      Determines if we are in an edition mode
      Returns:
      true if we are in edition mode
    • isCaptchaRequired

      public static boolean isCaptchaRequired()
      Determines if a captcha is required on forms of the current page
      Returns:
      true if a captcha is required
    • isCaptchaRequired

      public static boolean isCaptchaRequired(String ametysObjectId)
      Determines if a captcha is required on forms of the given ametys object
      Parameters:
      ametysObjectId - the ametys object id. Can be a sitemap element or a zone item.
      Returns:
      true if a captcha is required
    • accessibleReferencedPages

      public static NodeList accessibleReferencedPages(String contentId)
      Returns the id of pages referencing the content and for which the Front-office user can access
      Parameters:
      contentId - The content's id
      Returns:
      The pages' id
    • referencedPages

      public static NodeList referencedPages(String contentId)
      Returns the id of pages referencing the content
      Parameters:
      contentId - The content's id
      Returns:
      The pages' id
    • findContentsIdsByTag

      public static NodeList findContentsIdsByTag(String tag)
      Returns the ids of the contents
      Parameters:
      tag - The tag id
      Returns:
      Array of contents ids
    • findContentsIdsByTag

      public static NodeList findContentsIdsByTag(String sitename, String lang, String tag)
      Returns the ids of the contents
      Parameters:
      sitename - site name. '+' for any site, '*'/null for any site, including contents without site, '^' for only contents without site
      lang - lang of the contents
      tag - The tag id
      Returns:
      Array of contents ids
    • findPagesIdsByTag

      public static NodeList findPagesIdsByTag(String sitename, String lang, String tag)
      Returns the ids of the pages tagged with the specified tag
      Parameters:
      sitename - The site id
      lang - The language code
      tag - The tag id
      Returns:
      Array of pages ids
    • findPagesIdsByTag

      public static NodeList findPagesIdsByTag(String sitename, String lang, String tag, boolean checkReadAccess)
      Returns the ids of the pages tagged with the specified tag
      Parameters:
      sitename - The site id
      lang - The language code
      tag - The tag id
      checkReadAccess - true to return only pages with read access for current user
      Returns:
      Array of pages ids
    • findPagesIdsByTag

      public static NodeList findPagesIdsByTag(String tag)
      Returns the ids of the pages tagged with the specified tag
      Parameters:
      tag - The tag id
      Returns:
      Array of pages ids
    • findPagesIdsByTag

      public static NodeList findPagesIdsByTag(String tag, boolean checkReadAccess)
      Returns the ids of the pages tagged with the specified tag
      Parameters:
      tag - The tag id
      checkReadAccess - true to return only pages with read access for current user
      Returns:
      Array of pages ids
    • userByMail

      public static Node userByMail(String email) throws SAXException
      Return the given user by its email over all authorized population on current site
      Parameters:
      email - the concerned user's email
      Returns:
      The informations about the given user
      Throws:
      SAXException - If an error occurred while saxing the user
    • urlPreview

      public static Node urlPreview(String url) throws SAXException
      Get the preview of a url (title, description, image, favico)
      Parameters:
      url - the web link
      Returns:
      the url preview
      Throws:
      SAXException - If an error occurred while saxing
    • pagination

      public static AmetysNodeList pagination(int nbPages, int currentPage, int nbFirstPages, int nbCentralPages, int nbLastPages)
      Generates a XML structure to help to creates a complex pagination.

      Example: pagination(39, 19, 2, 5, 2) will return
         <gotofirstpage enabled="true">1</gotofirstpage>
         <gotopreviouspage enabled="true">18</gotopreviouspage>
         <page>1</page>
         <page>2</page>
         <separator/>
         <page>17</page>
         <page>18</page>
         <current>19</current>
         <page>20</page>
         <page>21</page>
         <separator/>
         <page>38</page>
         <page>39</page>
         <gotonextpage enabled="true">20</gotonextpage>
         <gotolastpage enabled="true">39</gotonextpage>
       
      Example: pagination(5, 2, 2, 5, 2) will return
         <gotofirstpage enabled="true">1</gotofirstpage>
         <gotopreviouspage enabled="true">1</gotopreviouspage>
         <page>1</page>
         <current>2</page>
         <page>3</page>
         <page>4</page>
         <page>5</page>
         <space/>
         <space/>
         <space/>
         <space/>
         <gotonextpage enabled="true">3</gotonextpage>
         <gotolastpage enabled="true">5</gotonextpage>
       
      Parameters:
      nbPages - The total number of pages
      currentPage - The currently displayed page (1 based)
      nbFirstPages - The max number of pages to display before the 1st separator
      nbCentralPages - The max number of pages to display around the current page
      nbLastPages - The max number of pages to display after the 2nd separator
      Returns:
      The xml described
    • templateParameters

      public static NodeList templateParameters()
      Get the parameters' values of the current template
      Returns:
      the values of template's parameters
    • templateParameter

      public static NodeList templateParameter(String parameterPath)
      Returns the value of the given parameter for the current page template, or the empty node if the parameter does not exist.
      Parameters:
      parameterPath - the parameter path.
      Returns:
      the value of the given parameter for the current page template.
    • templateParameter

      public static NodeList templateParameter(String pageId, String parameterPath)
      Returns the value of the given parameter for the given page template, or the empty node if the parameter does not exist.
      Parameters:
      pageId - the page id
      parameterPath - the parameter path.
      Returns:
      the value of the given parameter for the given page template.
    • zoneParameters

      public static NodeList zoneParameters()
      Get the parameters of the current zone
      Returns:
      the zone's parameters
    • zoneParameters

      public static NodeList zoneParameters(String zoneName)
      Get the parameters of a given zone
      Parameters:
      zoneName - The zone's name. Can be null or empty to get the current zone.
      Returns:
      the zone's parameters
    • zoneParameter

      public static NodeList zoneParameter(String parameterPath)
      Returns the value of the given parameter for the current page and current zone, or the empty node if the parameter does not exist.
      Parameters:
      parameterPath - the parameter path.
      Returns:
      the value of the given parameter for the current page and current zone.
    • zoneParameter

      public static NodeList zoneParameter(String zoneName, String parameterPath)
      Returns the value of the given parameter for the current page and given zone, or the empty node if the parameter does not exist.
      Parameters:
      zoneName - the zone name
      parameterPath - the parameter path.
      Returns:
      the value of the given parameter for the current page and given zone.
    • zoneParameter

      public static NodeList zoneParameter(String pageId, String zoneName, String parameterPath)
      Returns the value of the given parameter for the given page and given zone name, or the empty node if the parameter does not exist.
      Parameters:
      pageId - the page id
      zoneName - the zone name
      parameterPath - the parameter path.
      Returns:
      the value of the given parameter for the given page and given zone name.
    • zoneItemParameters

      public static NodeList zoneItemParameters()
      Get the parameters of the current zone item
      Returns:
      the zone items's parameters
    • zoneItemParameters

      public static NodeList zoneItemParameters(String zoneItemId)
      Get the parameters of a given zone item
      Parameters:
      zoneItemId - The id of zone item. Can be null or empty to get the current zone item
      Returns:
      the zone items's parameters
    • zoneItemParameter

      public static NodeList zoneItemParameter(String parameterPath)
      Returns the value of the given parameter for the current zone item, or the empty node if the parameter does not exist.
      Parameters:
      parameterPath - the parameter path.
      Returns:
      the value of the given parameter for the current zone item.
    • zoneItemParameter

      public static NodeList zoneItemParameter(String zoneItemId, String parameterPath)
      Returns the value of the given parameter for the given zone item, or the empty node if the parameter does not exist.
      Parameters:
      zoneItemId - the zone item id
      parameterPath - the parameter path.
      Returns:
      the value of the given parameter for the given zone item.
    • serviceViewParameters

      Get the parameters of the current service
      Returns:
      the service's parameters
    • serviceViewParameter

      public static NodeList serviceViewParameter(String parameterPath)
      Returns the value of the given parameter for the current service, or the empty node if the parameter does not exist.
      Parameters:
      parameterPath - the parameter path.
      Returns:
      the value of the given parameter for the current service.
    • contentViewParameters

      Get the parameters of the current content
      Returns:
      the content's parameters
    • contentViewParameter

      public static NodeList contentViewParameter(String parameterPath)
      Returns the value of the given parameter for the current content, or the empty node if the parameter does not exist.
      Parameters:
      parameterPath - the parameter path.
      Returns:
      the value of the given parameter for the current content.