evePHP: Classe para desenvolvimento PHP

Publicado por EVERTON DA ROSA 02/01/2008

[ Hits: 5.847 ]

Homepage: http://everton3x.github.io

Download evePHP-1.0.zip




evePHP é uma classe que provê ao desenvolvedor várias funções que facilitam o desenvolvimento de aplicações PHP.

  



Esconder código-fonte

<?
/*
evePHP: Classe para desenvolvimento PHP

-----------------------------------------------------

Desenvolvido por Everton da Rosa.
Licença GNU (www.gnu.org).

-----------------------------------------------------

evePHP é uma classe PHP com diversas funções que facilitam o desenvolvimento de aplicações PHP
Versão 1.0 (21 de novembro de 2007)

Funções: criar tabela com paginação, ordenação e filtragem de resultados

Futuro: xtab: efeito sobre a linha com foco do mouse. Outras funções: validação e formatação de CPF, CNPJ, data, hora; tratamento de texto; manipulação de data e hora (somar, diferença, conversão, etc);

Changelog:
24/11/2007:
- Versão inaugural da evePHP

Para detalhes e ajuda complementar, consulte http://www.php.net/manual/pt_BR/index.php (manual em português do PHP)
Tópicos recomendados:
- Classes e Objetos (PHP 5): http://www.php.net/manual/pt_BR/language.oop5.php
- Variáveis: http://www.php.net/manual/pt_BR/language.variables.php

Caso faça correções, melhorias ou modificações, favor contatar o desenvolvedor através do e-mail everton3x@gmail.com enviando o código para atualização da classe nos sites onde ela se encontra hospedada.

Para exemplo de uso, veja o arquivo evePHP.*.samples.php

Ao utilizar esta classe, por favor indique seu autor da seguinte forma:
-----------------------------------------------------
evePHP: Classe para desenvolvimento PHP

Desenvolvido por Everton da Rosa (everton3x@gmail.com).
Licença GNU (www.gnu.org).
-----------------------------------------------------

Ao utilizar código baseado nesta classe, por favor referencie da seguinte forma:
-----------------------------------------------------
Baseado na classe evePHP: Classe para desenvolvimento PHP, desenvolvida por Everton da Rosa (everton3x@gmail.com) sob licença GNU (www.gnu.org).
-----------------------------------------------------

*/


