You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

GREY Google-sitemap module . GREY

Introduction

Migrate the sitemap module in order to support Magnolia 4.5.

Goal

  • Create a standard module with configuration, templates and services.
  • Replace JSP by FTL's
  • Better configuration
  • Use template Variation
  • Add Junit tests.

Global Requirements

Display a XML page containing site informations following the siteMap protocol.

Have a configuration page that gives the abitiy to define the:

  • Change frequence
  • Priority
  • visibility of the site page and children in the SiteMap xml.

Google SiteMap requirements.

Requirements

Points not yet covered (should we)?

  • A Sitemap file can contain no more than 50,000 URLs and must be no larger than 50MB when uncompressed. If your Sitemap is larger than this, break it into several smaller Sitemaps. These limits help ensure that your web server is not overloaded by serving large files to Google.
  • If you have more than one Sitemap, you can list them in a Sitemap index file and then submit the Sitemap index file to Google. You don't need to submit each Sitemap file individually.
  • As well as basic URL information, Sitemaps can contain detailed information about specific types of content on your site, including video, images, mobile, News, and software source code

Magnolia SiteMap requirements.

Points not yet covered (should we)?

  • Site variations:
  • Multi domains:
    'No. Please list only one version of a URL in your Sitemaps. Including multiple versions of URLs may result in incomplete crawling of your site'...

SiteMap XML

Display Site and VirtualUri mappings in a xml format.
Sites to be displayed are defined in the configuration (see configuration section). If no sites are defined, the root of the website repository will be taken to display sites. 

Sites display
  • Display all mgnl:content nodes (including inherited nodes type) if they are not defined as not to be displayed (done in the configuration part by setting  a googleSitemapHide property)
  • Display subNodes of type mgnl:content if the parent node don't define to hide childrens (done in the configuration part by setting a googleSitemapHideChildren property)

In case of nultilang support, display the specific language sub pages. For example
.../ftl-sample-site/ftl-dialog-showroom.html
.../de/ftl-sample-site/ftl-dialog-showroom.html

VirtualUriMappings display

Display all virtualUriMapping nodes if they are not defined as not to be displayed (done in the configuration part by setting  a googleSitemapHide property)

SiteMap Configuration

Display a line for all Site contents and VirtualUri mappings showing their current settings. Access a dialog to change these definitions.

Sites configuration
  • Display all mgnl:content nodes (including inherited nodes type)
    • Display them in red if they are defined as not to be displayed
  •  Display subNodes of type mgnl:content
    • Display them in red if the parent node set hide subNodes
VirtualUriMappings configuration
  • Display all virtualUriMapping nodes.
    • Display them in red if they are defined as not to be displayed

Solutions

  • Create a configuration singleton used by the model and service (configure site to be displayed, date format, ...).
  • Create a Service responsible to perform the nodes search and convert these nodes to beans used for the rendering.
  • Create a new SiteMapModel  that uses the services and configuration singleton.
  • Create FTL's for rendering. 
  • No labels