Catalog Configuration

Requirements

  • Geonetwork configuration
  • Proxy Installation
  • the EasySDI JOOMLA package is installed
  • the extension php_xsl.dll needs to be activated (to process XSLT)
  • for multilingual sites : the languages proposed in Joomla must be configured in easySDI CATALOG

EasySDI Catalog permit to define and catalog several ressource types (dataset, map, contact, product...). For each type, the admin can manage the associate metadata model.
You can start from a "blank page" or use an existing one.

You will find here a model to insert in you JOOMLA database. It contains 3 ressource types : contact, dataset, series. It's a sql file to execute in mysql.
If you've done that you can skip the next paragraph.

Creation of ressource types

To define a new ressource type, you will need to create it in the admin JOOMLA panel -> EasySDI -> Catalog

As shown in the schema just below, to create an object type we need to create a profile :
  • create your metadata model (classes, attributes, relations)
  • define one of your model's classes as root component
  • create an attribute with the guid stereotype and create a relation between the root class and this attribute (make sure the relation is published)
  • create a profile by choosing the root class and the corresponding metadata id attribute
  • create an ressource type by choosing the profile to apply and the fragment namespace (e.g. gmd)

Notice : as soon as you have a profile defined, go back to each relation so as to set to which profil it is related to (see profile name checkbox)

Link EasySDI catalog component with a CSW server

Until now, no operation against the CSW server has been done. What we have is a metadata model which is managed by the EasySDI catalog component (see below schema).

This is the moment when operations need to be done against your CSW server (e.g. to store/insert metadata information).

The best way is to pass through the proxy, so you will be able to take benefit of the right management system, log trace, etc.

First, we define a CSW Physical Service : Second, we define a CSW Virtual Service (this will configure your proxy servlet) :
  • go to JOOMLA admin panel -> component -> easysdi -> service -> virtual services
  • add a new virtual service based on the physical service created just before
  • Search attribute identifier : fileId
  • don't forget to publish yout virtual service service
Third, we need to create an access policy for this new service : Finally we can configure the catalog URL in the JOOMLA admin panel (Component -> EasySDI -> Catalog -> Options)
  • set the Catalog URL field to the CSW virtual service created : http(s)://<server:port>/proxy/<virtualservicename> (e.g. http://localhost:8080/proxy/geonetwork)
  • set the XSLT file corresponding to your model. This XSLT file is used on front-end to display the catalog result and metadata detail sheet. You can find here the XSLT corresponding to the metadata models that we gave you just before.

Be aware that you've created an EasySDI user with the right rules (cf. manage contacts)

Now, you just need to configure menu item to access to the ressource manager panel.
  • go to admin panel -> menu
  • add a new menu item to EasySDI Component Core -> Resources
  • go to the front-end and navigate to this new menu

You are now ready to manage metadata on front-end.

Display metadata on front-end

What you need to know :

1. When asking for metadata, EasySDI sends back XML content (via CSW request)
2. XSL result file has to be configurated for displaying content of result list as desired
3. Calling EasySDI function to display a specific metadata sends back XML content of CSW metadata (stored inside CSW catalog) and XML content of EasySDI metadata (stored inside MySQL database and related to resource)

As we can manage metadata profiles for ressource types, it is also needed to manage the output on front-end. This is done by creating an XSL file that will be used to transform the metadata XML to the HTML diplaid on front-end in the catalog results and in the detailed sheet of a metadata.
You will find here the XSL and associated css and js files that correspond to the profile shared above (ISO 19139).

You have also to configure your catalog to make it use this XSL

  • go to JOOMLA admin panel -> EasySDI -> Catalog -> Options
  • select the XSL file and save

You can adapt this XSL to your own metadata profile and template. See XSL tutorial if your are not familiar with XSL transformation.

Extended XML

If you want to personnalise the XSL, you have to know that the XML generated by EasySDI extend the ISO model with specifics classes, you will find in this example all the extension added :

