name = $name; $this->path = $path; $this->isOpen = $INITISOPEN; $this->subDirs = $subDirs; } function addSubDir( &$subDir ) { $this->subDirs[] = $subDir; } function toString() { $val = $this->name; if( $this->isOpen && $this->subDirs != null ) { foreach ($this->subDirs AS $tmpvalue) { $val .= "\n" . $tmpvalue->toString(); } } return $val; } function getHTML( &$flatIndex ) { $val = ""; if( $this->name != null ){ $val .=""; } if( $this->isOpen && $this->subDirs != null ) { $val .= "
"; if ( count($this->subDirs) ) { $val .= ""; // push this folder to $flatIndex $flatIndex[] = &$this; if( $this->isOpen ){ $val .= "\"\""; } else{ $val .= "\"\""; } $val .= ""; } else { $val .= "\"\""; } $val .= ""; $val .= "path) ."\" target=\"thumbnails\">\"\" "; $val .= $this->name; $val .= "
"; $val .= ""; for ($c = 0; $c < count($this->subDirs); $c++) { $tmpvalue = &$this->subDirs[$c]; if( $tmpvalue != null ) $val .= "\n"; } $val .= "
" . $tmpvalue->getHTML( $flatIndex ) . "
\n"; } $val .= "
\n"; return $val; } } class FileBrowser { var $directory; var $flatIndex; function &FileBrowser() { $this->directory = null; } function readDirectory( $filename, $name=null ) { if( $name == null ){ //$name = $filename->path; } if( is_dir($filename->path) ){ $crntDir =& new FileInfo( $name, $filename->path ); while( false != ($entry = $filename->read()) ) { if (substr($entry,0,1) != "." && is_dir($filename->path."/".$entry)) { $subDirFile = &dir( $filename->path."/".$entry ); $subDir = &$this->readDirectory( $subDirFile, $entry ); if( $subDir != null ) { $crntDir->addSubDir( $subDir ); } $subDirFile->close(); } } return $crntDir; } else { $filename->close(); return null; } } } function showDirectories($path = ".") { $_SESSION['fb']->flatIndex = null; if( $_SESSION['fb']->directory != null ) { print( $_SESSION['fb']->directory->getHTML( $_SESSION['fb']->flatIndex ) ); } else { print("
There are no Albums!
"); } } function createNewFB($path) { if( !is_dir($path) ){ print("ERROR: \"$path\" not a valid path!"); return; } $filename = dir($path); $_SESSION['fb'] = new FileBrowser(); $_SESSION['fb']->directory =& $_SESSION['fb']->readDirectory( $filename ); $_SESSION['fb']->directory->isOpen = true; } function doToggle() { global $toggle; $toggleIndex = (int)$toggle; if( $_SESSION['fb'] == null ){ return; } if( $toggle != null && $toggle != "" ) { $_SESSION['fb']->flatIndex[$toggleIndex]->isOpen = !$_SESSION['fb']->flatIndex[$toggleIndex]->isOpen; } } ?>