// // // DIGIBANNER PHP v 2.0 (Rel. 22-Jun-08) // // + Arquivo principal + // // // // Novidades dessa versão: // // - Suporte a banner flutuante. // // - Suporte a prexifo das tabelas. // // - Troca de parametros pelo global ao // // invés da referência de objetos. // // - Suporte a dados consolidados // // // $tbl = 'sind'; // Vetor com os códigos dos banners válidos com os respectivos pesos // $listaGeral = array(); $posicoes = array(); // ** MONTAR BANNERS ** // // Cria o vetor do banners válidos e os coloca no vetor listaGeral através da passagem por // // referência. Monta o vetor de relação (posições) entre os tipos de banners e suas posições // // no vetor listaGeral // function carregarBanners( $area ){ global $listaGeral, $posicoes, $tbl; $hoje = date( "Y-m-d" ); // Data de hoje // $rsListaTipos = mysql_query( "SELECT codigo FROM ".$tbl."_banners_tipos" ); // Lista os tipos de banners // while( $tipo = mysql_fetch_array( $rsListaTipos ) ){ // Repete por todos os tipos // $lista = array(); // Cria um vetor de banners para cada tipo diferente // $rsListaBanners = mysql_query( "SELECT b.codigo, b.peso FROM ".$tbl."_banners b JOIN ".$tbl."_banners_rel_areas r ON b.codigo = r.cod_banner WHERE b.status = 'A' AND b.data_inicio <= '$hoje' AND b.data_termino >= '$hoje' AND r.cod_area = " . $area . " AND b.tipo = " . $tipo["codigo"] ); // Lista os banners válidos daquele tipo apenas while( $banner = mysql_fetch_array( $rsListaBanners ) ){ // Coloca cada banner no vetor, n vezes, onde n é o seu peso // for( $i = 0; $i < $banner["peso"]; $i++ ){ // Repete n (peso) vezes // array_push( $lista, $banner["codigo"] ); // Adiciona o banner no vetor // } } array_push( $posicoes, $tipo["codigo"] ); // Adiciona o vetor em um vetor criando uma matriz de banners // array_push( $listaGeral, $lista ); // Coloca o tipo do banner em outro vetor para relacionar os banners na matriz // } } // ** BUSCAR BANNER ** // // Recebe um tipo de banner e escolhe um na lista // function buscarBanner( $tipo, $flutuacao ){ global $listaGeral, $posicoes, $tbl; $arr2 = array(); // Vetor auxiliar // $cod_vetor = array_search( $tipo, $posicoes ); // Encontra a coluna na matriz para o tipo de banner escolhido // $arr = $listaGeral[ $cod_vetor ]; // Joga em arr apenas os banners da coluna escolhida // //print_r( $arr ); $tam = sizeof( $arr ); // Pega o tamanho de arr // $pos = rand( 0, $tam - 1 ); // Escolhe uma posição aleatória no vetor // $escolhido = $arr[$pos]; // Escolhe o banner daquela posição escolhida // for( $i = 0; $i < $tam; $i++ ) // Roda todo o vetor // if( $escolhido != $arr[$i] ){ // Escolhe todos os que são diferentes do escolhdo e... // array_push( $arr2, $arr[$i] ); // ...os coloca em arr2 // } $arr = $arr2; // Define arr sendo igual a arr2, ou seja, igual a ele mesmo menos todos os banners iguais ao escolhido // mostrarBanner( $escolhido, $flutuacao ); // Chama a funcção que mostra o banner na tela // $listaGeral[$cod_vetor] = $arr; // Redefine a matriz agora sem o banner escolhido para que ele não seja chamado denovo na página // } // ** MOSTRAR BANNER ** // // Esta função mostra o banner na tela // function mostrarBanner( $cod_banner, $flutuacao ){ global $tbl; $pasta = "../uploads/banners/"; if( $cod_banner != "" ){ // Busca informações do banner // $rsLeBanner = mysql_query( "SELECT b.arquivo, b.link, b.target, t.altura, t.largura, b.descricao, b.flutuante FROM ".$tbl."_banners b JOIN ".$tbl."_banners_tipos t ON b.tipo = t.codigo WHERE b.codigo = " . $cod_banner . " LIMIT 1" ); $banner = mysql_fetch_assoc( $rsLeBanner ); $ext = substr( $banner["arquivo"], strlen( $banner["arquivo"] ) - 3, 3 ); // Mostra o banner // if( $banner["flutuante"] == "N" ){ // Localizado // echo "