Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Existe un módulo para manejar calendario
Ir a página Anterior  1, 2
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Módulos
Mensaje Lun Jun 30, 2008 4:55 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
Responder citando

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.
Mensaje Lun Jun 30, 2008 6:36 pm
danimera
Perlero Adicto
Perlero Adicto
Registrado: 23 Jun 2005
Mensajes: 212
Ubicación: Colombia
Responder citando

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.
Mensaje Mar Jul 01, 2008 1:01 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
Responder citando

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.
Mensaje Mar Jul 01, 2008 8:21 am
danimera
Perlero Adicto
Perlero Adicto
Registrado: 23 Jun 2005
Mensajes: 212
Ubicación: Colombia
Responder citando

Huy, gracias explorer, ya no te molesto más; por ahora, ok.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Módulos Todas las horas son GMT - 6 Horas
Ir a página Anterior  1, 2
Página 2 de 2



Powered by phpBB © 2001, 2005 phpBB Group