class evePHP{
   function xtab($config){
      if(!is_array($config)){
         exit('evePHP::xtab: O parâmetro de configuração não é válido!');
      }
      if(!$config['serialized']){
         $sql = $config['sql'];
         $size = $config['size'];
         $start = 0;
         $order = '';
         if($config['xtabField'] != ''){
            $xtabField = $config['xtabField'];
         }else{
            $xtabField = $unserialized['xtabField'];
         }
         if($config['xtabSearch'] != ''){
            $xtabSearch = $config['xtabSearch'];
         }else{
            $xtabSearch = $unserialized['xtabSearch'];
         }
      }else{
         $unserialized = unserialize(stripcslashes(html_entity_decode($config['serialized'],ENT_QUOTES)));
         if($config['order'] != ''){
            $order = $config['order'];
         }else{
            $order = $unserialized['order'];
         }
         if($config['xtabField'] != ''){
            $xtabField = $config['xtabField'];
         }else{
            $xtabField = $unserialized['xtabField'];
         }
         if($config['xtabSearch'] != ''){
            $xtabSearch = $config['xtabSearch'];
         }else{
            $xtabSearch = $unserialized['xtabSearch'];
         }
         $sql = $unserialized['sql'];
         $size = $unserialized['size'];
         $start = $unserialized['start'];
      }
      
      if($xtabField == '' || $xtabSearch == ''){
         $where = '';
      }else{
         $where = ' and '.$xtabField.' like "'.$xtabSearch.'" ';
      }
      
      $sqltotal = $sql.' '.$where;//sql uzado para calcular o número de páginas
      $sqlpage = $sql.' '.$where.' '.$order.' limit '.$start.','.$size; //sql para pegar os dados da página
      
      //nesta seção é feita a pesquisa no banco de dados. Estou usando a classe eveQuery, porém você pode modificar como você quiser
      //É aqui que será utilizado $config[connection]
      require('eveQuery.php');
      $eveQuery = new eveQuery();
      $resource = $eveQuery->query($sqlpage,'mysql',$config['connection'],$config['connection']['db']); //executa a consulta . não mude o nome da variável $resource
      $getpages = $eveQuery->query($sqltotal,'mysql',$config['connection'],$config['connection']['db']); //pesquisa o total de linhas para calcular as páginas
      //fim da parte de conexão e consulta
      
      $NumeroDeLinhasTotal = mysql_num_rows($getpages);//retorna o número de linhas total da tabela
      $NumeroDeLinhas = mysql_num_rows($resource);//retorna o número de linhas do resultado
      $NumeroDeCampos = mysql_num_fields($resource); //pega o número de campos do resultado
      $NumeroDePaginas = ceil($NumeroDeLinhasTotal/$size); //calcula o total de páginas
      
      $table = '<table id="xtabTable">'; //abre a tabela
      $table .= '<tr id="xtabHeadTR">'; //abre a linha do cabeçalho
      for($i = 0;$i < $NumeroDeCampos; $i++){//monta o cabeçalho da tabela
         if(!$unserialized['start']){$startthis = 0;}else{$startthis = $unserialized['start'];}//pega o início da página
         $arraythispage = array(//array contendo os parâmetros para a montagem da classificação da coluna
            'sql'         =>   $sql,
            'order'         =>   $order,
            'size'         =>   $size,
            'start'         =>   $startthis,
            'xtabField'      =>   $xtabField,
            'xtabSearch'   =>   $xtabSearch
         );
         $serializedthispage = htmlentities(serialize($arraythispage),ENT_QUOTES);//prepara $array para ser enviado por GET
         $field = $config['labels'][$i];
         $table .= '<th id="xtabHeadTH">'.$field.' <a href="?serialized='.$serializedthispage.'&order=order by '.mysql_field_name($resource,$i).' asc&xtabField='.$xtabField.'&xtabSearch='.$xtabSearch.'"  class="xtabHeadSortLinkIcon"><img src="'.$config['sort_az'].'" class="xtabHeadSortIcon"></a><a href="?serialized='.$serializedthispage.'&order=order by '.mysql_field_name($resource,$i).' desc&xtabField='.$xtabField.'&xtabSearch='.$xtabSearch.'" class="xtabHeadSortLinkIcon"><img src="'.$config['sort_za'].'" class="xtabHeadSortIcon"></a></th>';//monta cada coluna do cabeçalho
      }
      $table .= '</tr>'; //fecha a linha do cabeçalho
      
      for($i = 0;$i < $NumeroDeLinhas; $i++){//monta o corpo da tabela
         $resto = $i%2; //verifica se a linha é par ou impar
         if($resto == 0){
            $classe = 'xtabBodyTrPar';
         }else{
            $classe = 'xtabBodyTrImpar';
         }
         
         $table .= '<tr class="'.$classe.'">'; //abre a linha
         for($h = 0;$h < $NumeroDeCampos;$h++){//monta as colunas de cada linha de resultado
            if(is_array($config['alink'])){
               $id = mysql_result($resource,$i,$config['alink'][0]);
               $alink = str_replace('[+value+]',$id,$config['alink'][1]);
            }else{
               $alink = '';
            }
            
            $table .= '<td class="xtabBodyTD"><a class="xtabBodyTDLink" '.$alink.'>'.mysql_result($resource,$i,$h).'</a></td>';//monta cada coluna da linha de resultado
         }
         $table .= '</tr>';//fecha a linha
      }
            
      $table .= '</table>'; //fecha a tabela
      
      $search = '<div id="xtabSearch"><div id="xtabDivFormSearch"><form id="xtabFormSearch" method="get">
      <label>Pesquisar</label>
      <input id="xtabFormSearchString" type="text" name="xtabSearch" value="'.$xtabSearch.'">
      <select id="xtabFormSearchFields" name="xtabField">'; //inicia o formulário de pesquisa
      
      for($i = 0;$i < $NumeroDeCampos; $i++){//coloca os campos para procura
         if(mysql_field_name($resource,$i) == $xtabField){
            $selected = 'selected';
         }else{
            $selected = '';
         }
         $field = $config['labels'][$i];
         $search .= '<option value="'.mysql_field_name($resource,$i).'" '.$selected.'>'.$field.'</option>';
      }
      
      $search .= '</select><input id="xtabFormSearchSubmit" type="submit" value="Procurar">
      </form></div></div>'; //fecha o formulário de pesquisa
      
      $footer = '<div id="xtabFooter">';//inicia o rodapé
      $PaginaAtual = ceil($startthis/$size)+1;
      $ProximaPagina = $startthis+$size;
      $PaginaAnterior = $startthis-$size;
      $PrimeiraPagina = 0;
      $UltimaPagina = $NumeroDeLinhasTotal-($NumeroDeLinhasTotal%$size);
      
      $array = array(//array contendo os parâmetros para a montagem da tabela
            'sql'         =>   $sql,
            'order'         =>   $order,
            'size'         =>   $size,
            'start'         =>   $PrimeiraPagina,
            'xtabField'      =>   $xtabField,
            'xtabSearch'   =>   $xtabSearch
         );
      $serialized = htmlentities(serialize($array),ENT_QUOTES);//prepara $array para ser enviado por GET
      $footer .= '<a class="xtabFooterLinkButtons" href="?serialized='.$serialized.'&order='.$order.'&xtabField='.$xtabField.'&xtabSearch='.$xtabSearch.'"><img class="xtabFooterButtons" src="'.$config['start'].'"></a>';
      
      $array = array(//array contendo os parâmetros para a montagem da tabela
            'sql'         =>   $sql,
            'order'         =>   $order,
            'size'         =>   $size,
            'start'         =>   $PaginaAnterior,
            'xtabField'      =>   $xtabField,
            'xtabSearch'   =>   $xtabSearch
         );
      $serialized = htmlentities(serialize($array),ENT_QUOTES);//prepara $array para ser enviado por GET
      $footer .= '<a calss="xtabFooterLinkButtons" href="?serialized='.$serialized.'&order='.$order.'&xtabField='.$xtabField.'&xtabSearch='.$xtabSearch.'"><img class="xtabFooterButtons" src="'.$config['back'].'"></a>';
      
      for($i = 0;$i < $NumeroDePaginas; $i++){//monta o rodapé da tabela
         $p = $i+1;//cria o número da página
         $start = ($p*$size)-$size; //cria o ponto de início para a p´roxima página
         $array = array(//array contendo os parâmetros para a montagem da tabela
            'sql'         =>   $sql,
            'order'         =>   $order,
            'size'         =>   $size,
            'start'         =>   $start,
            'xtabField'      =>   $xtabField,
            'xtabSearch'   =>   $xtabSearch
         );
         $serialized = htmlentities(serialize($array),ENT_QUOTES);//prepara $array para ser enviado por GET
         
         if($p == $PaginaAtual){
            $footer .= ' <span class="xtabFooterThisPage"> '.$p.' </span> ';
         }else{
            $footer .= '  <a class="xtabFooterOtherPage" href="?serialized='.$serialized.'&order='.$order.'&xtabField='.$xtabField.'&xtabSearch='.$xtabSearch.'">'.$p.'</a>  ';
         }
      }
      
      $array = array(//array contendo os parâmetros para a montagem da tabela
            'sql'         =>   $sql,
            'order'         =>   $order,
            'size'         =>   $size,
            'start'         =>   $ProximaPagina,
            'xtabField'      =>   $xtabField,
            'xtabSearch'   =>   $xtabSearch
         );
      $serialized = htmlentities(serialize($array),ENT_QUOTES);//prepara $array para ser enviado por GET
      $footer .= '<a class="xtabFooterLinkButtons" href="?serialized='.$serialized.'&order='.$order.'&xtabField='.$xtabField.'&xtabSearch='.$xtabSearch.'"><img class="xtabFooterButtons" src="'.$config['forward'].'"></a>';
      
      $array = array(//array contendo os parâmetros para a montagem da tabela
            'sql'         =>   $sql,
            'order'         =>   $order,
            'size'         =>   $size,
            'start'         =>   $UltimaPagina,
            'xtabField'      =>   $xtabField,
            'xtabSearch'   =>   $xtabSearch
         );
      $serialized = htmlentities(serialize($array),ENT_QUOTES);//prepara $array para ser enviado por GET
      $footer .= '<a class="xtabFooterLinkButtons" href="?serialized='.$serialized.'&order='.$order.'&xtabField='.$xtabField.'&xtabSearch='.$xtabSearch.'"><img class="xtabFooterButtons" src="'.$config['finish'].'"></a>';
      
      $footer .= '<a class="xtabFooterLinkButtons" href="'.$_SERVER['SCRIPT_NAME'].'"><img class="xtabFooterButtons" src="'.$config['clear'].'"></a>';
      
      $footer .= '</div>';//fecha o rodapé
      
      $table = $search.$footer.$table; //acrescenta o formulário de pesquisa e as páginas no topo
      $table .= $footer;//acrescenta o rodapé à tabela
      $table = '<div id="xtabMainDiv">'.$table.'</div>';//insere a tabela num div
      return $table; //retorna o resultado da função
   }
}
?>

Scripts recomendados

Classe de Internacionalização(Multi linguagens)

Sistema de Boletos e Cobrança Online

Mail BomBer 1.0

Gerenciador para QEMU, em PHP-CLI

Redimensionador de fotos em PHP


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts