Warning: Constant WP_MEMORY_LIMIT already defined in /home/elorenzo/domains/arvo.es/public_html/dspace/wp-config.php on line 94
Documentación técnica | Hablando de DSpace - Part 4

Archivos de Categoría: Documentación técnica - Paginas 4

Configurar thumbnails de PDF en DSpace

Con esta entrada veremos cómo visualizar miniaturas de los ítems cargados en nuestras colecciones de una DSpace en sus versiones 1.6.x y superiores.

La previsualización de ítems es automática ( sin instalar ningún paquete adicional)  para las imágenes:

PREVISUALIZACIÓN DE IMÁGENES pero NO para los pdfs.

Para documentos PDF se requiere usar el software XPDF y aplicar en el maven unas librerías java de tratamiento de imágenes.En la documentación oficial hemos encontrado algún error al seguir las instrucciones así que procederé a detallar nuestro proceso.

  1. Instalar xpdf: en el caso de Ubuntu: apt-get install xpdf  Con ello se instalan 3 binarios necesarios pdftotext , pdftoppm
  2. Comprobar el destino de estos binarios: find / -name pdftotext . En ubuntu se instalan en /usr/bin
  3. Añadir 3 líneas a dspace.cfg con el directorio de instalación de los binarios de xpdf
  4. Descargas las librerías java necesarias: «jai_core»  y  «jai_imageio». Para ello se puede usar curl , wget, o descarga directa a través del navegador. Al final son necesarios los .jar de ambas librerías.

Java Advanced Imaging Downloads contiene jai-core

Java Advanced Imaging-Image I/O Tools Downloads contiene jai_imageio

Por tanto por el medio que sea hay que descargarse el tar.gz, descomprimirlo y comprobar que dentro de la carpeta lib existen ambos .jar

  1. Aplicamos ambos el archivo .jar al maven: (OJO porque aunque pueda parecer correcta su aplicación ya que no dará error )
  2. Procederemos como habitualmente a realizar un maven de nuestro dspace source
  3. y el despliegue mediante ant -Dconfig=dspace.cfg update
  4. Ejecutamos media-filter

Para mas información de como realizar este proceso consultar las instrucciones oficiales aqui

Activar thumbnails de imágenes en DSpace

Los thumbnails son versiones reducidas de imágenes, usadas para ayudar a su organización y reconocimiento.

Con las siguientes instrucciones se van a poder observar thumbnails de los formatos jpg , png y gif.

DSpace incluye por defecto un filtro para el rastreo de éstos formatos, éste es: «JPEGFilter»

«JPEGFilter creates thumbnail images of GIF, JPEG and PNG files»

El resto de formatos ( por ejemplo pdf, doc, odt ) no serán visibles con los cambios descritos a continuación.

Para activarlo tenemos que activar las siguientes líneas en el dspace.cfg, ubicado en [dspace]/config/dspace.cfg

webui.browse.thumbnail.show
webui.browse.thumbnail.max.height
webui.browse.thumbnail.max.width
webui.item.thumbnail.show
webui.browse.thumbnail.linkbehaviour
thumbnail.maxwidth
thumbnail.maxheight

Estas líneas vienen descomentadas por defecto y con unos valores predefinidos, salvo la primera de ellas que hay que descomentarla y poner el valor a true.

Una vez editado el fichero,  reiniciamos el tomcat para aplicar los cambios.

Ahora será necesario ejecutar  una herramienta para el rastreo y generación de las miniaturas de todos los archivos adjuntos que dispongamos en DSpace, por lo que es recomendable ajustar esta tarea a un cronjob para que se ejecute cada cierto tiempo, si nó, no podremos visualizar ningún thumbnail de los ítems añadidos posteriormente.

Comprobar antes de ejecutar el plugin que esta linea esta activada y bien referenciada en el dspace config:

plugin.sequence.org.dspace.app.mediafilter.MediaFilter = org.dspace.app.mediafilter.PDFFilter, org.dspace.app.mediafilter.HTMLFilter

Para ejecutar los media filters, tenemos que introducir en un terminal lo siguiente

[dspace]/bin/dspace filter-media

Si lo queremos meter en un cronjob será algo del estilo:

0 2 * * * ''dspace''/bin/filter-media

Depositando items mediante emails

Una opción a valorar cuando requerimos que una comunidad amplia, esporádica y posiblemente indefinida de usuarios depositen objetos en nuestro repositorio es no usar la UI de Dspace (registro de usuario y unas cuantas pantallas de definción del objeto, bastante intimidatorias en ocasiones) sino usar otro tipo de aplicaciones, más sencillas o simplemente más conocidas y habituales.

Ya hemos comentado en este blog el uso de aplicaciones como EasyDeposit, escrita en PHP y usando el protocolo SWORD, pero hoy, del blog de Stuart Lewis (siempre sorprendiéndonos) os traemos un sistema más deconstruido, si cabe, basado en el envío de correos electrónicos…

  1. Por parte del usuario, simplemente se necesita un cliente de correo para poder realizar los envíos a una cuenta de correo predefinida por el administrador de Dspace.

