-
Notifications
You must be signed in to change notification settings - Fork 0
Operaciones frecuentes
- Agregar un metadato
- Eliminar un metadato
-
Modificar metadatos del formulario de carga
- Agregar un nuevo tipo de documento
- Agregar nuevo campo
- Configurar obligatoriedad del campo
- Configurar carga para usuario de Submission y Workflow
- Configurar campo para que sea repetible
- Permitir seleccionar el lenguaje relativo al metadato
- Seleccionar valores de una lista desplegable
- Hacer el campo controlado por autoridad
- Definir submission y workflow para una colección específica
- Agregar nuevos pasos y alterar el flujo de ejecución
- Plantillas de correo
- Cambiar mensajes del formulario de carga
- Mensajes en XMLUI
- Mensajes en Discovery
- Mensajes en páginas estáticas
- No indexar ciertos metadatos
- Cambiar facets (agregar o quitar)
- Cambiar cantidad de items listados en resultados de búsqueda
- Personalizar filtros y facets
- Facets jerárquicos
- Opciones de ordenamiento
- Configuración específica por colección
- Mapear un nuevo metadato
- Revisar los datos que estan siendo indexados en el core OAI de solr
- Agregar un nuevo formato
- Agregar un nuevo contexto
- Agregar o modificar un nuevo tipo documento para OAI
- Validar perfil de metadatos ante el SNRD
- Activar/desactivar estadísticas al público
- Agregar direcciones de IPs de bots/spiders a la lista de direcciones que deben ser omitidas en las estadísticas
- Modificar la visualización de la página de estadísticas
- Reindexar el core statistics
- Cambiar layout: header, footer, etc
- Home
- Community list
- Vista de un ítem
- Páginas estáticas
- Visualización de listados de discovery
- Ver DRI relativo a una página
- Agregar otro administrador del sistema
- Ver el valor actual de una propiedad de configuración
- Mantenimiento del índice de búsqueda
- Mantenimiento del índice de OAI
- Cargar nuevos metadatos al sistema
- Testear configuración de email
- Como modificar mensajes de email
ADVERTENCIA IMPORTANTE: antes de realizar cualquier acción es importante hacer un BACKUP de la base de datos!!!!!!
Existen situaciones donde será necesario agregar un nuevo metadato al repositorio, y que no se encuentre en la base de datos. Generalmente, un metadato tiene la siguiente forma: <schema>.<element>.<qualifier>
. El tercer elemento <qualifier>
puede ser opcional.
-
Agregar todos los metadatos propios de la instancia de DSpace actual en
config/registries/sedici-metadata.xml
-
Si se trata de un schema nuevo, agregar los datos del mismo en una etiqueta
<dc-schema>
similar al siguiente fragmento de XML:<dc-schema> <name>{nombre_schema}</name> <namespace>{url_namespace}</namespace> </dc-schema>
-
Agregar el metadato en cuestión utilizando una etiqueta
<dc-type>
similar al siguiente fragmento XML:
<dc-type>
<schema>{nombre_schema}</schema>
<element>{nombre_element}</element>
[<qualifier>{nombre_qualifier}</qualifier>]
<scope_note>{texto descriptivo del metadato}</scope_note>
</dc-type>
En éste caso, la presencia de corchetes en el elemento <qualifier>
indica que, durante el agregado de un metadato, este elemento es optativo.
-
Abrir el archivo
config/input-forms.xml
. -
Ubicar la página (etiqueta
<page>
) en la que el campo debe mostrarse. -
Agregar el siguiente fragmento de código, completando u omitiendo según corresponda:
<field> <dc-schema>{schema}</dc-schema> <dc-element>{element}</dc-element> [<dc-qualifier>{qualifier}</dc-qualifier>] <label>{Label para mostrar en el formulario}</label> <input-type [value-pairs-name="nombre_del_value_pair"]>{tipo de campo en el formulario}</input-type> [<hint>{Texto de ayuda al usuario, para que sepa qué debe cargar en este campo}</hint>] [<required>{Texto de error a mostrar si no se completa este campo}</required>] [<visibility>{workflow|submit}</visibility>] [<vocabulary>{nombre_del_xml_sin_la_extension}</vocabulary>] [<type-bind>{valor de dc.type al cual este campo se restringe}</type-bind>] </field>
-
Si el metadato utiliza un
<value-pairs>
, agregar el atributo<input-type value-pairs-name="{value-pairs-name}">
. Los<value-pairs>
se definen en la sección<form-value-pairs>
al final del archivo, usando la siguiente estructura:<value-pairs value-pairs-name="value-pairs-name"> <pair> <displayed-value>{label a mostrar en el formulario}</displayed-value> <stored-value>{valor que se almacenará en el metadato}</stored-value> </pair> ... ... </value-pairs>
Para utilizar estos elementos es necesario que el metadato en cuestión este configurado como <dc-type value-pairs-name="...">dropdown</dc-type>
o <dc-type value-pairs-name="...">qualdrop-value</dc-type>
.
Si se utiliza un vocabulario controlado usando el plugin de DSpace (elemento ), asegurarse que exista el xml en el directorio config/controlled-vocabularies
, con la estructura correspondiente.
Si el metadato será controlado usando otros plugins (Autores, jerarquias, tesauros, etc), hay que configurarlo en el archivo config/dspace.cfg
, en la sección Authority Control Settings
- Agregar las traducciones necesarias (por lo menos el label del campo) en el archivo
dspace/modules/xmlui/src/main/webapp/i18n/messages[_XX].xml
correspondiente. El 'XX' indica el lenguaje en el que se encuentran los traducciones de un archivo en particular, p.e. 'messages_es.xml' contiene las traducciones en español.
Si corresponde, editar los archivos de mapeos ubicados en https://github.com/sedici/DSpace/tree/master/dspace/config/crosswalks para incluir el nuevo metadato en la lista de mapeos (OAI, Google Scholar, Sword, RSS/Atom/OpenSearch).
- Loguearse en DSpace como un administrador del sitio
- Acceder a la opción @Formato de Metadatos@ del menú de administración
- Si el schema a utilizar no existe, crearlo en esta pantalla
- Seleccionar el schema a utilizar (haciendo click en su nombre)
- Verificar que el metadato a ingresar no exista previamente en la base de datos
- En el primer formulario que aparece (@Añadir nuevos campos de metadatos@) ingresar el nombre del elemento y el calificador, y en lo posible un nota descriptiva del metadato (su motivación y dominio)
- Click sobre el boton @Añadir un nuevo campo de metadato@
- Verificar que el nuevo metadato se encuentre cargado en el listado
ADVERTENCIA IMPORTANTE: antes de realizar cualquier acción es importante hacer un BACKUP de la base de datos!!!!!!
Eliminar un metadato implica básicamente 2 acciones a nivel de base de datos:
- Eliminar cualquier metadato correspondiente en la tabla
metadatavalue
. - Eliminar el metadato de la tabla
metadatafieldregistry
.
Según la forma de eliminación que se utilice, estas acciones se pueden realizar automáticamente o manualmente.
1 - Primero se debe saber cuál es el metadata_field_id
del metadato a eliminar (supongamos 'XY') y luego ejecutar la siguiente eliminación SQL:
DELETE FROM metadatavalue WHERE metadata_field_id = 'XY';
2 - Luego eliminar el metadato de la tabla metadatafieldregistry
:
DELETE FROM metadatafieldregistry WHERE metadata_field_id = 'XY';
3 - Luego eliminar cada referencia al metadato en los archivos del sistema correspondientes a: registries, crosswalks, input-forms, y vista de XMLUI.
- Loguearse en DSpace como un administrador del sitio.
- Acceder a la opción Registros > Metadatos del menú de administración (URL admin/metadata-registry).
- Seguir el enlace sobre el schema correspondiente al metadato a eliminar.
- Seleccionar el checkbox correspondiente al metadato a eliminar en la tabla inferior y apretar el botón de borrado.
- Confirmar la eliminación.
La desventaja de este método es que no realiza las eliminaciones en los archivos del sistema como se realiza en el paso 3 de la eliminación manual.
Para agregar un nuevo tipo de documento, modificar input-forms.xml
Ejemplo donde se muestra como agregar el tipo "Documento de trabajo".
<value-pairs value-pairs-name="sedici_types" dc-term="dc_type">
<pair>
...
<displayed-value>Documento de trabajo</displayed-value>
<stored-value>sedici:types/articulo/documento_de_trabajo</stored-value>
...
</pair>
</value-pairs>
De ser necesario mapear en OAI, ver Agregar un nuevo tipo documento para OAI
Agregar un campo para el metadato 'thesis.degree'
<field>
:
<field>
<dc-schema>thesis</dc-schema>
<dc-element>degree</dc-element>
<dc-qualifier>level</dc-qualifier>
<label>Nivel de grado de la Tesis</label>
<input-type>onebox</input-type>
<hint>Indique el nivel de grado de su trabajo de Tesis según los valores especificados en el estándar de NDLTD.</hint>
</field>
Tener en cuenta que esta forma no tiene básicamente ninguna restricción sobre su visualización.
Utilizar el tag <type-bind>
.
<field>
<dc-schema>thesis</dc-schema>
<dc-element>degree</dc-element>
<dc-qualifier>level</dc-qualifier>
<label>Nivel de grado de la Tesis</label>
<input-type>onebox</input-type>
<hint>Indique el nivel de grado de su trabajo de Tesis según los valores especificados en el estándar de NDLTD.</hint>
<type-bind>Tesis</type-bind>
</field>
Utilizar el campo <required>
(además podemos indicar qué mensaje mostrarle al usuario cuando no completa este campo).
<field>
<dc-schema>thesis</dc-schema>
<dc-element>degree</dc-element>
<dc-qualifier>level</dc-qualifier>
<label>Nivel de grado de la Tesis</label>
<input-type>onebox</input-type>
<hint>Indique el nivel de grado de su trabajo de Tesis según los valores especificados en el estándar de NDLTD.</hint>
<type-bind>Tesis</type-bind>
<required>¡Este campo no puede estar vacío! Debe indicar el grado correspondiente a la Tesis.</required>
</field>
Los formularios del input-forms.xml
son utilizados tanto en el proceso de Submission como en el de Workflow.
Si quisiéramos ocultar el campo para el Submission configuramos para que sólo aparezca en el Workflow:
<field>
<dc-schema>thesis</dc-schema>
<dc-element>degree</dc-element>
<dc-qualifier>level</dc-qualifier>
<label>Nivel de grado de la Tesis</label>
<input-type>onebox</input-type>
<hint>Indique el nivel de grado de su trabajo de Tesis según los valores especificados en el estándar de NDLTD.</hint>
<type-bind>Tesis</type-bind>
<required>¡Este campo no puede estar vacío! Debe indicar el grado correspondiente a la Tesis.</required>
<visibility>workflow</visibility>
</field>
Si quisiéramos que este campo sea visible para el usuario común pero utilizando un <hint>
más sencillo, debemos agregar un campo adicional:
<!-- Sólo visible durante Submission-->
<field>
<dc-schema>thesis</dc-schema>
<dc-element>degree</dc-element>
<dc-qualifier>level</dc-qualifier>
<!-- ... -->
<hint>Indique el nivel de grado de su trabajo de Tesis.</hint>
<!-- ... -->
<visibility>submit</visibility>
</field>
<!-- Sólo visible durante Workflow-->
<field>
<dc-schema>thesis</dc-schema>
<dc-element>degree</dc-element>
<dc-qualifier>level</dc-qualifier>
<!-- ... -->
<hint>Indique el nivel de grado de su trabajo de Tesis. Utilice alguno de los valores especificados en el estándar de NDLTD para definir los niveles de educación relacionado a una Tesis.</hint>
<!-- ... -->
<visibility>workflow</visibility>
</field>
Utilizar el tag <repeatable>
. Esta configuración acepta los valores true
o false
.
<field>
<dc-schema>thesis</dc-schema>
<dc-element>degree</dc-element>
<dc-qualifier>level</dc-qualifier>
<label>Nivel de grado de la Tesis</label>
<input-type>onebox</input-type>
<hint>Indique el nivel de grado de su trabajo de Tesis según los valores especificados en el estándar de NDLTD.</hint>
<type-bind>Tesis</type-bind>
<repeatable>true</repeatable>
<required>¡Este campo no puede estar vacío! Debe indicar el grado correspondiente a la Tesis.</required>
<visibility>workflow</visibility>
</field>
Es común que a veces un metadato almacene texto en un lenguaje distinto al propio, por ejemplo en Portugués. DSpace permite indicar para cada metadato almacenado en la base de datos el lenguaje correspondiente al mismo. Para permitir la selección del lenguaje desde el formulario, es necesario agregar el tag <language>
indicando en el mismo el value-pair que tendrá los lenguajes.
<field>
<dc-schema>thesis</dc-schema>
<dc-element>degree</dc-element>
<dc-qualifier>level</dc-qualifier>
<label>Nivel de grado de la Tesis</label>
<input-type>onebox</input-type>
<hint>Indique el nivel de grado de su trabajo de Tesis según los valores especificados en el estándar de NDLTD.</hint>
<type-bind>Tesis</type-bind>
<repeatable>true</repeatable>
<required>¡Este campo no puede estar vacío! Debe indicar el grado correspondiente a la Tesis.</required>
<visibility>workflow</visibility>
<language value-pairs-name="language_values">true</language>
</field>
<!-- ... -->
<form-value-pairs>
<value-pairs value-pairs-name="language_values" dc-term="{cualquier_valor}">
<pair>
<displayed-value>Español</displayed-value>
<stored-value>es</stored-value>
</pair>
<pair>
<displayed-value>Inglés</displayed-value>
<stored-value>en</stored-value>
</pair>
<pair>
<displayed-value>Portugués</displayed-value>
<stored-value>pt</stored-value>
</pair>
</value-pairs>
</form-value-pairs>
Podemos configurar el campo para que se visualice como un <select> HTML utilizando un tipo de campo dropdown y levante los valores necesarios de un <value-pairs>
:
<field>
<dc-schema>thesis</dc-schema>
<dc-element>degree</dc-element>
<dc-qualifier>level</dc-qualifier>
<label>Nivel de grado de la Tesis</label>
<input-type value-pairs-name="thesis_degree_levels">dropdown</input-type>
<hint>Indique el nivel de grado de su trabajo de Tesis según los valores especificados en el estándar de NDLTD.</hint>
<type-bind>Tesis</type-bind>
<required>¡Este campo no puede estar vacío! Debe indicar el grado correspondiente a la Tesis.</required>
<visibility>workflow</visibility>
</field>
<!-- ... -->
<form-value-pairs>
<value-pairs value-pairs-name="thesis_degree_levels" dc-term="{cualquier_valor}">
<pair>
<displayed-value>Undergraduate (pre-masters)</displayed-value>
<stored-value>0</stored-value>
</pair>
<pair>
<displayed-value>Masters (pre-doctoral)</displayed-value>
<stored-value>1</stored-value>
</pair>
<pair>
<displayed-value>Doctoral (includes post-doctoral)</displayed-value>
<stored-value>2</stored-value>
</pair>
</value-pairs>
</form-value-pairs>
--> TODO <-- !!!!
Índice
- Definir submission y workflow para una colección específica.
- Agregar nuevos pasos y alterar el flujo de ejecución
Definiremos un Workflow y Submission específicos para una colección en particular, ejemplificando con una colección ficticia llamada "Videos Institucionales", cuyo handle es "123456789/99".
Se realizarán:
- cambios en el Submission: agregar paso que permita subir los subtítulos correspondientes al video que está subiendo.
- cambios en el Workflow: agregar paso que permita revisar y añadir/editar subtítulos de los videos subidos.
Tanto para el Submission como para el Workflow, en cada uno de los procesos para la colección "123456789/99" reutilizaremos la mayoría de los pasos que vienen por defecto, pero realizaremos algunas modificaciones.
item-submission.xml
<submission-map>
<name-map collection-handle="123456789/99" submission-name="videos" />
<!-- ... -->
</submission-map>
<submission-process name="videos">
<step>
<processing-class>org.dspace.submit.step.SkipInitialQuestionsStep</processing-class>
</step>
<!--This Step will be to Describe the item.-->
<step>
<heading>submit.progressbar.describe</heading>
<processing-class>org.dspace.submit.step.DescribeStep</processing-class>
<jspui-binding>org.dspace.app.webui.submit.step.JSPDescribeStep</jspui-binding>
<xmlui-binding>org.dspace.app.xmlui.aspect.submission.submit.DescribeStep</xmlui-binding>
<workflow-editable>true</workflow-editable>
</step>
<!--This Step will be to Upload the item -->
<step>
<heading>submit.progressbar.upload</heading>
<processing-class>org.dspace.submit.step.UploadStep</processing-class>
<jspui-binding>org.dspace.app.webui.submit.step.JSPUploadStep</jspui-binding>
<xmlui-binding>org.dspace.app.xmlui.aspect.submission.submit.UploadStep</xmlui-binding>
<workflow-editable>true</workflow-editable>
</step>
<!--This Step will be to select a Creative Commons License-->
<step>
<heading>submit.progressbar.CClicense</heading>
<processing-class>org.dspace.submit.step.CCLicenseStep</processing-class>
<jspui-binding>org.dspace.app.webui.submit.step.JSPCCLicenseStep</jspui-binding>
<xmlui-binding>org.dspace.app.xmlui.aspect.submission.submit.CCLicenseStep</xmlui-binding>
<workflow-editable>false</workflow-editable>
</step>
<!--This Step will be to Verify/Review everything -->
<step>
<heading>submit.progressbar.verify</heading>
<processing-class>org.dspace.submit.step.VerifyStep</processing-class>
<jspui-binding>org.dspace.app.webui.submit.step.JSPVerifyStep</jspui-binding>
<xmlui-binding>org.dspace.app.xmlui.aspect.submission.submit.ReviewStep</xmlui-binding>
<workflow-editable>true</workflow-editable>
</step>
</submission-process>
El orden de ejecución de los pasos en el Submission es estrictamente igual al orden en que son declarados en este archivo.
workflow.xml
<workflow-map>
<name-map collection="123456789/99" workflow="videos"/>
</workflow-map>
<workflow start="VIDEO-ADMIN_review" id="videos">
<roles>
<role id="Administrador_Videos_Institucionales" name="VIDEO-ADMIN" scope="repository" description="Rol asigando para las personas encargadas de gestionar los videos institucionales, principalmente a partir de la carga en la colección de 'Videos Institucionales'."/>
</roles>
<step id="VIDEO-ADMIN_review" role="Administrador_Videos_Institucionales" userSelectionMethod="claimaction">
<actions>
<action id="editaction"/>
</actions>
</step>
</workflow>
Esta configuración de workflow para la colección "123456789/99" sólo consta de un único paso encargado de editar los metadatos y aprobar el item enviado para su publicación. Además, debe crearse un grupo del sistema llamado "VIDEO-ADMIN" para que el workflow asigne al conjunto de personas vinculadas a ese grupo la ejecución del mismo. Mediante el uso del userSelectionMethod="claimaction"
se indica que se asigne las acciones de este paso a cualquier persona perteneciente al grupo "VIDEO-ADMIN".
Supongamos que partimos de un flujo convencional de DSpace como el anterior, y que a éste queremos agregarle <step>
adicionales que se encarguen de acciones específicas sobre los videos subidos, como la posibilidad de anexarle un archivo de subtítulos, verificación de contenido del video, etc.
Para agregar nuevos pasos y modificar el flujo de ejecución hay que tener en cuenta distintas consideraciones en cada situación.
En este caso modificaremos el flujo normal para permitir que el usuario pueda subir conjuntamente un video y sus respectivos subtítulos (éstos podrían ser optativos). Si sólo utilizamos XMLUI, será necesario crear un step XMLUI especial que reemplace al org.dspace.app.xmlui.aspect.submission.submit.UploadStep
declarado más arriba. Para esto habría que crear , p.e., una nueva clase JAVA org.dspace.app.xmlui.aspect.submission.submit.VideoUploadStep
que permita para los archivos de tipo video la posibilidad de anexarle un archivo de texto WebVVT en distintos idiomas. Además debemos crear otra clase JAVA org.dspace.app.xmlui.aspect.submission.submit.VideoUploadStep
que procese los datos enviados por el usuario, genere los metadatos correspondientes y retorne algún código de estado (código que informa si la ejecución fue exitosa o no). En este paso, todos estos archivos que están relacionados podrían ser conjuntamente identificados nombrándolos de la siguiente forma:
- el_video_original.mp4
- el_video_original_es.mp4 (subtítulos en idioma Español) [se agrega un flag indicando que es el idioma original del video]
- el_video_original_en.mp4 (subtítulos en idioma Inglés)
- etc...
<submission-process name="videos">
<!-- ... -->
<!--This Step will be to Upload the item -->
<!-- <step>
<heading>submit.progressbar.upload</heading>
<processing-class>org.dspace.submit.step.UploadStep</processing-class>
<jspui-binding>org.dspace.app.webui.submit.step.JSPUploadStep</jspui-binding>
<xmlui-binding>org.dspace.app.xmlui.aspect.submission.submit.UploadStep</xmlui-binding>
<workflow-editable>true</workflow-editable>
</step>
-->
<step>
<heading>submit.progressbar.upload</heading>
<processing-class>org.dspace.submit.step.VideoUploadStep</processing-class>
<xmlui-binding>org.dspace.app.xmlui.aspect.submission.submit.VideoUploadStep</xmlui-binding>
<workflow-editable>true</workflow-editable>
</step>
<!-- ... -->
</submission-process>
En este ejemplo no se específico ninguna clase JSPUI ya que no es necesario si utilizamos la interfaz web XMLUI. Además orden de ejecución de los pasos quedó exactamente igual, ya que simplemente realizamos un reemplazo del paso original poniendo el nuevo paso inmediatamente abajo.
Se agregará pasos con acciones que permitan:
- Verificar si el contenido de los videos son aptos para ser subidos al sitio (caso contrario rechazarlos)
- Crear/corregir archivos WebVTT para los archivos de video subidos.
Para hacer ésto se definirá un flujo específico de ejecución.
workflow.xml
<workflow start="VIDEO-ADMIN_review" id="videos">
<roles>
<role id="Administrador_Videos_Institucionales" name="VIDEO-ADMIN" scope="repository" description="Rol asigando para las personas encargadas de gestionar los videos institucionales, principalmente a partir de la carga en la colección de 'Videos Institucionales'."/>
</roles>
<step id="VIDEO-ADMIN_review" role="Administrador_Videos_Institucionales" userSelectionMethod="claimaction">
<alternativeOutcome>
<step status="1234">reject_videos</step>
</alternativeOutcome>
<actions>
<action id="videoreview"/>
<action id="addvideosubtitles"/>
<action id="editaction"/>
</actions>
</step>
<step id="reject_videos" role="Administrador_Videos_Institucionales" userSelectionMethod="claimaction">
<actions>
<action id="videomarkandreject"/>
</actions>
</step>
</workflow>
Como primer acción definiremos una evaluación del contenido de los videos, de tal forma de que se rechace el envío si es que no cumple con las políticas de contenido del repositorio. Habrá que agregar una clase JAVA org.dspace.app.xmlui.aspect.xmlworkflow.actions.processingaction.VideoReviewAction
que implemente la vista, y tendrá que permitir:
- visualizar los distintos videos,
- añadir botones que permitan "Aceptar contenido/Rechazar contenido/Cancelar revisión".
Agregar la siguiente configuración en el archivo de beans dspace/config/spring/xmlui/workflow-actions-xmlui.xml
<bean id="videoreview_xmlui" class="org.dspace.app.xmlui.aspect.xmlworkflow.actions.processingaction.VideoReviewAction"/>
Además se tendrá que crear otra clase JAVA org.dspace.xmlworkflow.state.actions.processingaction.VideoReviewAction
que procese los datos enviados por el revisor. Se añadirá la siguiente configuración en el archivo de beans dspace/config/spring/api/workflow-actions.xml
<!-- Decalaramos la clase que implementa la acción de revisión de videos -->
<bean id="videoreviewAPI" class="org.dspace.xmlworkflow.state.actions.processingaction.VideoReviewAction" scope="prototype"/>
<!-- Instanciamos un WorkflowActionConfig para que "levante" nuestra acción cada vez que es invocada... -->
<bean id="videoreview" class="org.dspace.xmlworkflow.state.actions.WorkflowActionConfig" scope="prototype">
<constructor-arg type="java.lang.String" value="videoreview"/>
<property name="processingAction" ref="videoreviewAPI"/>
<property name="requiresUI" value="true"/>
</bean>
Esta acción retornará distintos códigos de estado según la ejecución: "0" si se aprobaron todos los videos, "1234" si se verifica que algunos de los videos no es apto y se debe rechazar.
Como segunda acción se definirá una página que brinde la posibilidad de: reproducir los videos subidos, crear o corregir subtítulos en distintos idiomas, verificar que los subtítulos estén correctamente alineados en el tiempo. Para realizar ésto podríamos usar la librería JavaScript video.js para manipular fácilmente video y subtítulos en una página HTML (como se ve en este ejemplo).
Para ésto se realizarán las configuraciones necesarias en los archivos correspondientes:
workflow-actions-xmlui.xml
<bean id="addvideosubtitles_xmlui" class="org.dspace.app.xmlui.aspect.xmlworkflow.actions.processingaction.AddVideoSubtitles"/>
workflow-actions.xml
<!-- Decalaramos la clase que implementa la acción de revisión de videos -->
<bean id="addvideosubtitlesAPI" class="org.dspace.xmlworkflow.state.actions.processingaction.AddVideoSubtitles" scope="prototype"/>
<!-- Instanciamos un WorkflowActionConfig para que "levante" nuestra acción cada vez que es invocada... -->
<bean id="addvideosubtitles" class="org.dspace.xmlworkflow.state.actions.WorkflowActionConfig" scope="prototype">
<constructor-arg type="java.lang.String" value="addvideosubtitles"/>
<property name="processingAction" ref="addvideosubtitlesAPI"/>
<property name="requiresUI" value="true"/>
</bean>
Si los dos pasos anteriores se ejecutaron sin problemas, sigue el paso de editar el item. Esta es una acción nativa en DSpace y permite:
- editar los metadatos del item,
- aprobar el item para continuar con el workflow,
- ó rechazar el item por algún motivo.
Luego de la exitosa ejecución de este paso, el item se archivará en el repositorio y quedará accesible al público.
DSpace envía emails a los usuarios pertinentes, ante determinados eventos (archivo de una publicación en el repositorio, rechazo de un envío, etc.), a través una cuenta de correo institucional configurada desde la aplicación en el archivo dspace.cfg
. Los mensajes enviados desde la aplicación son internacionalizables y reciben parámetros dependiendo del contexto de ejecución.
Los archivos de configuración de los emails se encuentran bajo el directorio dspace/config/emails
. Para cada mensaje de email existente (originalmente están en inglés), hay varios derivados en otros idiomas (p.e. en español):
- change_password --> change_password_es
- feedback --> feedback_es
Los parámetros se escriben entre llaves:
# Item Archived email message
#
# {0} Title of submission
# {1} Name of collection
# {2} handle
#
Subject: sedici: Envío aprobado y archivado
Usted ha enviado: {0}
A la Colección: {1}
Tu envío ha sido aceptado y archivado en sedici,
y éste se le ha asignado el siguiente identificador:
{2}
Por favor, utilice este identificador cuando realiza una cita del material enviado.
Muchas Gracias.
sedici
- Abrir en editor el archivo
dspace/config/emails/change_password_es
- Cambiar el mensaje por el siguiente texto:
# Email sent to DSpace users when they forget their password.
#
# Parameters: {0} is expanded to a special URL
#
# See org.dspace.core.Email for information on the format of this file.
#
Subject: Solicitud de cambio de contraseña
Para cambiar la contraseña de tu cuenta en sedici, por favor haz click en el link inferior:
{0}
Si necesita asistencia con su cuenta, por favor comuniquese con el repositorio.
Si usted no ha solicitado un cambio de contraseña, ignore este mensaje. Disculpe las molestias.
sedici
- Recompilar la aplicación.
Ver Editar la visualización del ítem
Los archivos de internacionalización se encuentran en dspace/modules/xmlui/src/main/webapp/i18n.
Por ejemplo, en el archivo dspace/modules/xmlui/src/main/webapp/i18n/messages_es.xml uno podría cambiar el valor para la calve xmlui.general.dspace_home
modificando:
<message key="xmlui.general.dspace_home">Inicio</message>
Modificar mensajes en aspects/Discovery/i18n/messages_es.xml
Para internacionalizar los páginas estáticas se debe agregar un xhtml para cada páginas con su respectivo idioma.
Ver en https://github.com/sedici/DSpace/tree/master/dspace/modules/xmlui-mirage2/src/main/webapp/themes/Mirage2/page los archivos que-es-sedici_en.xhtml
y que-es-sedici_es.xhtml
donde al final del nombre del archivo se indica el lenguage con _es
para español y _en
para ingles.
Ejemplos de configuraciones en discovery.xml.
Como excluir los metadatos dc.description.provenance para items y dc.rights para comunidades/colecciones:
<property name="toIgnoreMetadataFields">
<map>
<entry>
<key><util:constant static-field="org.dspace.core.Constants.COMMUNITY"/></key>
<list>
<value>dc.rights</value>
</list>
</entry>
<entry>
<key><util:constant static-field="org.dspace.core.Constants.COLLECTION"/></key>
<list>
<value>dc.rights</value>
</list>
</entry>
<entry>
<key><util:constant static-field="org.dspace.core.Constants.ITEM"/></key>
<list>
<value>dc.description.provenance</value>
</list>
</entry>
</map>
</property>
Configurar un filtro de búsqueda que no está incluido como facet:
<bean id="searchFilterTitle" class="org.dspace.discovery.configuration.DiscoverySearchFilter">
<property name="indexFieldName" value="title"/>
<property name="metadataFields">
<list>
<value>dc.title</value>
</list>
</property>
</bean>
Las siguiente propiedades tienen como objetivo:
- indexFieldName: Nombre del filtro de búsqueda con el que solr indexara el metadato.
- metadataFields: Lista de los metadatos que deben ser incluidos en el facet.
Los facets extienden de los filtros de búsqueda agregando algunas propiedades como se muestra a continuación:
<bean id="searchFilterAuthor" class="org.dspace.discovery.configuration.DiscoverySearchFilterFacet">
<property name="indexFieldName" value="author"/>
<property name="metadataFields">
<list>
<value>dcterms.creator.author</value>
<value>dcterms.creator.compilator</value>
<value>dcterms.creator.corporate</value>
<value>dcterms.creator.editor</value>
</list>
</property>
<property name="facetLimit" value="10"/>
<property name="sortOrderSidebar" value="COUNT"/>
<property name="sortOrderFilterPage" value="COUNT"/>
</bean>
Despues de modificar sidebarFacets o searchFilters, es necesario reindexar items existentes corriendo [dspace]/bin/dspace index-discovery -b, sino los cambios no apareceran
Para implementar esta funcionalidad el valor del metadato debe estar compuesto por los términos divididos por un divisor. Por ejemplo "CARTOGRAPHY::PHOTOGRAMMETRY", donde Cartography y Photogrammetry son términos, dividos por "::".
El facet mostrará el nivel superior, y al cliquear en él el resto de los facets serán visualizados.
<bean id="searchFilterSubject" class="org.dspace.discovery.configuration.HierarchicalSidebarFacetConfiguration">
<property name="indexFieldName" value="subject"/>
<property name="metadataFields">
<list>
<value>dc.subject</value>
</list>
</property>
<property name="sortOrder" value="COUNT"/>
<property name="splitter" value="::"/>
<property name="skipFirstNodeLevel" value="false"/>
</bean>
Notar que la clase SidebarFacetConfiguration cambió a HierarchicalSidebarFacetConfiguration.
Propiedades:
- splitter: el divisor utilizado para separar nodos.
- skipFirstNodeLevel (opcional): Toma como valores "true" o "false" para no visualizar el nodo de nivel superior. Por defecto se selecciona "true".
Despues de modificar sidebarFacets o searchFilters, es necesario reindexar items existentes corriendo [dspace]/bin/dspace index-discovery -b, sino los cambios no apareceran
Para más información, ir a la página de Discovery en el wiki de DSpace.
Modificar el valor en discovery.xml de la siguiente propiedad
<property name="defaultRpp" value="10" />
Configurar un filtro de búsqueda que no está incluido como facet:
<bean id="searchFilterTitle" class="org.dspace.discovery.configuration.DiscoverySearchFilter">
<property name="indexFieldName" value="title"/>
<property name="metadataFields">
<list>
<value>dc.title</value>
</list>
</property>
</bean>
Las siguiente propiedades tienen como objetivo:
- indexFieldName: Nombre del filtro de búsqueda con el que solr indexara el metadato.
- metadataFields: Lista de los metadatos que deben ser incluidos en el facet.
Los facets extienden de los filtros de búsqueda agregando algunas propiedades como se muestra a continuación:
<bean id="searchFilterAuthor" class="org.dspace.discovery.configuration.DiscoverySearchFilterFacet">
<property name="indexFieldName" value="author"/>
<property name="metadataFields">
<list>
<value>dcterms.creator.author</value>
<value>dcterms.creator.compilator</value>
<value>dcterms.creator.corporate</value>
<value>dcterms.creator.editor</value>
</list>
</property>
<property name="facetLimit" value="10"/>
<property name="sortOrderSidebar" value="COUNT"/>
<property name="sortOrderFilterPage" value="COUNT"/>
</bean>
Para implementar esta funcionalidad el valor del metadato debe estar compuesto por los términos divididos por un divisor. Por ejemplo "CARTOGRAPHY::PHOTOGRAMMETRY", donde Cartography y Photogrammetry son términos, dividos por "::".
El facet mostrará el nivel superior, y al cliquear en él el resto de los facets serán visualizados.
<bean id="searchFilterSubject" class="org.dspace.discovery.configuration.HierarchicalSidebarFacetConfiguration">
<property name="indexFieldName" value="subject"/>
<property name="metadataFields">
<list>
<value>dc.subject</value>
</list>
</property>
<property name="sortOrder" value="COUNT"/>
<property name="splitter" value="::"/>
<property name="skipFirstNodeLevel" value="false"/>
</bean>
Notar que la clase SidebarFacetConfiguration cambió a HierarchicalSidebarFacetConfiguration.
Propiedades:
- splitter: el divisor utilizado para separar nodos.
- skipFirstNodeLevel (opcional): Toma como valores "true" o "false" para no visualizar el nodo de nivel superior. Por defecto se selecciona "true".
Agregar opción de ordenamiento basada en el metadato dc.title
<bean id="sortTitle" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration">
<property name="metadataField" value="dc.title"/>
<property name="type" value="text"/>
</bean>
DSpace permite configurar una GUI Discovery específica por colección. Para esto, es necesario crear una configuración distinta a la default.
<bean id="org.dspace.discovery.configuration.DiscoveryConfigurationService" class="org.dspace.discovery.configuration.DiscoveryConfigurationService">
<property name="map">
<map>
<!--The map containing all the settings,
the key is used to refer to the page (the "site" or a community/collection handle)
the value-ref is a reference to an identifier of the DiscoveryConfiguration format
-->
<!--The default entry, DO NOT REMOVE the system requires this-->
<entry key="default" value-ref="defaultConfiguration" />
<!-- Configuracion para la comunidad/colección 7621 -->
<entry key="123456789/7621" value-ref="configuracionEspecífica7621"/>
</map>
</property>
<!-- ... -->
</bean>
<bean id="configuracionEspecífica7621" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype">
<!-- Poner configuración específica de Discovery para la colección 7621 -->
</bean>
Para más información, ir a la página de Discovery en el wiki de DSpace.
Los campos en OAI se mapean a un determinado metadataFormat. Los metadataFormat se encuentran en [dspace]/config/crosswalks/oai/metadataFormats
Previamente los campos pueden ser formateados para un contexto en particular en los transformers. Los transformers se encuentran en [dspace]/config/crosswalks/oai/transformers
Ejemplo donde el metadato se formatea el campo dc.identifier.uri para snrd:
<!-- Formatting dc.identifier.uri-->
<xsl:template match="/doc:metadata/doc:element[@name='dc']/doc:element[@name='identifier']/doc:element[@name='uri']/doc:element/doc:field[@name='value']/text()">
<xsl:variable name="handle" select="/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']"/>
<xsl:value-of select="."/>
</xsl:template>
Una vez transformado los metadatos necesarios, se mapean los campos.
Ejemplo donde se mapea un campo dc.identifier.uri
(formateado para driver) con dc:identifier
en cic_oai_dc.xsl
:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:doc="http://www.lyncode.com/xoai"
version="1.0">
<xsl:output omit-xml-declaration="yes" method="xml" indent="yes" />
<xsl:template match="/">
<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
...
<!-- dc.identifier.uri -->
<xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='identifier']/doc:element[@name='uri']/doc:element/doc:field[@name='value']">
<dc:identifier><xsl:value-of select="." /></dc:identifier>
</xsl:for-each>
...
</oai_dc:dc>
</xsl:template>
</xsl:stylesheet>
Para poder ver revisar los datos que están siendo indexados en el core OAI de solr, utilizar el prefix OAI
Ejemplo:
http://sedici.unlp.edu.ar/oai/snrd?verb=ListRecords&metadataPrefix=xoai
Para exponer un nuevo tipo de documento a OAI, modificar el archivo xoai.xml
Primero filtrar en el filtro correspondiente el campo dc.type a exponer. En este caso se lo expondra en el contexto dedicado al SNRD:
<CustomCondition id="snrdDocumentsubtypeFilter">
<Class>org.dspace.xoai.filter.DSpaceAtLeastOneMetadataFilter</Class>
<Configuration>
<string name="field">dc.type</string>
<string name="operator">equal</string>
<list name="values">
...
<string>Artículo</string>
...
</list>
</Configuration>
</CustomCondition>
Después de haberse ejecutado los filtros, los campos pueden ser formateados para un contexto en particular en los transformers. Los transformers se encuentran en [dspace]/config/crosswalks/oai/transformers
Ejemplo donde el metadato dc.type se formatea para driver y para snrd:
<!-- Formatting dc.type-->
<xsl:template match="/doc:metadata/doc:element[@name='dc']/doc:element[@name='type']">
<xsl:variable name="type" select="./doc:element/doc:field[@name='value']/text()"/>
<xsl:call-template name="type-driver">
<xsl:with-param name="theValue" select="$type"/>
</xsl:call-template>
<xsl:call-template name="type-snrd">
<xsl:with-param name="theValue" select="$type"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="type-driver">
<xsl:param name="theValue" />
<xsl:variable name="finalValue">
<xsl:choose>
...
<xsl:when test="$theValue ='Artículo'">
article
</xsl:when>
<xsl:when test="$theValue ='Comunicación'">
article
</xsl:when>
...
</xsl:choose>
</xsl:variable>
<doc:element name="type">
<doc:element name='driver'>
<doc:field name="value"><xsl:value-of select="normalize-space($finalValue)"/></doc:field>
</doc:element>
</doc:element>
</xsl:template>
Una vez transformado los metadatos necesarios, se mapean los campos a través de los formats.
Ejemplo donde se mapea un campo dc.type
(formateado para driver) a dc:type
en cic_oai_dc.xsl
:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:doc="http://www.lyncode.com/xoai"
version="1.0">
<xsl:output omit-xml-declaration="yes" method="xml" indent="yes" />
<xsl:template match="/">
<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
...
<!-- dc.type driver -->
<xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='type']/doc:element[@name='driver']/doc:field[@name='value']">
<dc:type><xsl:value-of select="concat('info:eu-repo/semantics/',.)" /></dc:type>
</xsl:for-each>
...
</oai_dc:dc>
</xsl:template>
</xsl:stylesheet>
Para agregar un nuevo formato en OAI es necesario agregar en en [dspace]/config/crosswalks/oai/metadataFormats el siguiente bloque de código.
<Format id="[IDENTIFICADOR]">
<Prefix>[PREFIJO]</Prefix>
<XSLT>metadataFormats/[XSLT]</XSLT>
<Namespace>[NAMESPACE]</Namespace>
<SchemaLocation>[SCHEMA_LOCATION]</SchemaLocation>
</Format>
Parametro | Descripción |
---|---|
IDENTIFICADOR | El identificador utilizado en el contexto de las configuraciones para referenciar un formato específico |
PREFIJO | Prefijo usado en en la interface OAI |
NAMESPACE | XML Namespace del schema creado |
SCHEMA_LOCATION | URI del XSD del schema |
Ejemplo:
<Format id="xoai">
<Prefix>xoai</Prefix>
<XSLT>metadataFormats/xoai.xsl</XSLT>
<Namespace>http://www.lyncode.com/xoai</Namespace>
<SchemaLocation>http://www.lyncode.com/schemas/xoai.xsd</SchemaLocation>
</Format>
Para agregar un nuevo contexto en OAI (p.e.el contexto 'snrd') es necesario agregar en el archivo [dspace]/config/crosswalks/oai/xoai.xml lo siguiente:
<Context baseurl="snrd" name="srnd context">
<Transformer ref="snrdTransformer"/>
<Filter ref="snrdFilter"/>
<Set ref="snrdSet"/>
<Format ref="oaidc"/>
<Format ref="xoai"/>
<Description>
This context complies with SNRD rules.
</Description>
</Context>
Para validar ante el SNRD ingresar en repositoriosdigitales.mincyt.gob.ar:8080/snrd-dnet.web/pages/login.faces
Ingresar Email y clave:
Click en Nueva solicitud
e ingresar el set a validar:
Para ver el detalle de la consulta, click en Consulta resumida
Para ver el detalle de un error, click sobre el nombre del metadato. Ejemplo: dc:rights
Modificar la propiedad
usage-statistics.authorization.admin.usage
en usage-statistics.cfg con true
o false
Agregar direcciones de IPs de bots/spiders a la lista de direcciones que deben ser omitidas en las estadísticas
Los archivos en de ips a filtrar se encuentran en dspace/config/spiders/
Para agregar nuevos archivos, es necesario modificar solr-statistics.cfg agregando una url con ips a filtrar a solr-statistics.spiderips.urls
Como se registran todos los accesos es necesario correr los siguientes comandos para filtrar las ips con el flag de bot.
[dspace]/bin/dspace stats-util -m
(para marcar el flag de bot)
[dspace]/bin/dspace stats-util -f
(para eliminar las ips con el flag de bot)
Realizar las modificiaciones necesarias en statistics.xsl
Existen algunas situaciones en las que sería necesario reindexar todos los datos del core 'statistics' (p.e. cuando cambia el schema.xml y se configura un field como docValues). Para realizar esto, DSpace dispone de un comando espacífico:
./dspace solr-reindex-statistics -k
Esta herramienta exporta archivos csv correspondientes a los accesos mensuales de registros estadísticos, los cuales posteriormente serán importados nuevamente en el core para causar su "reindexación". Mientras este proceso se está realizando, los registros estadísticos que se van produciendo son registrados en un core temporal creado para tal fin. Al finalizar la reindexación, los registros mencionados anteriormente también estarán incluidos en el core reindexado.
Indicando el parámetro -k
, todos los csv's que fueron exportados serán guardados en el directorio "install/solr-export". Caso contrario, son eliminados.
Importante: Tener en cuenta que esta proceso puede llegar a durar varias horas, por lo que si se ejecuta en un servidor, es recomendable dejar corriendo el comando en modo screen de tal forma que la ejecución siga corriendo aunque nosotros nos desconectemos del servidor.
Durante la reindexación se crea un core temporal llamado statistics-temp, el cual garantiza que todos los registros de acceso nuevos producidos durante la reindexación no se pierdan. Para crear este core, la tarea de reindexación le dice a Solr (especificamente al componente CoreAdmin) que este core temporal tendrá como directorio de instancia o instanceDir el directorio $DSPACE_INSTALL_DIR/solr/statistics, y como directorio dataDir el directorio $DSPACE_INSTALL_DIR/temp/solr-data. El problema es que estos directorio son "locales" al servidor donde la instancia de DSpace está ejecutando.
Si la webapp Solr se encuentra corriendo en un servidor externo al servidor donde está ejecutando DSpace, entonces la tarea de reindexación va a fallar. Por lo tanto, es necesario hacer una especie de "engaño" a la tarea, y crear estos directorios en el servidor Solr antes de su ejecución.
En el servidor Solr
#Crear un enlace simbólico al instanceDir del core 'statistics'
ln -s $PATH_TO_SOLR_STATISTICS_INSTANCE_DIR $DSPACE_INSTALL_DIR/solr/statistics
#Crea directorio vacío
mkdir $DSPACE_INSTALL_DIR/temp/solr-data
-
Abrir el archivo
dspace/modules/xmlui-mirage2/src/main/webapp/themes/Mirage2/xsl/aspect/artifactbrowser/item-view.xsl
-
Ubicar el template con nombre itemSummaryView-DIM
-
Si no se requiere ninguna visualización especial para el metadato, entonces agregar el siguiente fragmento de código en el lugar correspondiente. Ojo de no romper el XSL
<xsl:call-template name="render-normal-field"> <xsl:with-param name="name" select="'{class-name}'"/> <xsl:with-param name="elements" select="dim:field[@schema='{schema}' and @element='{element}' and @qualifier='{qualifier}'] "/> </xsl:call-template>
NOTA: si no aplica, puede omitirse el
@qualifier
.
Para realizar modificaciones en el layout, modificar el archivo page-structure.xsl
Observar que en este último archivo se encuentran los templates builHead, buildFooter entre otros.
Las modificaciones en el home se realizan en:
Para modificar la Community list, modificar el archivo community-list.xsl
en xsl/aspect/artifactBrowser/community-list.xsl
La de vista de un item puede ser modificada en dspace/modules/xmlui/src/main/webapp/themes/sedici/lib/xsl/aspect/artifactbrowser/item-view.xsl
.
Para visualizar un nuevo metadato (ejemplo dcterms.isFormatOf), primero hay que localizar en qué parte de la página HTML queremos ponerlo.
Una vez localizada esta parte dentro del item-view.xsl
, agregar el siguiente fragmento de código:
<xsl:call-template name="render-metadata">
<xsl:with-param name="field" select="'dcterms.isFormatOf'"/>
<xsl:with-param name="container" select="'li'"/>
</xsl:call-template>
Y luego configurar el messages_es.xml
y messages.xml
para que se visualice el label del metadato en español e inglés respectivamente:
messages_es.xml
<message key="xmlui.dri2xhtml.METS-1.0.item-dcterms_isFormatOf">Es formato de</message>
messages.xml
<message key="xmlui.dri2xhtml.METS-1.0.item-dcterms_isFormatOf">Is format of</message>
Las páginas estáticas se encuentran bajo el directorio dspace/modules/xmlui-mirage2/src/main/webapp/themes/Mirage2/page
. En el final del nombre del archivo se agrega un sufijo indicando el idioma, por ejemplo _es (español), _en (inglés).
- Crear un archivo XHTML bajo el directorio
/dspace/modules/xmlui-mirage2/src/main/webapp/themes/Mirage2/page
. Por ej., agregamos la página 'hello_world_es.xhtml'
<?xml version="1.0" encoding="UTF-8" ?>
<div>
<h4>¡Hola Mundo!</h4>
</div>
Y también en inglés en la página 'hello_world_en.xhtml'
<?xml version="1.0" encoding="UTF-8" ?>
<div>
<h4>¡Hello world!</h4>
</div>
Los resultados de Discovery se visualizan al realizar una búsqueda en /discovery?query=<término de búsqueda>.
Los visualización de los resultados de Discovery es realizada por el archivo dspace/modules/xmlui-mirage2/src/main/webapp/themes/Mirage2/xsl/aspect/discovery/discovery.xsl.
Para agregar un metadato a los resultados de búsqueda debemos:
- Localizar el
<xsl:template name="itemSummaryList">
en el archivodiscovery.xsl
de nuestro tema . - Agregar el campo en cuestión respetando la estructura del grid-system.
P.e. agregaremos el metadato thesis.degree.grantor agregando en el template el siguiente código:
<xsl:template name="itemSummaryList">
<!-- ... --->
<div class="col-md-12">
<!-- thesis.degree.grantor -->
<div class="row discovery-metadata-thesis-degree-grantor">
<xsl:if test="dri:list[@n=(concat($handle, ':thesis.degree.grantor')) and descendant::text()]">
<xsl:call-template name="renderDiscoveryField">
<xsl:with-param name="value">
<xsl:value-of select="dri:list[@n=(concat($handle, ':thesis.degree.grantor'))]/dri:item[position()=1]/text()" />
</xsl:with-param>
<xsl:with-param name="classname" select="'metadata-thesis-degree-grantor'"/>
</xsl:call-template>
</xsl:if>
</div>
</div>
</xsl:template>
Existen 2 formas para ver como se compone el DRI de un página en particular. La primera es agregando 'DRI/' antes de la URL de la página.
Ejemplo:
De esta forma vemos el DRI antes de pasar por el transformer de Internacionalización.
La otra forma es agregar '?XML' al final de la URL.
Ejemplo:
Así, podremos ver el DRI luego de pasar por el transformer de internacionalización.
Las configuraciones del servidor se encuentran en el archivo local.cfg
. Se puede tomar como referencia local.cfg.EXAMPLE
Modificar en local.cfg
la propiedad dspace.hostname
Modificar en local.cfg
la propiedad dspace.baseUrl
Modificar en local.cfg
las propiedades
-
URL de la BD
db.url
-
JDBC Driver:
db.driver
-
Database dialect
db.dialect
-
Usuario de la base de datos y password:
db.username
db.password
Las siguientes son configuraciones que deben modificarse para que funcione la salida de correos desde la aplicación DSpace:
dspace.cfg
##### Email settings ######
mail.server.disabled = false
# SMTP mail server (allows DSpace to send email notifications)
mail.server = smtp.gmail.com
# SMTP mail server authentication username and password (if required)
mail.server.username = dspace@gmail.com
mail.server.password = DSp4c31nst4nc3
mail.charset = UTF-8
# SMTP mail server alternate port (defaults to 25)
mail.server.port = 465
# Pass extra settings to the Java mail library. Comma-separated, equals sign between
# the key and the value. For example:
mail.extraproperties = mail.smtp.socketFactory.port=465, \
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory, \
mail.smtp.socketFactory.fallback=false
# From address for mail
# All mail from the DSpace site will use this 'from' address
mail.from.address = dspace-noreply@myu.edu
# When feedback is submitted via the Feedback form, it is sent to this address
# Currently limited to one recipient!
feedback.recipient = dspace-help@myu.edu
# General site administration (Webmaster) e-mail
# System notifications/reports and other sysadmin emails are sent to this address
mail.admin = dspace-help@myu.edu
# Recipient for server errors and alerts (defaults to mail.admin)
alert.recipient = ${mail.admin}
# A comma-separated list of hostnames that are allowed to refer browsers to email forms.
# Default behaviour is to accept referrals only from dspace.hostname
mail.allowed.referrers = ${dspace.hostname}
Las configuraciones generales se ubican en el archivo local_custom.cfg
. En el se encuentran las configuraciones independientes del entorno de desarrollo.
Modificar la propiedad webui.supported.locales
en local_custom.cfg
Para utilizar google analytics se deben seguir los siguientes pasos:
- Registrar una cuenta cuenta de Google analytics desde https://analytics.google.com/analytics
- Una vez completados los datos obtenemos el ID de seguimiento (UA-XXXXXXXX-X)
- Habilitar el uso de Google analytics desde la propiedad xmlui.google.analytics.key, el valor de la propiedad es el ID de seguimiento obtenido anteriormente
- Ingresar en https://console.developers.google.com/project utilizando la misma cuenta utilizada en Google analytics
- Crear un proyecto nuevo
- desde el menu de la izquierda ir a la sección de administracion de API's y habilitar la API de analytics para el proyecto creado, para esto seleccionar Analytics API -> habilitar
- En la barra de la izquierda ir a la sección credenciales
- crear credenciales -> ID decliente de OAuth -> configurar pantalla de autorizacion
- Completar los datos y guardar
- Completar el siguiente formulario y Crear
- Descargar el archivo P12 key y ubicarlo en algun lugar donde la aplicacion DSpace pueda accederlo y referenciarlo, para esto:
- crear credenciales -> clave de cuenta de servicio
- Seleccionar el tipo de clave P12 y descargar el archivo generado
- Es importante anotar la clave que nos provee ya que es la clave de acceso del archivo que descargamos
En el archivo {dspace.dir}/config/modules/google-analytics.cfg asegurarse que las siguientes configuraciones esten descomentadas
-
application.name = Dummy project (la documentación de DSpace hace la siguiente aclaracion con respecto a este valor: "Not sure if this property is required but it was in the example code provided by Google. Please do not delete.", por lo que no deberia modificarse ese valor)
-
table.id = ga:12345678
- loguear en el dashboard de google analytics
- ir a la sección de admin
- seleccionar la opción ver configuración en la columna que dice "ver todos los datos del sitio web"
- La propiedad es ID de vista (a pesar de la confusión que podrían generar los nombres) este valor debe reemplazar la parte numerica del ejemplo de arriba
-
account.email = El email que se genera automáticamente cuando se crea el proyecto en https://console.developers.google.com/project
-
certificate.location = La ruta al archivo P12 que descargamos previamente
-
authorization.admin.usage = true
- Nuevo Administrador del sistema
./bin/dspace create-administrator
- Nuevo usuario común
./bin/dspace user --add -l es -g Nombre -s Apellido -m email@dominio.com -p <password>
Ejecutar ./dspace dsprop -p
pasando como parametro el nombre de la propiedada a consultar
Ejemplo:
./dspace dsprop -p db.schema
Ante cambios en la configuración de Discovery, es necesario reconstruir todo el índice...
./bin/dspace index-discovery -bos
Sino simplemente basta con actualizarlo (sin parámetros -bos
)
./bin/dspace index-discovery
./bin/dspace oai import -co
Sino simplemente basta con actualizarlo (sin los parámetros -co
)
./bin/dspace oai import
Para modificar la registry de metadatos en DSpace
./bin/dspace registry-loader -metadata /path/to/new-metadata.xml
./bin/dspace test-email
DSpace envía emails a los usuarios pertinentes, ante determinados eventos (archivo de una publicación en el repositorio, rechazo de un envío, etc.), a través una cuenta de correo institucional configurada desde la aplicación. Los mensajes enviados desde la aplicación son internacionalizables y reciben parámetros dependiendo del contexto de ejecución.
Los archivos de configuración de los emails se encuentran bajo el directorio dspace/config/emails
. Para cada mensaje de email existente (originalmente están en inglés), hay varios derivados en otros idiomas (p.e. en español):
- change_password --> change_password_es
- feedback --> feedback_es
Los parámetros se escriben entre llaves:
# Item Archived email message
#
# {0} Title of submission
# {1} Name of collection
# {2} handle
#
Subject: CIC-Digital: Envío aprobado y archivado
Usted ha enviado: {0}
A la Colección: {1}
Tu envío ha sido aceptado y archivado en CIC-Digital,
y éste se le ha asignado el siguiente identificador:
{2}
Por favor, utilice este identificador cuando realiza una cita del material enviado.
Muchas Gracias.
CIC-Digital
- Abrir en editor el archivo
dspace/config/emails/change_password_es
- Cambiar el mensaje por el siguiente texto:
# Email sent to DSpace users when they forget their password.
#
# Parameters: {0} is expanded to a special URL
#
# See org.dspace.core.Email for information on the format of this file.
#
Subject: Solicitud de cambio de contraseña
Para cambiar la contraseña de tu cuenta en CIC-Digital, por favor haz click en el link inferior:
{0}
Si necesita asistencia con su cuenta, por favor comuniquese con el repositorio.
Si usted no ha solicitado un cambio de contraseña, ignore este mensaje. Disculpe las molestias.
SEDICI
- Recompilar la aplicación.