evePHP: Classe para desenvolvimento PHP
Publicado por EVERTON DA ROSA 02/01/2008
[ Hits: 6.195 ]
Homepage: http://everton3x.github.io
evePHP é uma classe que provê ao desenvolvedor várias funções que facilitam o desenvolvimento de aplicações PHP.
<?
/*
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
}
}
?>
Gerando Código de barras no padrão brasileiro compatível com Browsers Linux e Windows
Sistema de Boletos e Cobrança Online
Install PHP8, 8.2, 8.3 no Deepin 23
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









