Lun Jun 30, 2008 4:55 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
|
|
|
|
|
Con la función replace_content() cambias el contenido de la celda.
Yo suelo usar las facilidades que da CGI.pm para hacer todo el código HTML que necesito.
| Código: |
# Creación de los enlaces a los sumarios de cada día
foreach my $dia ( keys %dias_publicados ) {
my $enlace = $cgi->url(-path_info => 1) . "?d=$dia;m=$mes;a=$anno";
$calendario->item($dia)->attr(onmouseover => q(javascript:this.className='sobrepub'));
$calendario->item($dia)->attr(onmouseout => q(javascript:this.className='fuerapub'));
$calendario->item($dia)->attr(onclick => qq(javascript:parent.location='$enlace'));
$calendario->item($dia)->replace_content($cgi->a({-href => $enlace, -class => 'pub'}, $dia));
} |
En %dias_publicados tengo los días en los que me interesa poner un enlace. Los recorro (sin importar el orden) y para cada uno creo el $enlace que les corresponde.
Para cada celda del calendario les pongo tres atributos, que son eventos del ratón para facilitar la interacción con el usuario.
Y finalmente, cambiamos el contenido de la celda con un $enlace (a()), y de contenido, el número del $dia del mes. |
|
|
|

Lun Jun 30, 2008 6:36 pm
|
 |
danimera
Perlero Adicto

|
Registrado: 23 Jun 2005
Mensajes: 212
Ubicación: Colombia
|
|
|
|
|
Explorer, cuando utilizo algo parecido a tu ejemplo, dentro de las celdas en vez de hacerme el link me muestra
<a rel="lightbox" href="http://localhost/bitacora/riocauca/index.pl?d=;m=05;a=2008">19</a> en vez de ponerme en link dentro del número del día...
No sé si me hice entender, lo quiero decir es que en vez de hacer el vínculo, me muestra, por decir, el código HTML dentro la celda. |
|

Mar Jul 01, 2008 1:01 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
|
|
|
|
|
El módulo HTML::CalendarMonth usa el método as_HTML() del módulo HTML::Element, que dice que su misión es la de 'escapar' todos los caracteres extraños, que eso incluye a los caracteres que usas como código HTML: '<', '>', '&', etc.
La solución es decirle que NO haga eso, que no escape el contenido que le hemos pasado a HTML::CalendarMonth.
Yo lo resolví haciendo un my $html = $calendario->as_HTML( q{|} );. Lo que hago es pedirle que me genere el calendario en html, pero que solo 'escape' el carácter '|', que, además, no uso en ningún sitio, pero estoy obligado a darle al menos algo a la función para que no escape todos los caracteres extraños. |
|
Mar Jul 01, 2008 8:21 am
|
 |
danimera
Perlero Adicto

|
Registrado: 23 Jun 2005
Mensajes: 212
Ubicación: Colombia
|
|
|
|
|
| Huy, gracias explorer, ya no te molesto más; por ahora, ok. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|