Ir para conteúdo
Fórum Script Brasil
  • 0

Include dentro de class


Júlio César Lacerda

Pergunta

Bom pessoal, tenho um um arquivo chamado paginacao.class.php, no qual monta todos registros do banco de dados

<?php

  require "../validar_session.php";
  require "trim_login_usuario.class.php";

  // Dados para conexão mySQL
  define ("host", "localhost");
  define ("conta", "root");
  define ("senha", "****");
  define ("database", "my_db");

  // Cria a classe para paginação
  class Paginacao_Bonita {
    
    // Variáveis de classe
    var $rpp = 4; // Registros Por Página
    var $nome_usuario_explode; ------------------> Coloco a variavel dentro da class, que recebo do arquivo trim_login_usuario.class.php porem, não consigo nenhum resultado com ela
    var $pagina;
    var $paginas;
    var $limite;
    var $dados = array();
    
    public function __construct(){
        //metodo de construção da classe
    }
     public function set_login_usuario($set_trim_login_usuario){
        $this->nome_usuario_explode = $set_trim_login_usuario;
        include "$this->$nome_usuario_explode";
    }
    
    // Construtor
    function Paginacao_Bonita() {
    
      mysql_pconnect (host, conta, senha);
      
      mysql_select_db (database);
    
    }
    
    // Recebe a numeração de página enviada
    function Recebe_Dados() {
    
      // Obtêm dados em path da URL
      $this->pagina = $_SERVER["PATH_INFO"];
      
      // Separa as informações obtidas
      $temp = explode ("/", $this->pagina);
      
      // Armazena a página
      $this->pagina = $temp[1];
    
    }
    
    // Verifica a página recebida
    function Verifica_Pagina() {
    
      // Verifica se não é numérica a página
      if (!is_numeric ($this->pagina)) :
      
        $this->pagina = 1;
      
      endif;
    
    }
        
    // Obtêm o total de registros
    function Total_Registros() {
    
    
      // SQL de contagem
      $sql = "SELECT COUNT(id) FROM tb_ticket WHERE login= '$this->nome_usuario_explode'";
      
      // Executa o SQL de contagem
      $sql = mysql_query ($sql);
      
      // Obtêm os resultados em uma matriz
      $sql = mysql_fetch_row ($sql);
      
      // Armazena o número de registros
      $this->paginas = $sql[0];
    
    }
    
    // Calcula o total de páginas
    function Total_Paginas() {
    
      $this->paginas = ceil ($this->paginas / $this->rpp);
    
    }
    
    // Calcula o limite para exibição
    function Calcula_Limite() {
    
      $this->limite = (($this->pagina - 1) * $this->rpp);
    
    }
    
    // Obtêm os dados do intervalo atual
    function Seleciona_Dados() {
    
    
      // SQL de seleção
      $sql = "SELECT * FROM tb_ticket WHERE 
      login = '$this->nome_usuario_explode' ORDER BY id ASC LIMIT " . $this->limite . ", " . $this->rpp;

      // Executa o SQL de contagem
      $sql = mysql_query ($sql);
      
      // Contador auxiliar
      $i = 0;
      
      // Armazena em uma matriz os resultados
      while ($this->dados[$i] = mysql_fetch_assoc ($sql)) :
      
        $i++;
      
      endwhile;
      
      // Elimina o último índice, pois está vazio
      array_pop ($this->dados);
    
    }
    
    // Cria o HTML da paginação
    function Mostra_Paginacao() {
    
      // Anterior
      $paginacao = (($this->pagina - 1) <= 0) ? "« Anterior" : "« <a href=\"". $_SERVER["SCRIPT_NAME"] . "/" . ($this->pagina - 1) . "/\">Anterior</a>";
      
      // -3
      $paginacao .= (($this->pagina - 3) <= 0) ? "" : " | <a href=\"" . $_SERVER["SCRIPT_NAME"] . "/" . ($this->pagina - 3) . "/\">" . ($this->pagina - 3) ."</a>";
      
      // -2
      $paginacao .= (($this->pagina - 2) <= 0) ? "" : " | <a href=\"" . $_SERVER["SCRIPT_NAME"] . "/" . ($this->pagina - 2) . "/\">" . ($this->pagina - 2) ."</a>";
      
      // -1
      $paginacao .= (($this->pagina - 1) <= 0) ? "" : " | <a href=\"" . $_SERVER["SCRIPT_NAME"] . "/" . ($this->pagina - 1) . "/\">" . ($this->pagina - 1) ."</a>";
      
      // Atual
      $paginacao .= " | <strong>[" . $this->pagina . "]</strong>";
      
      // +1
      $paginacao .= (($this->pagina + 1) > $this->paginas) ? "" : " | <a href=\"" . $_SERVER["SCRIPT_NAME"] . "/" . ($this->pagina + 1) . "/\">" . ($this->pagina + 1) ."</a>";
      
      // +2
      $paginacao .= (($this->pagina + 2) > $this->paginas) ? "" : " | <a href=\"" . $_SERVER["SCRIPT_NAME"] . "/" . ($this->pagina + 2) . "/\">" . ($this->pagina + 2) ."</a>";
      
      // +3
      $paginacao .= (($this->pagina + 3) > $this->paginas) ? "" : " | <a href=\"" . $_SERVER["SCRIPT_NAME"] . "/" . ($this->pagina + 3) . "/\">" . ($this->pagina + 3) ."</a>";
    
      // Próximo
      $paginacao .= (($this->pagina + 1) > $this->paginas) ? " | Próximo »" : " | <a href=\"". $_SERVER["SCRIPT_NAME"] . "/" . ($this->pagina + 1) . "/\">Próximo</a> »";
      
      // Retorna a variável de paginação
      echo $paginacao;
    
    }
  
  }
  
  // Instancia a classe e executa suas rotinas
  $foo = new Paginacao_Bonita();
  $foo->Recebe_Dados();
  $foo->Verifica_Pagina();
  $foo->Total_Registros();
  $foo->Total_Paginas();
  $foo->Calcula_Limite();
  $foo->Seleciona_Dados();
  
  foreach ($foo->dados as $dados) :
  
  //Faz chamada para a função que converte a data no formato americano para o PT-BR
  require_once "data_abrir_chamado.class.php";
  
  //Tratando a data com a função acima
     $datetime = $dados["data_abrir_chamado"];
    $conv_datetime = converte_datetime($datetime);
    
    /*
    echo $conv_datetime['data']; // Retornará 23/07/2004
    echo $conv_datetime['horario']; // Retornará 09:15:20
    echo $conv_datetime['dia']; // Retornará 23
    echo $conv_datetime['mês']; // Retornará 07
    echo $conv_datetime['ano']; // Retornará 2004
    echo $conv_datetime['hora']; // Retornará 09
    echo $conv_datetime['minuto']; // Retornará 15
    echo $conv_datetime['segundo']; // Retornará 20
      */
  
    //Tratando o campo "local" com o codigo abaixo
    
    // Variavel $new_local recebendo o valor armazenado no banco de dados
    $new_local = $dados["local"];
    // Variavel data_inteira fazendo o explode separando pelo caracter '-'
    $local_separar = explode('_',$new_local);
    // Separando
    $local_separar[0]." ".$local_separar[1];
    //Montando Local com espaçamento
    $local = ucfirst($local_separar[0])." ".strtoupper($local_separar[1]);    
  
    //Tratando o campo "prioridade" com o codigo abaixo
  
    $new_prioridade = $dados["prioridade"];
    $prioridade = ucfirst($new_prioridade);
  
    //Tratando o campo "estado" com o codigo abaixo
  
    // Variavel $new_estado recebendo o valor armazenado no banco de dados
    $new_estado = $dados["estado"];
    // Variavel data_inteira fazendo o explode separando pelo caracter '-'
    $estado_separar = explode('_',$new_estado);
    // Separando
    $estado_separar[0]." ".$estado_separar[1];
    //Montando Local com espaçamento
    $estado = ucfirst($estado_separar[0])." ".ucfirst($estado_separar[1]);
  
    //Tratando o campo "responsavel" com o codigo abaixo
  
    // Variavel $new_responsavel recebendo o valor armazenado no banco de dados
    $new_responsavel = $dados["responsavel"];
    // Variavel responsavel_separar fazendo o explode separando pelo caracter '-'
    $responsavel_separar = explode('_',$new_responsavel);
    // Separando
    $responsavel_separar[0]." ".$responsavel_separar[1];
    //Montando Local com espaçamento
    $responsavel = ucfirst($responsavel_separar[0])." ".ucfirst($responsavel_separar[1]);
  