<?xml version="1.0" encoding="UTF-8"?>
<Metadata xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:bee="http://www.be.ch/bve/agi/2010/bee" xmlns:sdi="http://www.easysdi.org/2011/sdi">
  <gmd:MD_Metadata xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:srv="http://www.isotc211.org/2005/srv" xmlns:bee="http://www.be.ch/bve/agi/2010/bee" xmlns:che="http://www.geocat.ch/2008/che" xmlns:sdi="http://www.easysdi.org/2011/sdi" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gml="http://www.opengis.net/gml" xmlns:geonet="http://www.fao.org/geonetwork" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.isotc211.org/2005/gmd http://www.isotc211.org/2005/gmd/gmd.xsd http://www.isotc211.org/2005/srv http://schemas.opengis.net/iso/19139/20060504/srv/srv.xsd">

      ...

      <sdi:platform guid="7546d286-55ac-a424-e536-4edaaed00d05" harvested="false">
        <sdi:resource guid="3e2101b2-a252-4664-392d-199aca2b33a4" alias="geoproduit-b" name="Geoproduit B" type="Geoproduct" organism="7003f19f-fd52-cad4-51c9-d974e20b370f" scope="organism">
          <sdi:organisms>
            <sdi:organism guid="7003f19f-fd52-cad4-51c9-d974e20b370f"/>
            <sdi:organism guid="2c92d649-c948-9894-d9a3-7ba2df1a955c"/>
          </sdi:organisms>
          <sdi:metadata lastVersion="true" guid="46644f81-8fc5-4887-8b02-bd0f5e2cc7et" created="2013-10-08 13:03:42" published="" state="inprogress">
            <sdi:diffusion isFree="false" isDownloadable="false" isOrderable="false"/>
            <sdi:visualization isViewable="true"/>
          </sdi:metadata>
        </sdi:resource>
      </sdi:platform>
    </gmd:MD_Metadata>
  <sdi:ExtendedMetadata xmlns:sdi="http://www.easysdi.org/2011/sdi" lang="fr-FR" callfromjoomla="0">
    <sdi:ex_Resource name="Geoproduit B" descriptionLength="100">
      <sdi:ex_Metadata created="2013-10-08 13:03:42" updated="2013-10-08 13:03:42">
        <sdi:ex_Diffusion isfree="true" isDownladable="true" isOrderable="false" file_size="" size_unit="" file_type=""/>
      </sdi:ex_Metadata>
      <sdi:ex_Version name="2013-10-08 13:03:42"/>
      <sdi:ex_Resourcetype name="Geoproduct" alias="Geoproduct">
        <sdi:ex_Logo path="" width="36" height="36"/>
      </sdi:ex_Resourcetype>
      <sdi:ex_Organism name="DEPTH SA">
        <sdi:ex_Logo path="" width="36" height="36"/>
      </sdi:ex_Organism>
    </sdi:ex_Resource>
    <sdi:links>
      <sdi:parents>
           <sdi:parent guid="46644f81-8fc5-4887-8b02-bd0f5e2cc7esd" title="Données XX" resourcename="Geoproduit X" resourcetype="Geoproduct"></sdi:parent>
      </sdi:parents>
      <sdi:children>
            <sdi:child guid="46644f81-8fc5-4887-8b02-bd0f5e2cc7esd" title="Données XX" resourcename="Layer X" resourcetype="Layer"></sdi:child>
      </sdi:children>
    </sdi:links>
    <sdi:applications/>
    <sdi:action>
    <sdi:extraction>
        <sdi:html>
        &lt;form class="form-horizontal form-inline form-validate" action="" method="post" id="adminForm" name="adminForm" 
        enctype="multipart/form-data"&gt;&lt;div class="sdi-shop-order well"&gt;&lt;div class="sdi-shop-properties" &gt;&lt;div 
        class="sdi-shop-properties-title" &gt;&lt;/div&gt;&lt;div class="row-fluid" &gt;&#13;
        &lt;div class="control-group"&gt;&#13;
        &lt;div class="control-label"&gt;&lt;label id="2-lbl" for="2" class="hasTip" title=""&gt;List multiple&lt;span     
        class="star"&gt;&nbsp;*&lt;/span&gt;&lt;/label&gt;&lt;/div&gt;&#13;
        &#13;
        &lt;div class="controls"&gt;&#13;
        &lt;select id="2" name="2[]"  class="sdi-shop-property-list inputbox required" multiple="multiple" 
        required="required"&gt;&lt;option value="2"&gt;Valeur 1&lt;/option&gt;&lt;option value="3"&gt;Valeur 
        2&lt;/option&gt;&lt;/select&gt;&#13;
        &lt;/div&gt;&lt;/div&gt;&#13;
        &lt;div class="control-group"&gt;&#13;
        &lt;div class="control-label"&gt;&lt;label id="4-lbl" for="4" class="hasTip" title=""&gt;check box&lt;span 
        class="star"&gt;&nbsp;*&lt;/span&gt;&lt;/label&gt;&lt;/div&gt;&#13;
        &#13;
        &lt;div class="controls"&gt;&#13;
        &lt;fieldset id="4" class="sdi-shop-property-checkbox "&gt;&lt;input type="checkbox" id="40" name="4" value="6" /&gt;&#13;
        &lt;label for="40"&gt;&#13;
        check box 1&lt;/label&gt;&lt;input type="checkbox" id="41" name="4" value="7" /&gt;&#13;
        &lt;label for="41"&gt; check box 2&lt;/label&gt;&#13;
        &lt;/fieldset&gt;&#13;
        &lt;/div&gt;&#13;
        &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/form&gt;&#13;
        &lt;div class="sdi-shop-toolbar-add-basket pull-right"&gt;&#13;
        &lt;button id="sdi-shop-btn-add-basket" class="btn btn-success btn-small" onclick="Joomla.submitbutton(); return 
        false;"&gt;Add to basket&lt;/button&gt;&#13;
        &lt;input type="hidden" name="diffusion_id" id="diffusion_id" value="4" /&gt;&#13;
        &lt;/div&gt;&#13;
        &lt;/div&gt;
        </sdi:html>
      </sdi:extraction>
      <sdi:download>
        <sdi:link>http://localhost/sdi4a8/index.php?option=com_easysdi_shop&amp;task=download.direct&amp;id=4</sdi:link>
      </sdi:download>
      <sdi:downloadright>
        <sdi:tooltip username="Thomas Portier" email="tp@hop.com" />
      </sdi:downloadright>
      <sdi:view>
        <sdi:link>http://localhost/sdi4a8/index.php?option=com_easysdi_catalog&amp;view=preview&amp;metadataid=4</sdi:link>
      </sdi:view>
      <sdi:addtomap>
        <sdi:onclick> window.parent.app.addExtraLayer({id :"si17-wms",hidden : "true", ptype: "sdi_gxp_wmssource",url:  
            "http://localhost/si17"}, { name: "commune17",attribution: "",opacity: 1,source: "si17-wms",tiled: true,title: 
            "commune17",visibility: true, href: "http://localhost/sdi4a8/index.php?
            option=com_easysdi_catalog&amp;view=sheet&amp;guid=46644f81-8fc5-4887-8b02-bd0f5e2cc7et&amp;lang=fr-
            FR&amp;catalog=main&amp;preview=&amp;tmpl=component", download: "http://localhost/sdi4a8/index.php?
            option=com_easysdi_shop&amp;task=download.direct&amp;tmpl=component&amp;id=4", iwidth :"700", iheight :"500"})
         </sdi:onclick>
      </sdi:addtomap>
      <sdi:sheetview>
        <sdi:link>http://localhost/sdi4a8/index.php?option=com_easysdi_catalog&amp;view=sheet&amp;guid=46644f81-8fc5-4887-8b02-bd0f5e2cc7et&amp;lang=fr-FR&amp;catalog=main&amp;type=result&amp;preview=</sdi:link>
      </sdi:sheetview>
      <sdi:exportpdf>
        <sdi:link>http://localhost/sdi4a8/index.php?option=com_easysdi_catalog&amp;task=sheet.exportPDF&amp;id=46644f81-8fc5-4887-8b02-bd0f5e2cc7et&amp;lang=fr-FR&amp;catalog=main&amp;type=result&amp;preview=</sdi:link>
      </sdi:exportpdf>
      <sdi:exportxml>
        <sdi:link>http://localhost/sdi4a8/index.php?option=com_easysdi_catalog&amp;task=sheet.exportXML&amp;id=46644f81-8fc5-4887-8b02-bd0f5e2cc7et</sdi:link>
      </sdi:exportxml>
    </sdi:action>
    <sdi:links>
      <sdi:parents/>
      <sdi:children>
        <sdi:child guid="af9b359a-755d-7a74-e94f-3d1892d2e1e8" title="Couche de test enfant carte" resourcename="couche B" resourcetype="Layer" version="2013-10-08 12:07:56">
          <sdi:link>http://localhost/sdi4a20/index.php?option=com_easysdi_catalog&amp;view=sheet&amp;guid=af9b359a-755d-7a74-e94f-3d1892d2e1e8&amp;lang=fr-FR&amp;catalog=&amp;preview=editor&amp;type=</sdi:link>
        </sdi:child>
      </sdi:children>
    </sdi:links>
  </sdi:ExtendedMetadata>
</Metadata>

Search forms customization

Search forms are fully customizable by the EasySDI administrator. What you have to know before starting to customize :

  • search forms are context-dependant : for each context (you defined before), you can associate one search form
    This is a nice feature to propose various search forms, for example adapting the interface to users needs/skills.
  • search forms have to levels :simple and advanced.
    Simple level is always displayed on the frontend catalog whereas "advanced level" is displayed on user'a action (click on "Advanced search")
  • 3 types of fields search are available :
    • System : search based on EasySDI database content (for example metadata version) and not metadata content itself
    • CSW : search based on CSW node in the metadata XML. To add a ne CSW search field, go to the panel of search creteria of a catalog context and click on New
    • Relation : search based on relations defined in the EasySDI metadata model. To add a new relation based search field, go to admin panel -> EasySDI -> catalog -> relation. Chose a relation and manege the search field in the search tab
  • In addition to form fields search, context can hold a fixed CSW clause filter defined by the administrator and applied to all performed searches
    <ogc:PropertyIsEqualTo>
      <ogc:PropertyName>myproperty</ogc:PropertyName>
      <ogc:Literal>myvalue</ogc:Literal>
    </ogc:PropertyIsEqualTo>
    

Metadata status and visibility

Metadata can have 3 status :

  • In progress -> Content is in editing mode
  • Validated -> Content is validated by editor(s) and metadata is ready for publication
  • Published -> Metadata is published online (and visible according to visibility parameters)

Ressource visibility can be set to :

  • Public (visible to anyone)
  • Organism (visible to a list of organisms)
  • User (visible to a ist of users)

Visibility is definable in frontend panel when editing resources

Resources editing rules

The administrator of the plateform can manage for each user the roles he will have for each organism.

When a resource manager create an new resource, he will have to select for each role authorized users.

Role Actions
Resource Manager manage ressource (resource's versions): create, edit, delete, publish, ...
Metadata Responsible validate, update (after validation), and archive metadata
Metadata Editor edit metadata (before validation)
Diffusion Manager manage resource's download and extraction configuration
Extraction Responsible execute resources' extraction when orders must be manually treated

SiteMap

The catalog can expose a specific sitemap easing the search engines to find metadatas.
This sitemap can be accessed with this specific url : [web site]/component/easysdi_catalog/sitemap/generateSitemap

Diagram1.png (13.6 KB) Portier Thomas, 03/28/2014 02:48 PM

shem.png (36.5 KB) Portier Thomas, 03/28/2014 02:48 PM

XML2HTML.xsl (79.3 KB) Portier Thomas, 03/28/2014 03:49 PM

catalog_xsl.zip (81.5 KB) Portier Thomas, 04/04/2014 12:07 PM

import_ISO19139.sql (238 KB) Blatti Yves, 02/12/2016 11:28 AM