PHP Classes
Icontem

File: ArvorePastas_class02_ptbr.inc.class.php


  Search   All class groups All class groups   Latest entries Latest entries   Top 10 charts Top 10 charts   Newsletter Newsletter   Blog Blog   Forums Forums   Help FAQ Help FAQ  
  Login   Register  
Recommend this page to a friend! ReTweet ReTweet Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Paulo Afonso  >  Arvore Pastas  >  ArvorePastas_class02_ptbr.inc.class.php  
File: ArvorePastas_class02_ptbr.inc.class.php
Role: Class source
Content type: text/plain
Description: This files contais the class code.
Class: Arvore Pastas
Display directory file listing as a tree
 

Contents

Class file image Download
<?php

/*
    +------------------------------------------+
    |  Sistema que monta árvore de diretórios  |
    +--                                      --+
    |  Sistema desenvolvido em: PHP            |
    +------------------------------------------+
    |  @access        restrict
    |
    |  @author        Paulo Afonso Alcântara
    |
    |  @contact        pauloafonsowd@hotmail.com
    |
    |  @package        WIMAJAX!
    |
    |  @version        0.1.0.0
    |
    |  @released    02.08.2006
    |
    +------------------------------------------+
    |
    | -> Esta classe é de uso livre, mas deve-se manter os créditos do autor(estão logo acima)
    | e deixar versões baseadas/derivadas desta para uso livre.
    |
    | -> Ainda não testada em PHP 5x. Se você é um usuário autorizado e quizer testar no PHP 5x,
    | por favor me informe como este sistema se sai nesta nova versão do PHP.
    |
    | -> Se você leu até aqui, obrigado.  :)
    |
    +------------------------------------------+
*/

/*
    +-- Este arquivo: --+
    |
    | @name        ArvorePastas_class02_ptbr.inc.class.php
    |
    | -> Este arquivo contém uma classe que cria uma árvore de diretórios.
    |
    +-------------------+
*/

// ********** COMEÇO DA CLASSE "ArvorePastas" **********
class ArvorePastas{

    
// Este é o construtor da classe
    
function ArvorePastas($diretorio="",$html="",$ini="nu",$dif="nu") {
        
$this->diretorio $diretorio;
        
$this->nivel = -1;
        
$this->barra DIRECTORY_SEPARATOR;
        
$this->html $html;
        
$this->ini $ini;
        
$this->dif $dif;
        if ( !empty(
$this->diretorio) ) {
            
$this->LerPasta($this->diretorio,$this->nivel);
        } else {
            return 
false;
        }
    }

    
// Esta função lê o diretório passado no parâmetro $nome_dir
    
function LerPasta($nome_dir="",$nivel) {

        if ( !empty(
$nome_dir) ) {
        
            
// O Diretorio especificado é aberto com extensão DIR do php
            
$grupo dir($nome_dir) or die("Erro: Diretório solicitado inexistente!");

            
// Inicia um contador/iterador em zero(que é o número padrao inicial em arrays no php)
            
$i_g 1;
        
            
$lista_grupo = Array();
            
            
// Lê arquivo por arquivo o diretório especificado
            
while (false !== ($grupo_file $grupo->read())) {
                if( 
$grupo_file != "." and $grupo_file != ".." and is_dir($nome_dir $this->barra $grupo_file) ) {
                    
$lista_grupo['abs'][$i_g] = $nome_dir $this->barra $grupo_file;
                    
$lista_grupo['rel'][$i_g] = $grupo_file;
                    
$lista_grupo['niv'][$i_g] = $nivel 1;
                    
$i_g++;
                }
            }
            
$grupo->close();
        
            
// Verifica se a variável que retorna o array com os diretórios e níveis está do modo esperado
            
if ( isset($lista_grupo['rel']) and isset($lista_grupo['abs']) and is_array($lista_grupo['abs']) and count($lista_grupo['abs']) >= ) {
                
// Chama a função que monta a árvore com os diretórios com base nos seus respectivos níveis
                
$this->ExibePasta($lista_grupo['abs'],$lista_grupo['rel'],$lista_grupo['niv']);
                return 
"Diretório lido com sucesso.";
            } else {
                return 
"Erro na leitura dos dados.";
            }
        
        } else {
            
            return 
"Erro na leitura dos dados.";
            
        }

    }

    
// Função que monta e exibe a árvore de diterótios com base nos seus respectivos níveis
    
function ExibePasta($caminho_dir=0$nome_dir=0$nivel_dir=0) {

        if ( 
is_array($caminho_dir) and is_array($nome_dir) and is_array($nivel_dir) and count($caminho_dir) >= ) {
            
// Inicia um iterador para ser usado nesta função e apenas na leitura do diretório especificicado
            
$i_gb 1;
            
            while (
$i_gb <= count($caminho_dir)) {
                if ( 
$this->ini == 'pdr' ) {
                    echo 
'Nível do diretório: ' $nivel_dir[$i_gb] . ' ';
                } else if ( 
$this->ini != 'nu' ) {
                    
$newini str_replace ("{nome}"$nome_dir[$i_gb], $this->ini);
                    
$newini str_replace ("{nivel}"$nivel_dir[$i_gb], $this->ini);
                    echo 
$newini;
                    unset(
$newini);
                }
                if ( 
$this->dif == 'pdr' ) {
                    for (
$i=$nivel_dir[$i_gb]; $i 0$i--) {
                        echo 
'_';
                    }
                } else if ( 
$this->dif != 'nu' ) {
                    for (
$i=$nivel_dir[$i_gb]; $i 0$i--) {
                        echo 
$this->dif;
                    }
                }
                
                
// Exibe a árvore com XHTML
                
if ( $this->html == "" ) {
                    echo 
'<a href="' $caminho_dir[$i_gb] . '" title="' $caminho_dir[$i_gb] . '">' $nome_dir[$i_gb] . '</a>';
                    echo 
'<br />';
                } else {
                    
$newhtml str_replace ("{caminho}"$caminho_dir[$i_gb], $this->html);
                    
$newhtml str_replace ("{nome}"$nome_dir[$i_gb], $newhtml);
                    
$newhtml str_replace ("{nivel}"$nivel_dir[$i_gb], $newhtml);
                    echo 
$newhtml;
                    unset(
$newhtml);
                }
                
$this->LerPasta($caminho_dir[$i_gb],$nivel_dir[$i_gb]);
                
$i_gb++;
            }
            unset(
$i_gb);
            return 
"Sucesso na realização.";
        } else {
            return 
"Erro na leitura dos dados.";
        }

    }

}
// ********** TÉMINO DA CLASSE "ArvorePastas" **********

?>

 
  Advertise on this site Advertise on this site   Site map Site map   Statistics Statistics   Site tips Site tips   Privacy policy Privacy policy   Contact Contact  

For more information send a message to :
info at phpclasses dot org.
Copyright (c) Icontem 1999-2009 PHP Classes - PHP Class Scripts
  PHP Book Reviews - Reviews of books and other products