Algunas adaptaciones a la plantilla de Omeka “Dublin”

Hace poco hice algunas modificaciones a la plantilla Dublin de Omeka con dos propósitos: crear un “botón” para ordenar los elementos por fecha (Dublin Core – Date) y mostrar las fechas en la navegación de los elementos entre el extracto de la descripción y las etiquetas. Después de actualizar a la nueva versión de Omeka 2.5.1 se borraron todos los cambios y de ahí la decisión de hacer los cambios en un “tema hijo”.  Para los interesados subí el tema a Github para que cualquiera pueda usarlo a su gusto, lo pueden consultar o descargar en https://github.com/jairomelo/Omeka-theme-fichero-.

Explicaré los cambios que realicé a la plantilla:

Traducción del archivo config.ini

No era necesario realmente, pero me parece que puede ser útil ya que no existe ninguna plantilla en español y algunos de los textos de la plantilla no están traducidos desde el archivo ../aplication/languages/es.mo. Uno de esos es el formulario de configuración cuyo contenido está en el archivo config.ini. Finalmente el archivo quedó así:

[config]

; Logo
logo.type = "file"
logo.options.label = "Logo"
logo.options.description = "Elige un archivo de logotipo que reemplazará el título de la cabecera del tema. El tamaño máximo recomendado es de 500px."
logo.options.validators.count.validator = "Count"
logo.options.validators.count.options.max = "1"

; Header Background Image
header_image.type = "file"
header_image.options.label = "Imagen de cabecera"
header_image.options.description = "Escoge un archivo de imagen para mostrar debajo de la cabecera del tema. El tamaño recomendado es de 100px."
header_image.options.validators.count.validator = "Count"
header_image.options.validators.count.options.max = "1"

display_featured_item.type = "checkbox"
display_featured_item.options.label = "Elemento destacado"
display_featured_item.options.description = "Marca esta casilla si deseas mostrar el elemento destacado en la página de inicio."
display_featured_item.options.value = "1"

display_featured_collection.type = "checkbox"
display_featured_collection.options.label = "Mostrar colección destacada"
display_featured_collection.options.description = "Marca esta casilla si deseas mostrar la colección destacada en la página de inicio."
display_featured_collection.options.value = "1"

display_featured_exhibit.type = "checkbox"
display_featured_exhibit.options.label = "Mostrar exhibición destacada"
display_featured_exhibit.options.description = "Marca esta casilla si deseas mostrar la exhibición destacada en la página de inicio."
display_featured_exhibit.options.value = "1"

homepage_recent_items.type = "text"
homepage_recent_items.options.label = "Elementos al inicio"
homepage_recent_items.options.description = "Escoge cuántos elementos deseas mostrar en la página de inicio."
homepage_recent_items.options.maxlength = "2"

homepage_text.type = "textarea"
homepage_text.options.label = "Texto de la página de inicio"
homepage_text.options.description = "Añade el texto que quieras para la página de inicio."
homepage_text.options.rows = "5"
homepage_text.options.attribs.class = "html-input"

footer_text.type = "textarea"
footer_text.options.label = "Texto del pie de página"
footer_text.options.description = "Añade algún texto que quieras mostrar en el pie de página del tema."
footer_text.options.rows = "5"
footer_text.options.attribs.class = "html-input"

display_footer_copyright.type = "checkbox"
display_footer_copyright.options.label = "Mostrar derechos de autor al pie de página"
display_footer_copyright.options.description = "Selecciona esta casilla si deseas mostrar la información de derechos de autor en el pie de página de tu sitio."

use_advanced_search.type = "checkbox"
use_advanced_search.options.label = "Usar búsqueda general avanzada"
use_advanced_search.options.description = "Selecciona esta casilla si deseas permitir a los usuarios realizar búsquedas en la totalidad del sitio (ejemplo: elemento, colección, archivo) y escoger su método Booleano de búsqueda."
use_advanced_search.value = "1"

[groups]

head_foot.options.legend = "Header and Footer"
head_foot.elements[] = "logo"
head_foot.elements[] = "header_image"
head_foot.elements[] = "footer_text"
head_foot.elements[] = "display_footer_copyright"
head_foot.elements[] = "use_advanced_search"

homepage.options.legend = "Homepage"
homepage.elements[] = "display_featured_item"
homepage.elements[] = "display_featured_collection"
homepage.elements[] = "display_featured_exhibit"
homepage.elements[] = "homepage_recent_items"
homepage.elements[] = "homepage_text"

[plugins]

; Exclude fields from plugins, if they wish.
exclude_fields = "display_featured_item,display_featured_collection,display_featured_exhibit,homepage_recent_items,homepage_text"

 

Crear botón para ordenar por DC Date

Las dos adaptaciones fueron hechas en el archivo ../themes/fichero/items/browse.php (“fichero” es el nombre que le puse a mi copia del tema Dublin). La función encargada de ordenar los elementos es $sortLinks. La plantilla Berlin permite ordenar por tres opciones: Título, creador y fecha de creación. En mi caso modifiqué estas opciones para en lugar de ordenarla por creador hacerlo por “lugar” (DC Spatial Coverage) y añadir la opción de ordenar por “fecha” del elemento (DC Date). El código quedó simplemente así:

<?php
$sortLinks[__('Título')] = 'Dublin Core,Title';
$sortLinks[__('Lugar')] = 'Dublin Core,Spatial Coverage';
$sortLinks[__('Fecha de creación')] = 'added';
$sortLinks[__('Fecha del elemento')] = 'Dublin Core,Date';
?>

El resultado como verán es exitoso:

 

Mostrar la fecha en la navegación

Encontrar cómo hacer este cambio fue un poco más complicado y de hecho no creo que haya sido la manera más “elegante” de hacerlo, pero el resultado es aceptable a mi modo de ver. Para mostrar los elementos la plantilla utiliza un loop <?php foreach (loop('items') as $item): ?>; dentro de las opciones de ese loop se encuentra lo que se muestra en la navegación: el título, la imagen del archivo, un extracto de la descripción y las etiquetas. Lo que hice fue sencillamente crear una nueva opción que mostrara la fecha. Después de la descripción puse:

<?php if ($date = metadata('item', array('Dublin Core', 'Date'))): ?>
    <div class="item-description">
        <?php echo $date; ?>
    </div>
<?php endif; ?>

Como ven es un código simple. En primer lugar uso la sintaxis de la plantilla original con  una sentencia if - endif. Luego incluyo la función $date (que yo creé) y en ella uso la funcion metadata para hacer una lista o array del Dublin Core – Date de cada elemento. Este array se almacena en la función $date que luego “imprimo” en un div que “presto” de la descripción. Ahora cada vez que navego por los elementos o hago búsquedas desde el formulario de búsqueda avanzada puedo ver las fechas de cada elemento. Un  código sencillo y funcional que puede ser adaptado en el futuro.

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Abrir la barra de herramientas