GENERAL
BASC in the World
Current News
Links
List of BASC Certified
Companies
WBO International Auditors
WBO Certification Auditors
Rules and Standards
Data Base Update
 
 
VI Congreso Mundial BASC
eLearning



 
 
#!/usr/local/bin/perl ########################################################################## # # OJO: MODIFICACIÓN TABLAS # # En febrero 2010 se modifica la tabla notlistas, adicionando columna así: # # ########################################################################## use DBI; use CGI qw(:cgi); #use strict; $x = index($ENV{DOCUMENT_ROOT}, "/htdocs"); $document_root = substr($ENV{DOCUMENT_ROOT}, 0, $x) if ($x != -1); $document_root = "/home/wmviejowbasco/public_html"; require "$document_root/noticias/config.cgi"; require "pdlib.pl"; local ($dbh,$sth,$query,$numreg,$numret,@row,%numcampo,$nivel,$fila); local @meslit = qw(Ene Feb Mar Abr May Jun Jul Ago Sep Oct Nov Dic); print "Content-type: text/html\n\n"; # ¶metros retorna un HASH conteniendo $PARAM{variable} = valor ¶metros; if (21==1) { print "**** ENV ****"; while (($key, $val) = each %ENV) { print "$key = $val
\n"; } print "**** PARAM ****"; while (($key, $val) = each %PARAM) { print "$key = $val
\n"; } } $ev = $PARAM{ev}; # Conecto Base de Datos #&conectardb("$document_root/cgi-bin/noticias/$ENV{SERVER_NAME}"); &conectardb("$db_file"); # Obtenemos el codigo de la noticia a mostrar del URL. $codigo = $ENV{QUERY_STRING_UNESCAPED}; ########################################################################## # # Mostrar la noticia # ########################################################################## if ($PARAM{muestranot} == 1) { # Se requiere imprimir noticia, tomamos configuracion de la noticia $query = "SELECT * FROM notcontrol WHERE cod_aut = '$ev'"; $sth = $dbh->prepare($query) or die "Error - $query : $dbh->errstr
\n"; $rv = $sth->execute or die "Error $sth->errstr
\n"; if ($sth->rows == 0) { &mensaje("No hay programación para esta lista.","#"); exit 0; } $row = $sth->fetchrow_hashref; foreach (keys %$row) {$$_ = $$row{$_}} $query = "SELECT f_not,titulo,resumen,texto FROM noticias WHERE codigo = '$codigo'"; $sth = $dbh->prepare($query) or die "Error - $query : $dbh->errstr
\n"; $rv = $sth->execute or die "Error $sth->errstr
\n"; if ($sth->rows == 0) { &mensaje("La noticia seleccionada no se encuentra disponible.","#"); exit 0; } $row = $sth->fetchrow_hashref; foreach (keys %$row) {$$_ = $$row{$_}} ($ano_not,$mes_not,$dia_not) = split /-/,$f_not; ### ### En febrero 2010 se modifica el programa para lo siguiente: ### Si la noticia no contiene contenido ($texto), y además sólo hay un documento adjunto... ### entonces se muestra el documento de una vez. Si es imagen se muestra como una noticia normal, pero si es documento, se abra el documento de una vez. ################################# ### La rutina documentos_adjuntos revisa los documentos adjuntados a una noticia y retorna dos variables que contienen: ### $listaimagenes - El código html necesario para mostrar las imágenes que están adjuntadas con la noticias ### $listadocumentos - El código html para mostrar la lista de documentos asociados (no imágenes) con sus enlaces para abrirlos ### ($listaimagenes, $listadocumentos) = documentos_adjuntos($codigo); ### Ojo, quité la clase a $texto ya que viene incluida cuando se usa FCKeditor. print <$titulo
$dia_not-$meslit[$mes_not-1]-$ano_not

$resumen

$texto ENDTEXT # Muestra las imágenes print $listaimagenes; # Muestra la lista de documentos adjuntos if ($listadocumentos ne '') { print qq~
Documentos relacionados:

    ~; print $listadocumentos; print '