?>

<div align="left" style="font: 70% verdana; border: 1px solid #CCCCCC; padding: 5px; margin: 5px; background-color: #F5F5F5;">

<table border="0" cellpadding="0" cellspacing="0">
  ID:<strong><?php echo $dados["id"];?></strong><br />
  Nome:<strong><?php echo $dados["nome"];?></strong><br />
  Data:<strong><?php echo $conv_datetime['data_hora'];?></strong><br />
  Texto:<strong><?php echo $dados["texto"];?></strong><br />
  Local:<strong><?php echo $local;?></strong><br />
  Prioridade:<strong><?php echo $prioridade;?></strong><br />
  Estado:<strong><?php echo $estado;?></strong><br />
  Responsavel:<strong><?php echo $responsavel;?></strong>
</table>
  
</div>

<?php
  
  endforeach;

?>

<br /><div align="center" style="font: 70% verdana;">

  <?php $foo->Mostra_Paginacao(); ?>

</div>
e o arquivo listar_chamados_aberto, onde se exibe o processo feito pela paginacao.class.php
<?php

require "config_nivel.php";
// A sessão precisa ser iniciada em cada página diferente
if (!isset($_SESSION)) session_start();

// Verifica se não há a variável da sessão que identifica o usuário
if (!isset($_SESSION['id_usuario']) OR ($_SESSION['nivel_usuario'] != $nivel_necessario)) {
    // Destrói a sessão por segurança
    session_destroy();
    // Redireciona o visitante de volta pro login
    header("Location: /helpdesk/index.php"); exit;
}

