El muchacho de soporte es: Andrés Giacomelli Tel. (011) 4312-8917
soporte@secyt.gov.ar
Archivo catalis.conf, modificaciones que requerían conocer la ruta absoluta dentro del servidor:
PATH_DB=/var/webhosting/museomitre/bases/catalis_pack PATH_CGI-BIN=/var/webhosting/museomitre/cgi-bin/catalis_pack PATH_LOGS=/var/webhosting/museomitre/bases/catalis_pack/catalis/access_logs
Para averiguar la ruta, coloqué este script test-path.xis
dentro de la carpeta cgi-bin/catalis_pack/catalis/xis
:
<IsisScript> <display><pft>'Content-type: text/plain'/#</pft></display> <display><pft>getenv('PATH_WXIS')</pft></display> </IsisScript>
Ejecuté el script con
http://www.museomitre.gov.ar/cgi-bin/catalis_pack/wxis?IsisScript=catalis/xis/test-path.xis
y respondió:
/var/webhosting/museomitre/cgi-bin/catalis_pack/
por lo tanto /var/webhosting/museomitre
es la ruta buscada.
El script test-path.xis
fue borrado del servidor.
El acceso a Catalis entonces queda así:
http://www.museomitre.gov.ar/catalis_pack/catalis/inicio.htm
Consultas de Raúl:
4) Pregunta: veo pudiste entrar con el FTP, verdad? Entonces, por qué en un primer momento dudaste y me escribiste que quizás no serviría solamente con FTP? Qué encontraste luego para poder subir todo? En breve, podrías escribírmelo, pues no entiendo qué es lo que necesita el ISIS y qué hace que tenga que “meterse” en el servidor?
Base bibliográfica
Base de usuarios
PERO NO SUBI users.txt. SUBIRLO!
Sugerencia: los scripts users.bat
y newdb.bat
deben aceptar un parámetro “linux” para realizar automáticamente la conversión.
Prevención de registros corruptos?
Molesto cartel “resolución no prevista”: function setDimensions() en catalis.js ⇒ eliminado (2008-feb-07):
//alert(message);
Permisos
Cambio de nombre de la carpeta “catalis_pack” ⇒ “catalis” (solicitado por Raúl). Es posible, pero hay que tocar 2 o 3 archivos: inicio.htm
, catalis.conf
2008-feb-07: generación del invertido (en el servidor de BC) para la base mitre: mitre-catalis.zip. Subido al servidor, permisos 666 para los archivos de la base.
TODO: eliminar campo 991 de los registros importados (en Catalis se usa para identificar al catalogador que crea el registro, pero en LC tiene otro tipo de datos). Esto se produjo al importar registros en lote (no desde Catalis) usando un script no depurado. 2008-09-17: quité el 991 con el valor provisto por LC y lo reemplacé por el valor “RE”.
17/sep/2008: Agregué campo 099 (signatura topográfica local) a marc21.xml. ERROR: en el form de edición aparece dentro del bloque Descripción. PENDIENTE: Agregarlo a las plantillas de registros, y a los estilos de visualización.
24/sep/2008 - En resumen, estos son los archivos modificados para poder utilizar el campo 099:
Por un error en el proceso de importación en lote de los 100 registros de muestra de LC, el campo 909 (pos. 09 del leader) estaba sin datos. Al intentar colocar en él el valor “#”, detectamos que el registro con MFN 95 está corrupto. Peor aun, encontramos que hubo un error cuando se aplicó el “parche” para evitar la corrupción de registros con MFN bajo: En lugar de dejar en blanco los primeros 100 MFNs, se los siguió usando, pero se les modificó el valor del campo 001 (e.g., MFN 1 ⇒ nro. de control 000100).
Hay que volver a realizar el proceso: colocar los 100 MFNs vacíos al comienzo de la base, y generar el archivo invertido.
Además, hay que limpiar la base de campos extraños (ver con MXF0).
Instrucciones:
http://catalis.uns.edu.ar/dokuwiki/doku.php/instalacion_de_opacmarc
Descargué esta versión:
http://inmabb.criba.edu.ar/varios/opacmarc/opacmarc-2006.11.13-linux.tgz
y subí el contenido de las carpetas cgi-bin, htdocs y bases.
Configuración: local.conf, líneas modificadas:
PATH_DB=/var/webhosting/museomitre/bases/opacmarc PATH_CGI-BIN=/var/webhosting/museomitre/cgi-bin/opacmarc PATH_LOGS=/var/webhosting/museomitre/bases/opacmarc/opac/access_logs PATH_AGREP=/var/webhosting/museomitre/cgi-bin/opacmarc/agrep
Copio el wxis a cgi-bin/opacmarc. Deberíamos compartir el wxis con Catalis, pero al no poder crear un link simbólico, por ahora queda así. Le asigno permisos de ejecución a wxis.
A la carpeta access_logs le pongo permisos 0777.
agrep: subí el que usamos en catalis.uns.edu.ar. Sugerencia: incluirlo en la distribución de opacmarc. Permisos de ejecución para agrep.
Acceso (original):
http://www.museomitre.gov.ar/cgi-bin/opacmarc/wxis?IsisScript=opac/xis/opac.xis&db=demo
Luego modificado a
Logo: podría ser http://www.museomitre.gov.ar/nuevo/images/logo3.jpg
Base para demo: buscar en LC usando el encabezamiento “Mitre, Bartolomé, 1821-1906.”
Búsqueda en LC:
Guided Search = (Mitre AND Bartolomé AND 1821 AND 1906)[in Subject: Authorized (SKEY)] SEARCH RESULTS: Displaying 1 through 100 of 104.
Archivo resultante: mitre.mrc (registros 1-100)
Usarla para reemplazar la base demo en Catalis y en el OPAC.
Luego de realizar varias correcciones en el script de importación, esta es la secuencia de pasos que utilicé:
En ~/catalis/ib-campi:
./im2c.sh ~/opacmarc-admin/work/mitre/original/mitre.mrc mitre mx mitre create=~/opacmarc-admin/work/mitre/original/biblio now -all
En ~/opacmarc-admin/bin:
./update-opac.sh mitre
Los archivos generados están en mitre-opac.zip
Incluir aquí una imagen del árbol de carpetas del servidor.
SAI, 30 de noviembre de 2007.
Para personalizar el banner, se deben modificar los archivos siguientes:
\cgi-bin\opacmarc\opac\banner\mitre.htm
(HTML)\html\opacmarc\opac\css\banner\mitre.css
(CSS)
En el archivo HTML hay que preservar el atributo href
de los enlaces:
nueva búsqueda
[pft]v6001^u[/pft]?IsisScript=[pft]v2000[/pft]&db=[pft]v2104[/pft]&showForm=simple
acerca del catálogo
[pft]v6001^u[/pft]?IsisScript=[pft]v2000[/pft]&db=[pft]v2104[/pft]&task=SHOW_ABOUT
También debe preservarse la línea final:
<div id="contentWrapper"> <!-- se cierra en el footer -->
En el archivo CSS, no hay nada que preservar, se puede modificar libremente para controlar el aspecto visual del banner.
Para concentrar en un único lugar las modificaciones a los CSS, creamos un nuevo archivo, custom-mitre.css
, y lo incluimos agregando esta línea en opac-head.htm
:
<link rel="stylesheet" type="text/css" href="[pft]v6003^h[/pft]opac/css/custom-[pft]v2104[/pft].css">
Estos son los cambios solicitados:
Usar por defecto el formato etiquetado de Catalis.
Archivos modificados:
local.conf
: DEFAULT_RECORD_STYLE=Etiquetado
opac-head.htm
: descomentar <link rel=“stylesheet” type=“text/css” href=“[pft]v6003^h[/pft]common/css/etiquetado.css”>
bib-record-2.htm
: proc('a6017~Etiquetado~a6017~Completo~a6017~Ficha~a6017~MARC~'),
custom-mitre.css
(hay muchos más cambios no registrados en el wiki):table#Etiquetado { font-family: verdana, arial, helvetica, sans-serif; font-size: 0.8em; margin: auto; <= centrar tabla width: 90%; <= ancho constante } table#Etiquetado td.label { font-style: normal; font-weight: bold; white-space: nowrap; <= etiqueta en una sola línea } table#Etiquetado .materialTypeHeader { background-color: #ACA698; <= color de la muestra de Raúl text-transform: uppercase; }
etiquetado.pft
: Título/responsables
(quité espacio); if v6001^t : v2104
(para que use DISPLAY_DOC_TYPE
)div#etiquetadoWrapper table#Etiquetado tfoot#etiqFoot tr td tbody tr td table thead tr th.materialTypeHeader tbody tr td.label td.data tr td.label td.data ... td#locationCell table thead tr th tbody tr td
Cambiar el fondo a colores cálidos en el formato de visualización del registro (de los índices me ocuparé en otra oportunidad). Te adjunto un modelo de los colores exactos para cambiar y sería ideal que estén así: alternados uno con otro y un poco más pronunciado el tono, salteando campos.
Lo que ví en algún lugar y que me encantó es que en la columna de la izquierda (es decir, donde están justamente las etiquetas) mantienen los mismos dos colores de los campos pero oscureciéndolos un poco más (si me permitís una palabra detestable: “agriseándolos”).
Bien, para lograr el efecto cebra (filas de colores alternados) adapté el script de http://www.alistapart.com/articles/zebratables. Archivos involucrados:
zebra-table.js
opac-head.htm
:<!-- Efecto cebra en tablas (2008-03-04) --> <script type="text/javascript" src="[pft]v6003^h[/pft]opac/js/zebra-table.js"></script> <script type="text/javascript"> function init() { if (document.getElementById("etiq")) { stripe("etiq"); } } window.onload = init </script>
etiquetado.pft
: comenté (<!– –>
) una <tr>
que tenía display: none
y afectaba la cuenta de filas.Para un análisis detallado del problema, ver Subcatálogos en el OPAC.
¿Cuál te parece que sería la forma más fácil –según tu criterio– como para que del mismo catálogo general se generen catálogos especiales? ¿Mediante alguna palabra en algún campo de MARC? Intento explicarme un poco más: por ahora tendríamos estas colecciones cuyos registros se deberían recuperar en forma separada del OPAC:
A la vez los registros de estas colecciones deben estar integrados todos en la base de datos (OPAC).
Decidimos: usar un campo local ad hoc, pero intentando limitar su uso a los pocos casos que lo requieran. Por ejemplo, periódicas y mapas no requieren el uso de tal campo, pues basta con tomar la información del leader del registro MARC.
En la visualización de un registro bibliográfico, eliminar los enlaces desde puntos de acceso que sólo están presentes en ese registro, y que por consiguiente no llevan al usuario a ningún otro registro.
¿Cómo se puede saber, al procesar un registro para su visualización, si un encabezamiento tiene más de un posting? Ver update-opac
2008-03-27: Ya está implementada una solución, para el estilo Etiquetado. Sólo hubo que modificar el archivo etiquetado.pft
, agregando algo como esto, tanto para los subject added entries como para los non-subject added entries:
/* Total de postings para este heading (2008-03-27) */ proc('d7101a7101¦', ref(['NAME']l(['NAME']'_HEAD_'v8100^9),v11), '¦') if v7101[1] > '1' then '<a href=...' else '<span>' fi,
Explicación: en las bases NAME y SUBJ, cada registro tiene un campo 11 con el total de postings para el heading, i.e., cada heading “sabe” cuántos postings tiene. Por su parte, en los registros bibliográficos cada heading tiene un subcampo $9 que lo vincula con la correspondiente base de headings, e.g.
100 1# $a Pérez, José. $9 000172
Por lo tanto, mediante un ref+lookup en la base de headings, podemos saber, desde el registro bibliográfico, si un heading tiene o no más de 1 posting (que es la condición para mostrar u ocultar el link).
TAREA: agregarlo al Modular. Usar una opción de configuración para decidir si esto se activa.
Eliminarlos de todas las páginas, excepto la página inicial del OPAC. [HECHO]
Ídem formulario de búsqueda.
Y lo mismo para el texto:
Consulte con los bibliotecarios para un mejor aprovechamiento de este catálogo: biblioteca@museomitre.gov.ar. Este catálogo cuenta con 99 registros, y fue actualizado el 08/10/2007 a las 12:10
ATENCION: al eliminar esos textos, también se ha perdido un margen por debajo del cuerpo de la página (ver p.ej. listado de autores). Posible solución:
custom-mitre.css: div#resultWrapper {margin-bottom: 1.5em} [HECHO]
ATENCION: ahora queda un vacío llamativo, falta algo en el pie de las páginas.
Raúl: “En los listados de autor título podría haber una opción de una columna con el tipo de soporte además de la fecha?”
Ya tenemos esa columna. Queda por ver qué valores queremos mostrar en ella, y cómo obtenerlos a partir de la información presente en cada registro.
Lista de valores:
Que el encabezamiento principal aparezca arriba, en negrita y un poco salido hacia la izquierda. Ver Capture.png, y agregar otros requerimientos de Raúl (ver chat).
Color de fondo: “cremita muuuuy clarito”. Opciones:
Archivos involucrados:
PENDIENTE: para seriadas, mostrar las existencias como una nota.
zero-hits.xis
) [HECHO]Puede buscar XXXX usando alguna de estas herramientas: Si lo desea, puede buscar XXXX en la Web usando alguna de estas herramientas: * Google * Google Scholar * Google Book Search * Scopus <= QUITAR * MathSciNet <= QUITAR
TAREA: Resucitar el formulario.
Primeras observaciones:
background-color: #FFFFFF;
en div#contentWrapper
.2008-03-31
Decidimos probar una estructura algo diferente para el form avanzado, combinando características de la búsqueda avanzada de Google con la Guided Search de LC:
Utilice uno o más de los siguientes criterios para encontrar registros de su interés: Encontrar registros que tengan... las palabras [ ] en [lista de campos] (x) y además ( ) o bien las palabras [ ] en [lista de campos] Pero excluir registros que tengan... las palabras [ ] en [lista de campos] Otras características de los registros
El diseño parece satisfactorio. Raúl sugiere probarlo en el OPAC del INMABB. Sin embargo, por ahora sólo tenemos el diseño del form, y hay que modificar el código de la aplicación para que estas búsquedas funcionen correctamente.
Otra sugerencia, para la búsqueda por año de publicación: MathSciNet ofrece estas 3 opciones:
HECHO (o empezado) 2008-05-07. Terminada la parte del form en 2008-05-12 (usando DOMAssistant). Pendiente: modificar opac.xis
y keyword-match-in-bib-record.xis
.
Otro detalle a tener en cuenta: al buscar por Lugar de publicación, aclarar si es por ciudad, país, etc. En general, la búsqueda basada en el campo 260 será por ciudad, y usando el campo 008 se puede ofrecer además la búsqueda por país.
Ver si es mejor que los títulos de cada bloque de campos no sean <lengend> de un fieldset.
2008-04-02
Dos opciones para presentar los operadores booleanos AND/OR: radio buttons o select. Preferimos un select a un par de radios, porque se lee más naturalmente si sólo se ve una opción a la vez.
Mirando el form de búsqueda avanzada de un OPAC de Koha, recordé que puede ser útil ofrecer las opciones de cómo ordenar los resultados, y cuántos mostrar por página. Raúl sugiere que no se debe volver muy complejo el form, ya que la presencia de numerosas opciones puede resultar intimidante, o hacer creer que es difícil buscar. Volviendo al form de búsqueda avanzada de Google, vemos una sencilla solución para ocultar/mostrar partes del form, usando JavaScript.
2008-04-07
Para aprender más sobre la búsqueda avanzada de Google: Searchlores.org
2008-04-10
Otro form avanzado para mirar: NCSU libraries.
Para un análisis del funcionamiento de la búsqueda avanzada, ver una página ad hoc en este wiki: Búsqueda avanzada en OpacMarc.
En Tipo de material sólo deben mostrarse las opciones disponibles en el catálogo.
2008-07-10
: Al hacer una búsqueda avanzada sale como <title> el texto “Índice de”
Varios aspectos han sido modificados. Pendientes:
Agregar estas funcionalidades.
Raúl: Es la primera vez que siento la necesidad de consultar la base mediante un numero de registro. Me quedó por ahí el numero “140” en la cabeza e hice lo siguiente fui a búsqueda nueva y en el recuadro “buscar por palabras” pinté Cualquier campo y escribí 140 en “contiene las palabras”. El resultado: WXIS|execution error|missing|expression|
De Mariana: añadir links para navegar por las páginas de resultados, usando números: 1 2 3 4 … Última
Prueba 2008-10-01: Python 2.4.1 (usando system() con wxis)
Con print_r(apache_get_modules())
(PHP) veo que mod_python está instalado.
Pero si accedo a http://www.museomitre.gov.ar/opacmarc/test.py recibo 403 Forbidden. Parece que si no se añade explícitamente AddHandler mod_python .py
en la config de Apache no se puede acceder a un .py.
¡Ahora sí! http://www.museomitre.gov.ar/opacmarc/test.py
Según indicaciones en http://www.campstaff.com/manual/mod/mod_python/inst-testing.html
.htaccess
AddHandler mod_python .py PythonHandler mptest PythonDebug On
mptest.py
from mod_python import apache def handler(req): req.content_type = 'text/plain' req.write("Hello World!") return apache.OK
(Nótese que con esta prueba, nada importa lo que haya en test.py; cualquier llamada a un “.py”, existente o no, produce lo mismo)
Django no está disponible, pero habría que ver si lo podemos usar sin tener que “instalarlo”.
Prueba 2008-10-01: sh: svn: command not found
Tareas del 16-dic-2009:
Hice un script en Python, update_mitre.py
, que se ocupa de las tres tareas: descarga por FTP la base de Catalis, invoca el script update-opac.sh
, y sube por FTP los archivos generados.
""" Updates the OPAC at Museo Mitre, located at http://www.museomitre.gov.ar/cgi-bin/opacmarc/wxis?IsisScript=opac/xis/opac.xis&db=mitre&showForm=simple FTP code based on http://effbot.org/librarybook/ftplib.htm """ import ftplib import os import subprocess ##### BEGIN CONFIG ##### # ftp server data host = 'webh.secyt.gov.ar' user = '*****' passwd = '******' admin_dir = '/home/efege/tmp/test-opacmarc-museomitre/opacmarc-2006.11.13/opacmarc-admin' # local working directory local_work_dir = '%s/work/mitre' % admin_dir # to download the original database server_source_dir = 'bases/catalis_pack/catalis/mitre' local_target_dir = '%s/original' % local_work_dir # to upload the generated files local_source_dir = local_work_dir server_target_dir = 'bases/opacmarc/opac/mitre' # the shell script that updates the OPAC update_opac_script = '%s/bin/update-opac.sh' % admin_dir ##### END CONFIG ##### def getbinary(ftp, filename, outfile=None): # fetch a binary file if outfile is None: outfile = sys.stdout ftp.retrbinary("RETR " + filename, outfile.write) def download_catalis_db(): ftp = ftplib.FTP(host) ftp.login(user=user, passwd=passwd) ftp.cwd(server_source_dir) os.chdir(local_target_dir) for filename in ('biblio.mst', 'biblio.xrf'): print 'Downloading file %s ...' % filename getbinary(ftp, filename, open(filename, 'w')) def upload_file(ftp, filename): ext = os.path.splitext(filename)[1] if ext in (".txt", ".htm", ".html"): ftp.storlines("STOR " + filename, open(filename)) else: ftp.storbinary("STOR " + filename, open(filename, "rb"), 1024) def upload_opac_files(): ftp = ftplib.FTP(host) ftp.login(user=user, passwd=passwd) ftp.cwd(server_target_dir) os.chdir(local_source_dir) for filename in os.listdir('.'): if os.path.isfile(filename): print 'Uploading file %s ...' % filename upload_file(ftp, filename) ftp.quit() def update_opac(): subprocess.call([update_opac_script, 'mitre']) if __name__ == '__main__': download_catalis_db() update_opac() upload_opac_files()
El script funciona correctamente cuando lo ejecuto manualmente. Al ejecutarlo desde cron, apareció un problema causado por la función cecho
que se define en update-opac.sh
. Como esa función no es esencial, la suprimí. Aun así, la tarea no se está ejecutando bien.
28-dic-2009: no recuerdo bien qué toqué, pero ahora funciona la actualización automática vía cron. Queda programada para ejecutarse de lunes a sábado a las 5 AM.
catalis opacmarc