#!/usr/bin/perl use DBI; use strict; use vars qw ($rootdir $scripturl $dbh $sth $noheader %FORM $random %config %msg $dbquery $fecha $usuario %Cookie $id_usuario_autentificado $hora $iframe %scripts $nivel %cache_template); use CGI qw/:standard/; use CGI::Carp qw(fatalsToBrowser); BEGIN { if ($0 =~ m!(.*[/\\])!) { $rootdir = $1; $rootdir =~ s/\\/\//g; } else { $rootdir = './'; } unshift @INC, $rootdir . 'admin/ofertas/lib'; } require "lib.pl"; require "common.pl"; require "cookie.pl"; require "init.pl"; InitPersistente(); Inicio(); exit; sub Inicio { my @exportar = qw (query); my $buscar_tag = "grillaofertas"; my $templatefile = "template_listado_ofertas.htm"; my ($grillaofertas,$paginas) = GrillaOfertas($templatefile); my %namespace = ( PAGINAS => $paginas, GRILLAOFERTAS => $grillaofertas, RANDOM => $random ); Template($templatefile,\%namespace,\@exportar,$buscar_tag); exit; } sub GrillaOfertas { my $templatefile = shift; my $renglon_grilla = ExtraerDesdeTemplate("grillaofertas",$templatefile); my $grilla; $FORM{'page'} = 1 if (!$FORM{page}); $FORM{'perpage'} = 20 if (!$FORM{perpage}); $FORM{'maxp'} = 15 if (!$FORM{maxp}); my ($cp,$cp_bk); my $filtros; $FORM{query} = Trim($FORM{query}); if ($FORM{query}) { my $query = $FORM{query}; $query =~ s/\\//g; $query =~ s/\'/\\\'/g; $filtros .= qq~ and (id_ofertas like '%$query%' or nombre like '%$query%' or emisor like '%$query%' ) ~; } if ($FORM{id_categorias}) { $filtros .= qq~ and c.id_categorias = $FORM{id_categorias}~; } my $stop = $FORM{page} * $FORM{perpage}; my $start = $stop - $FORM{perpage}; my $q = qq~select o.*, c.descripcion as categoria from ofertas o, categorias c where o.id_categorias = c.id_categorias $filtros and o.publicar = 'S' order by o.fecha_alta desc ~; my $count = ContarRegistros($q); $q .= qq~ limit $start,$FORM{perpage} ~; my $h = $dbh->prepare($q) || die SqlError("$!
$DBI::errstr
$q"); $h->execute() || die SqlError("$!
$DBI::errstr
$q"); my %r; $h->bind_columns( \( @r{ @{$h->{NAME_lc} } } )); while ($h->fetch) { #$r{nombre} = ReducirPorPalabras($r{nombre},6); my $renglon = $renglon_grilla; #if ($r{publicar} eq 'S') { $renglon =~ s/\#FFFFFF/#E2F5E2/g } #if ($r{publicar} eq 'N') { $renglon =~ s/\#FFFFFF/#FFEAEA/g } $renglon =~ s/\%([A-Z_1-9]+)/$r{lc($1)}/g; $grilla .= $renglon; } $h->finish; ### seperacion por páginas my $cantpaginas = $count / $FORM{'perpage'}; for (my $i=0;$i < $cantpaginas; $i++) { $cp ++ } my $cp_bk = $cp; $stop = $count if ($stop > $cp && $FORM{'page'} eq $cp); #### FIX PARA EL MOSTRANDO my $otros_links = "query=$FORM{query}&id_categorias=$FORM{id_categorias}&r=$random"; my %separar = ( CANT_ELEMENTOS => $count, CANT_PAGINAS => $cp, CANT_PAGINAS_BK => $cp_bk, PAGINA_ACTUAL => $FORM{page}, ELEMENTOS_POR_PAGINA => $FORM{perpage}, MAXIMO_PAGINAS_MOSTRAR => $FORM{maxp}, MULTIPLICADOR => $FORM{mul}, OTROS_LINKS => $otros_links, #SCRIPT => "$scripts{cursos}", ); my $paginas = SepararEnPaginas(\%separar); return ($grilla,$paginas,$count); }