En el lado de Dspace, una serie de elementos más:

  1. la cuenta de correo a donde nos envían los archivos
  2. un programa PHP de comprobación del buzón de dicha cuenta, empaquetado y envío a DSpace
  3. Dspace con protocolo SWORD activado
  4. (y el tratamiento posterior de completar metadatos, aprobar envío, etc, del flujo de tratamiento de envíos normal)

Aquí os contamos los pasos para poder usar instalar y configurar una aplicación de este estilo, a modo de mini-guía.

La aplicación básicamente consiste en un programa PHP que comprueba los email llegados al INBOX, chequea los correos sin leer y los empaqueta y envía a nuestro repositorio Dspace. Esto significa que no es una aplicación ejecutándose contínuamente en modo servidor, sino que el usuario administrador de Dspace debe de ejecutar esta aplicación cada vez que hay que leer los mails. Se podría activar un procedimiento que se repitiera cada cierto periodo de tiempo, como por ejemplo mediante los cronjobs de Unix o las tareas programadas de Windows.

Explicando lo que hay que hacer para que configurar la aplicación de modo básico:

  • Configurar dspace para que acepte aplicaciónes sword. Para ello consultad este post sobre cómo hacerlo.
  • Instalar un cliente php capaz de ejecutar la aplicación en línea de comandos.  (PHP5)
  • Seguir los pasos de esta página para instalar php mailparse. Prestad atención si usáis Ubuntu en una versión superior a la 9.10, hay comentarios en los foros que explican como hacer que funcione para estas versiones.
  • Si no estamos usando Ubuntu, podemos seguir los pasos en la siguiente página http://wiki.cerb4.com/wiki/Installing_PHP_Mailparse.
  • Tener una cuenta de correo con cualquier servidor de correo que soporte IMAP. p.ej gmail, pero acordarse de activarlo en las opciones del correo.
  • Descargarse la aplicación de esta dirección http://php.swordapp.org. Una vez descomprimida y con la aplicación en la carpeta examples/imap-email, vemos que contiene unas librerías para el tratamiento de los mensajes de correo.
  • Configurar el fichero examples/imap-email/configuration.php con vuestros datos

Ejemplo de configuración para gmail:

$imaphost = ‘{imap.gmail.com:993/imap/ssl}INBOX’;

$mailuser = ‘mi_correo_al_que_van_los_depositos@gmail.com’;

$mailpassword = «contraseña_del_correo»;

$swordurl = ‘http://192.168.1.1:8080/sword/deposit/123456789/1’;

(es decir dirección ip o nombre donde está dspace, incluyendo el puerto, a continuación el directorio donde está desplegado el SWORD y por último la colección a la cual van a ir los depósitos)

$sworduser = ‘usuario_administrador@arvo.es’;

(usuario con privilegios de inserción)

$swordpassword = ‘contraseña_usuario_dspace’;

 

La prueba de que todo está correctamente configurado, es simple, enviamos desde cualquier usuario un correo a la cuenta de gmail con datos de prueba, es decir con el fichero a depositar como atachment. Una vez hecho,  ejecutar la aplicación en linea de comandos, imap-email.php. Veréis como marca los correos como leidos y a continuación los envia a la colección que le indicamos en la configuración.

Integración con redes sociales

La alta capacidad de customización de DSpace permite la inclusión de nuevos elementos en la interfaz de usuario. Uno puede ser la inclusión de una barra que conecte con las famosas redes sociales, por ejemplo «addthis«:

Se trata de un código que se incrusta en el de DSpace para que aparezcan los iconos de las redes sociales deseadas.

En el caso concreto de las instancias cuya interfaz sea XMLUI el proceso es el siguiente:

  • Editar «structural.xsl» para añadir el siguiente código:
<xsl:template match="dri:options">
        <div id="ds-options">

            <h3 id="ds-share-option-head"><xsl:text>Share</xsl:text></h3>
            <div id="ds-share-option" style="text-align: center">
                <a>
                    <xsl:attribute name="href">
                        <xsl:text>http://www.addthis.com/bookmark.php?v=250&amp;pub=xa-4a848ff246b1eec7</xsl:text>
                    </xsl:attribute>
                    <xsl:attribute name="class">
                        <xsl:text>addthis_button</xsl:text>
                    </xsl:attribute>
                    <img>
                        <xsl:attribute name="src">
                            <xsl:text>http://s7.addthis.com/static/btn/lg-share-en.gif</xsl:text>
                        </xsl:attribute>
                        <xsl:attribute name="width">
                            <xsl:text>125</xsl:text>
                        </xsl:attribute>
                        <xsl:attribute name="height">
                            <xsl:text>16</xsl:text>
                        </xsl:attribute>
                        <xsl:attribute name="style">
                            <xsl:text>border:0</xsl:text>
                        </xsl:attribute>
                    </img>
                </a>

                <script type="text/javascript">
                    <xsl:attribute name="src">
                        <xsl:text>http://s7.addthis.com/js/250/addthis_widget.js?pub=xa-4a848ff246b1eec7</xsl:text>
                    </xsl:attribute>
                    <xsl:text>// Empty comment</xsl:text>
                </script>
            </div>