GeoNetwork – Personalización avanzada – Adaptamos



GeoNetwork – Personalización avanzada – Adaptamos

0 0


geonetwork-jiide2016

Slides on how to customize GeoNetwork 3: Multilanguage, profiles, look & feel, search interface

On Github oscarfonts / geonetwork-jiide2016

GeoNetwork

Personalización avanzada

http://fonts.cat/geonetwork-jiide2016

Nosotros

Óscar Fonts María Arias de Reyna Víctor González

Servidores de test

Docker oscarfonts/geonetwork

GeoCat Demo Server

Despliegue

$GN_BASE /var/lib/tomcat7/webapps/geonetwork/

$GN_DATA_DIR /var/local/geonetwork_data/

PostGIS

GN_BASE => WEB-INF/config-node/srv.xml


<import resource="../config-db/postgres.xml"/>
                        

GN_BASE => WEB-INF/config-db/jdbc.properties

jdbc.host=127.0.0.1
jdbc.port=5432
jdbc.database=gn_db
jdbc.username=gn_user
jdbc.password=gn_pass
                        

GN_BASE => WEB-INF/config-db/postgres.xml

...
<import resource="postgis-alternate-datasource.xml"></import>
...
<bean id="jdbcDriverClassName" class="java.lang.String">
    
    <constructor-arg value="org.postgis.DriverWrapper"></constructor-arg>
</bean>
...
<bean id="jdbcURL" class="java.lang.String">
    
    <constructor-arg value="jdbc:postgresql_postGIS://${jdbc.host}:${jdbc.port}/${jdbc.database}"></constructor-arg>
</bean>
...
                        

Schema Plugin

Lo que necesito

Busco lo más parecido

Adaptamos

XSD

Metadata View

recordView.html

Editor

config-editor.xml

Schematron

Mi esquema

Metadata 101

Ejemplo metadato extendido

<?xml version="1.0" encoding="UTF-8"?>
<acme:MD_Metadata xmlns="http://www.isotc211.org/2005/gmd"
                  xmlns:acme="http://example.com/schema/acme"
                  xmlns:gco="http://www.isotc211.org/2005/gco"
                  xmlns:gmd="http://www.isotc211.org/2005/gmd"
                  gco:isoType="gmd:MD_Metadata">
    
    <acme:myFields>
        <acme:myTextField>My Free Text Content</acme:myTextField>
        <acme:codelistField>
            <acme:codelistValue>CATEGORY_1</acme:codelistValue>
        </acme:codelistField>
        <acme:dateField>
            <gco:Date>1931-04-14</gco:Date>
        </acme:dateField>
    </acme:myFields>
</acme:MD_Metadata>
                    

Multiidioma

Transifex

https://www.transifex.com/geonetwork/core-geonetwork/

Multiidioma

Schema Plugins (XML)

GN_DATA_DIR => config/schema_plugins/[iso19139]/loc/[spa]/*.xml

strings.xml

labels.xml

<element name="gmd:MD_Metadata" id="1.0">
    <label>Metadatos</label>
    <abbrLabel>Metadatos</abbrLabel>
    <description>Entidad raíz que define los metadatos de un recurso o recursos</description>
</element>
                        

codelists.xml

<codelist name="gmd:CI_PresentationFormCode">
    <entry>
        <code>documentDigital</code>
        <label>Documento digital</label>
        <description>...</description>
    </entry>
    <entry>
        <code>imageDigital</code>
        <label>Imagen digital</label>
        <description>...</description>
    </entry>
    ...
</codelist>
                        

Multiidioma

Los metadatos

1. El idioma principal
<gmd:language>
    <gmd:LanguageCode codeListValue="spa" codeList="http://www.loc.gov/standards/iso639-2/"></gmd:LanguageCode>
</gmd:language>
                        
2. Definir idiomas secundarios
<gmd:locale>
    <gmd:PT_Locale id="en">
        <gmd:languageCode>
            <gmd:LanguageCode codeList="http://www.loc.gov/standards/iso639-2/" codeListValue="eng"/>
        </gmd:languageCode>
        <gmd:characterEncoding>
            <gmd:MD_CharacterSetCode codeList="http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/ML_gmxCodelists.xml#MD_CharacterSetCode"
                                     codeListValue="utf8"/>
        </gmd:characterEncoding>
    </gmd:PT_Locale>
</gmd:locale>
<gmd:locale>...</gmd:locale>
                        
3. Textos multilingües
<gmd:xxxxxxxxx xsi:type="gmd:PT_FreeText_PropertyType">
    <gco:CharacterString>Texto en el idioma principal</gco:CharacterString>
    <gmd:PT_FreeText>
        <gmd:textGroup>
            <gmd:LocalisedCharacterString locale="#en">Text in secondary language</gmd:LocalisedCharacterString>
        </gmd:textGroup>
        <gmd:textGroup>...</gmd:textGroup>
    </gmd:PT_FreeText>
</gmd:xxxxxxxxx>
                        

Multiidioma

Ejemplo formulario de edición

Interfaz personalizada

Partir de: GN_BASE => catalog/views/default

O bien del código fuente:/web-ui/src/main/resources/catalog/views/default

Copiar contenido de default en otra carpeta (p. ej. custom), que llamaremos CUSTOM_VIEW_DIR, y editar su contenido.

Plantillas HTML

CUSTOM_VIEW_DIR => templates/*.html

  • Plantillas HTML para las vistas públicas: home, map, search, result, recordView
  • Basadas en Bootstrap y Angular
  • Cambiar contenidos (p. ej. cabecera)

Estilos CSS (LESS)

CUSTOM_VIEW_DIR => less/gn_view.less

  • Fichero de estilos vacío, preparado para recibir estilos personalizados
  • Basado en Bootstrap, se pueden usar plantillas existentes
  • Cambiar tipografías, colores y maquetación fina

Cómo depurar

  • Partir del código fuente y compilar con maven
  • Servidor de test con mvn jetty:run -Denv=dev para evitar caché (wro4j)
  • Añadir parámetro debug=true en la URL para no minificar recursos CSS y JS

Búsqueda y resultados

Búsqueda y resultados

Añadir campo al índice lucene

GN_BASE => WEB-INF/config-lucene.xml

Añadir clasificación "facetted"

GN_BASE => WEB-INF/config-summary.xml

Muestra de resultados

  • GN_BASE => catalog/views/custom/directives/partials/infolist.html
  • GN_BASE => catalog/components/search/resultsview/partials/viewtemplates/grid.html
  • GN_BASE => catalog/views/custom/templates/recordView.html
www.geomati.co | www.geocat.net

http://fonts.cat/geonetwork-jiide2016

GeoNetwork Personalización avanzada http://fonts.cat/geonetwork-jiide2016