'; } } ########################################################################## # # Mostrar la lista de noticias # ########################################################################## if ($PARAM{lista} ne "") { local $querycodigo; my $enlace_noticia; # Se requiere imprimir lista, tomamos configuracion de la lista my $query = "SELECT * FROM notlistas WHERE ntlista = '$PARAM{lista}'"; my $sth = $dbh->prepare($query) or die "Error - $query : $dbh->errstr
\n"; my $rv = $sth->execute or die "Error $sth->errstr
\n"; if ($sth->rows == 0) { &mensaje("No hay programación para esta lista.","#"); exit 0; } my $row = $sth->fetchrow_hashref; foreach (keys %$row) {$$_ = $$row{$_}} # Seleccionamos las noticias a mostrar #if ($codigo eq "") {$querycodigo = ""} else {$querycodigo = " and codigo<>$codigo"} $querycodigo = ($codigo eq "") ? '' : " and codigo <> $codigo"; # Si número máximo noticias a mostrar es -1, mostrar todas las noticias my $limite = ($ntmaxlista < 0) ? "" : " LIMIT $ntmaxlista"; $query = "SELECT codigo, portada, f_not, titulo, resumen FROM noticias WHERE tipo='$ev' and activo='Y' $querycodigo and f_ini <= CURDATE() and f_fin >= CURDATE() ORDER BY f_not DESC, codigo $limite"; $sth = $dbh->prepare($query) or die "Error - $query : $dbh->errstr
\n"; $rv = $sth->execute or die "Error $sth->errstr
\n"; if ($sth->rows == 0) { print "
"; } else { $fila = 1; $td_not = "td1_not"; $a_not = "a_not"; while ( $row = $sth->fetchrow_hashref ) { foreach (keys %$row) {$$_ = $$row{$_}} if ($ntdirecto eq 'S') { ($listaimagenes, $listadocumentos) = documentos_adjuntos($codigo, $ntdirecto); $enlace_noticia = ($listadocumentos eq '') ? "$nturl?$codigo" : $listadocumentos; #$enlace_noticia = $listadocumentos; } else { $enlace_noticia = "$nturl?$codigo"; } ($ano_ini,$mes_ini,$dia_ini) = split /-/,$f_ini; ($ano_fin,$mes_fin,$dia_fin) = split /-/,$f_fin; ($ano_not,$mes_not,$dia_not) = split /-/,$f_not; if ($fila == 1) { $tdsty = $nttdlis1; $fecsty = $ntfeclis1; $titsty = $nttitlis1; $ressty = $ntreslis1; $massty = $ntmaslis1; $sinsty = $ntsinlis; $fila = 2; } else { $tdsty = $nttdlis2; $fecsty = $ntfeclis2; $titsty = $nttitlis2; $ressty = $ntreslis2; $massty = $ntmaslis2; $sinsty = $ntsinlis; $fila = 1; } #endif if ( $PARAM{lista} eq 'p1' && 1 == 0) { # Esto sólo es para mcconsultores &muestra_procesos_seleccion; } else { print "\n", ""; } } # endwhile } # endif ($sth->rows == 0) }# if (($PARAM{lista} ne "") # Desconectamos de Base de Datos $sth->finish; $rv = $dbh->disconnect; exit 0; ################################# ### documentos_adjuntos ################################# sub documentos_adjuntos { my ($codigo, $ntdirecto) = @_; my $query, $sth, $dbh, $row, $rv, $documentos, $listaimagenes, $listadocumentos, @array, $exten, $imagenes, $esimagen, $enlace, $enlace_fin; $listaimagenes = $listadocumentos = ''; # Verificamos si hay documentos adjuntos a esta noticia $query = "SELECT * FROM notdocum WHERE codigo = '$codigo' order by orden"; $sth = $dbh->prepare($query) or die "Error - $query : $dbh->errstr
\n"; $rv = $sth->execute or die "Error $sth->errstr
\n"; if ($sth->rows != 0) { # Suponemos que no hay documentos relacionados (posiblemente son todos imagenes) $documentos = 0; $listaimagenes = ''; #$listadocumentos = qq~
Documentos relacionados:

    ~; while ( $row = $sth->fetchrow_hashref ) { foreach (keys %$row) {$$_ = $$row{$_}} if ($documento ne "") { @array = split(/\./, $documento); $exten = pop(@array); $imagenes = "gif jpeg jpg jpe png tiff tif GIF JPEG JPG JPE PNG TIFF"; $esimagen = index($imagenes, $exten); local $enlace = $enlace_fin = ''; if ($esimagen != -1) { if ( -e $dir_documentos."/mx_".$documento) { $enlace = qq~~; $enlace_fin = ''; } ### cuando la lista requiere enlace directo al documento (sin abrir la noticia), se retorna el url del documento, sino se crea la lista de imágenes. if ($ntdirecto eq 'S') { $listadocumentos = "$url_documentos/$documento"; last; } else { $listaimagenes .= qq~
    $enlace$descripcion$enlace_fin

    ~; } #print qq~
    $enlace$descripcion$enlace_fin

    ~; } else { # Marcamos que si hay documentos relacionados $documentos = 1; if ($ntdirecto eq 'S') { $listadocumentos = "$url_documentos/$documento"; last; } else { $listadocumentos .= qq~
  • $descripcion ($documento)

  • ~; } } } } # Si hay documentos relacionados, los mostramos. #$listadocumentos .= '
' if ($listadocumentos ne ''); #if ($documentos) {print "$listadocum"} } $sth->finish; return ($listaimagenes, $listadocumentos); } ################################# ### Muestra procesos selección ################################# sub muestra_procesos_seleccion { print < TITULO print "\n", "
$ntsininf
"; if ($ntportada eq 'S') { if ( -e $dir_documentos."/th_".$portada) { print qq~$titulo~; } } if ($ntfecha eq "S") { print "$dia_not-$meslit[$mes_not-1]-$ano_not
"; } if ($ntfecha eq "L") { print "$dia_not-$meslit[$mes_not-1]-$ano_not
"; } if ($nttitulo eq "S") { print "$titulo
"; } if ($nttitulo eq "L") { print "$titulo
"; } if ($ntresumen eq "S") { print "$resumen
"; } if ($ntresumen eq "L") { print "$resumen
"; } if ($ntmasinf eq "S") { print "$ntmeninf"; } print "
"; if ($nttitulo eq "S") { print "$titulo"; } if ($nttitulo eq "L") { print "$titulo"; } print <
FINTITULO if ($ntresumen eq "S") { print "$resumen
"; } if ($ntresumen eq "L") { print "$resumen
"; } if ($ntmasinf eq "S") { print "$ntmeninf"; } print <
 
FINNOTA }

img img img
img
>>VIEW PREVIOUS NEWS
img
img img img

Copyright © 2005-2016 WORLD BASC ORGANIZATION. All rights reserved.
Headquarters: 2335 N.W. 107 Avenue, BOX 157 - Miami Florida, 33172 | Phones: + 1 (786) 805 4013 Telfax: +1 (786) 805 4014
E-mail info@wbasco.org