evePHP: Classe para desenvolvimento PHP

Publicado por EVERTON DA ROSA 02/01/2008

[ Hits: 5.672 ]

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 [email protected] 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 ([email protected]).
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 ([email protected]) 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

framework ajaxphp

MY SQL

Xajax - FrameWork

WebUI: framework para criação de interfaces para Web

Sistema vendas PHP/Mysql


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts