[greenstone_es] Re: Visualizar imagen siguiente

  • From: marcelo yornet <baryornet@xxxxxxxxxxx>
  • To: <greenstone_es@xxxxxxxxxxxxx>
  • Date: Tue, 29 May 2012 23:41:18 -0300

Gracias Pedro:
No tengo del todo claro cuales son toooodas las circunstancias en que el html 
viene desde el server. Pero casi seguro que en las lineas format que uno 
especifica un TD el server manda un TR, aunque algunas se las encuentra en los 
macros.
Al igual que la <div class="documenttext"> que devuelve antes de format 
DocumentText.

Como trabajo con colecciones que son usadas permanentemente como material de 
trabajo sustituyendo al papel (o sea no para una consulta esporádica) necesito 
interfaces amigables, rápidas. Así que de esas cosas he hecho varias.
Pero para eso es fundamental sacarse el html 4 de encima con las tablas y todas 
esas atrocidades. Sobre todo teniendo una belleza como es el actual HTML5, CSS3 
y frameworks de javascript disponibles como Jquery.
Por eso yo reemplazo la cabecera html, la macro _htmlhead_  del package style 
en mi extra.dm para que funcione con html5.

Hay mucha tela para cortar. Y es un tema que me interesa, asi que cuando 
quieras postealo y vemos.

Saludos Marcelo.

From: josepedrodiaz@xxxxxxxxx
Date: Tue, 29 May 2012 22:55:06 -0300
Subject: [greenstone_es] Re: Visualizar imagen siguiente
To: greenstone_es@xxxxxxxxxxxxx

Excelente email Marcelo. Me va a servir seguramente, aunque no haya partido de 
mí la consulta.
Solamente me quedó la duda de en qué casos el código html es devuelto por le 
servidor. Saber esto seguro me ayudará llegado el caso.



Saludos, Pedro.
El 29 de mayo de 2012 22:45, marcelo yornet <baryornet@xxxxxxxxxxx> escribió:






Juan Manuel:

Si le vas a poner muchas, pero muchas, pero muchas ganas, se puede. 
Pero es bastante complicado y tedioso y requiere conocimiento de html, de 
javascript, de CSS y del lenguaje de macros. 
Sobre todo porque Greenstone ayuda que muy poco a hacer interfaces amigables. 


Más que nada porque está todo en HTML 4 (del año 99), totalmente en desuso, 
aunque tambien podés usar xhtml del año 2001.
Y además porque el texto con información y el html de presentación se mezclan 
permanentemente y son devueltos en algunos casos por el archivo de 
configuración, en otros por los archivos de macros y en otros por el servidor 
(esto último es lo peor de todo). Así que rastrearlos para modificar se hace 
tan dificil que a veces ya no vale la pena.



En fín, yo lo hago de la siguiente forma:
En vez de poner todo dentro de tablas (actualmente es considerado un error 
utilizar tablas para otra cosa que no sean datos tabulados) uso listas 
desordenadas, el tag UL de html, y los documentos devueltos por el clasificador 
los pongo en tags li (list item). 


Esto es mas facil de manipular mediante CSS y se les puede dar la presentación 
que a uno le guste. Como lista o como un mosaico que es tu caso.
Ademas en cada uno de esos tag li guardo la información que necesito. En el 
ejemplo tuyo podriamos guardar el DOCOID de cada documento para saber cual 
sigue.



en collect hago un format como este por ejemplo
format CL1VList "
<li id=\'[DocOID]\' class=\'item\'>
    <a href=\'[href].1\'><h3>[DocOID]</h3>
        <img class=\'imagen\' 
src=\'_httpcollection_/index/assoc/[assocfilepath]/[child(first):Image]\' />


    </a>
</li>"

despues en extra.dm de mi coleccion (para no interferir con otras colecciones)
rescribo la macro content del package query
 y le escribo sobre el final una linea como la que sigue


_If_("_cgiargd_" eq "",<ul class="cuarto">)

donde evaluo que si no especificamos un documento (si el arg d está vacio) voy 
a usar un tag ul para contener los li que devuelvo con CL1VList



en la macro footer de package query hago lo mismo
    _If_("_cgiargd_" eq "",</ul>)

(las comprobaciones podrían ser otras... yo uso esas.)

despues en los css especificas dos reglas para obtener las cuatro imagenes por 
fila