// inclui o arquivo de validar sessão
include "../validar_session.php";
// inclui o arquivo de configuração do sistema
include "../conexao.php";

//ATUALIZA PAGINA QUE O USUARIO ESTA ACESSANDO NO MOMENTO
$url = $_SERVER['PHP_SELF'];
$update_url = mysql_query("UPDATE tb_users SET url='$url' where nome='$nome_usuario'") or die(mysql_error());

// faz consulta no banco de dados
//$consulta = mysql_query("SELECT * FROM tb_ticket WHERE estado ='aberto' and nome='$nome_usuario' ORDER BY data_abrir_chamado DESC");
//width="872" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#336699"
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Chamados em Aberto - CERP Help Desk</title>
    <link href="/helpdesk/style.css" rel="stylesheet" type="text/css" media="screen"/>
    <link href="/helpdesk/style_print.css" rel="stylesheet" type="text/css" media="print">
    &lt;script type="text/javascript" src="/helpdesk/usuario/jquery/jquery.js"></script>
    &lt;script type="text/javascript" src="/helpdesk/usuario/jquery/jquery.dimensions.js"></script>
    &lt;script type="text/javascript" src="/helpdesk/usuario/jquery/jquery.positionBy.js"></script>
    &lt;script type="text/javascript" src="/helpdesk/usuario/jquery/jquery.bgiframe.js"></script>
    &lt;script type="text/javascript" src="/helpdesk/usuario/jquery/jquery.jdMenu.js"></script>
    <link rel="stylesheet" href="/helpdesk/usuario/jquery/jquery.jdMenu.css" type="text/css"/>
</head>


<body>
<table style="font: 70% verdana; border: 1px solid #CCCCCC; padding: 5px; margin: 5px; background-color: #F5F5F5;">
  <!--DWLayoutTable-->
  <tr>
    <td height="41" colspan="2" bgcolor="#336699"><div align="center"><span class="titulo">Chamados em Aberto</span></div></td>
  </tr>
  <tr>
    <td width="872" valign="middle" bgcolor="#FFFFFF">
      <div align="left" id="menu">
      <ul bgcolor="#336699" class="jd_menu">
            <li class=""><a href="/helpdesk/usuario/painel_controle.php">Abrir Chamado</a></li>
              <li class="accessible"><a href="" class="accessible">Chamados »</a>
                    <ul>
                          <li><a href="#" target="_self">Em Aberto</a></li>
                          <li><a href="/helpdesk/usuario/listar_chamados_em_atendimento.php" target="_self">Em Atendimento</a></li>
                          <li><a href="/helpdesk/usuario/listar_chamados_finalizados.php" target="_self">Finalizados</a></li>
                   </ul>
              </li>
            <li class="accessible"><a href="" class="accessible">Relatórios »</a>
              <ul>
                          <li><a href="/helpdesk/usuario/relatorio_data.php" target="_self">Por Data</a></li>
                 </ul>
              </li>
            <li class=""><a href="/helpdesk/usuario/mudar_senha.php">Alterar Senha</a></li>
            <li class=""><a href="/helpdesk/logout.php">Sair</a></li>
    </ul>
    </div></td>
  </tr>
</table>
  <?php
  //Faz chamada com a função para sistema de paginação
    require "data_abrir_chamado.class.php";
    require "paginacao.class.php";
   ?>
</body>
</html>
e tambem tem a pagina trim_login_usuario.class.php, que elimina os espacamentos na string
<?php
include "../validar_session.php";
include "../conexao.php";
$new = $login;
$nome_usuario_clear = array("nome" => $new);
//RESPONSAVEL PELA LIMPEZA DE ESPAÇOS EM BRANCO NAS EXTREMIDADES DA STRING
function _trim(&$value)
{
    $value = trim($value);   
}
//COLOCA A STRING NO ARRAY E EXECUTA A FUNÇÃO _TRIM ESCRITA ACIMA
function array_trim($arr)
{
    array_walk($arr,"_trim");
    return $arr;
}
    $arr = array_trim($nome_usuario_clear);
    $nome_without_space = $arr['nome'];
    
    $user_explode = explode(' ',$nome_without_space);
    $nome_usuario_explode = strtolower($user_explode[0])."_".strtolower($user_explode[1]);
    echo '<br>';
?>

o que acontece e que eu não consigo definir a variavel dentro da class, quando dou um echo fora da class, consigo ver o a variavel, porem dentro da class, ela fica sem nenhum valor.

alguém sabe me explicar porque isto ocorre?

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...