.cuarto{width:100%;}
.cuarto li:{float:left; width:23%; margin:1%;}

Con eso ya tenés presentado la primer imagen de cada documento 4 por fila.

A su vez como cada uno de estos tags li tiene el id del documento que necesitas 
podés usar cualquier plugin de jquery para hacer una galería de imágenes. O 
crear algun mecanismo en javascript para ir averiguando eso y mostrandolo 
cuando lo necesites.



No obstante hay mucho código que se devuelve sin que nadie lo haya pedido como 
por ejemplo 
<div class="top" id="CL1">
<div id="group_top" class="v_list">
pero eso lo manda el server así que no hay mucho para hacer salvo largarse a 
compilar cada vez que sale una version nueva.



El mismo problema tengo con el format DocumentVList al que si o si me lo 
encierra en un TR. Hicimos un ticket para que se revea ese mecanismo hace como 
2 años pero ahí quedó. 
Es un inconveniente porque este mismo tipo de mecanismo sería muy util para la 
navegacion de secciones pero al tener un TR encapsulando el DocumentVList  te 
rompe cualquier interfaz que no sea una celda. 


Lo soluciono cargando todo en un objeto javascript para despues borrar la 
<table id="tabwidth"> con todo su contenido y crearme un ul mas decente. Pero 
es un bajón.



En fin, es tedioso y complicado pero siempre hay alguna forma de hacerlo. Y 
siempre es de ayuda tener un informático cerca.

Saludos y espero que les sea de ayuda. 

Marcelo Yornet




From: jmschiavone@xxxxxxxxxxx
To: greenstone_es@xxxxxxxxxxxxx
Subject: [greenstone_es] Re: Visualizar imagen siguiente


Date: Tue, 29 May 2012 21:40:07 -0300





OK Diego, clarisimo como siempre. 
Muchas gracias!
JM

From: diegospano@xxxxxxxxx
Date: Tue, 29 May 2012 15:35:12 -0300


Subject: [greenstone_es] Re: Visualizar imagen siguiente
To: greenstone_es@xxxxxxxxxxxxx

Hola Juan Manuel,

2012/5/28 juan manuel schiavone <jmschiavone@xxxxxxxxxxx>








Hola lista, me gustaría hacer una consulta:
Tengo una coleccion de imagenes JPG, las cuales GS me lista una imagen 
(miniaturas) debajo de otra  dentro del clasificador Jerárquico. Cuando hago 
clic sobre una imagen, la veo en pantalla completa. Se puede agregar un boton  
("next" por ejemplo) para poder pasar a la siguiente imagen de la lista y no 
tener que volver atrás y seleccionar una por una??





El problema de eso es que no hay manera de saber cual es el siguiente nodo en 
la jerarquía. Por ejemplo, la url
http://miblioteca/gsdl/cgi-bin/library.cgi?a=d&c=fotograf&cl=CL3.1.1&d=HASH016b5b8a1c66d9b029961f87




indica que estoy visualizando el documento HASH.... que pertenece al 
clasificador 3, nivel 1, subnivel 1.
El siguiente documento es que tiene la URL
http://mibiblioteca/gsdl/cgi-bin/library.cgi?a=d&c=fotograf&cl=CL3.1.1&d=HASH01f10bcba12f7125a5a8b424




Como verás, no hay manera de que se pueda hacer un botón next ya que tendrías 
que conocer de antemano el hash del documento a visualizar.
 



Ya que estamos, se puede listar las imagenes en varias columnas?? O sea, en vez 
de que sea una debajo de la otra, poder mostrar la lista con 2 ó 3 columnas??



Las listas se van armando con tablas donde cada nodo es una fila. Quizás 
jugando un poco con la cadena de formateo se pueda hacer que ponga todas las 
imágenes que pertenecen a una misma rama dentro un de una misma celda, pero 
como controlar que sean 2 o 3 nada más?. No lo veo muy posible.




 Saludos y gracias


JM                                        




                        Diego Spano Director de Proyectos, Prodigio Consultores




 Tel: (54 11) 5093-5313 

Argentina
dspano@xxxxxxxxxxxxxxxxxxxxxxx | www.prodigioconsultores.com



Contact me:   diegospano  diegospano




                                                                                
                                                




                        
                                
                                        Want a signature like mine?
                                
                                CLICK HERE.
                                
                                 
                        
                                                                                
                  

                                          

Other related posts: