Location: PHPKode > scripts > NavTree > navtree/navtree2_demo.php
<?php

     //#-----------------------------------------------------------------
    //#---- 4 HTML page in one
    //#----      1. To display header
    //#----      2. To display directory listing
    //#----      3. To display welcome page
    //#----      4. To display footer
    //#---- Determine by <webpage>?page=<content> link
    //#-----------------------------------------------------------------
    if ( isset( $_GET['page'] ) )
    {   switch ( $_GET['page'])
        {
            case 'header':
                echo "<BODY BGCOLOR=lightyellow>";
                echo "<BASE TARGET=_parent>";
                echo "<H1>This is the header</H1>";
                echo "</BODY>";
                break;
            case 'footer':
                echo "<BODY BGCOLOR=lightyellow>";
                echo "<BASE TARGET=_parent>";
                echo "<H1>This is the footer</H1>";
                echo "</BODY>";
                break;
            case 'directory':
                PageDirectory();
                break;
            case 'main':
                echo "<H1>Hello</H1>";
                break;
        }
        exit;
    }
    else
    {   PageFrameSet();
        exit;
    }


    //#-----------------------------------------------------------------
    //#---- FUNCTION :: PageFrameSet()
    //#---- DESCRIPTION  ::
    //#----      Display Frame Set HTML Code
    //#-----------------------------------------------------------------
    function PageFrameSet()
    {
        global $_SERVER;
        $self_name = $_SERVER['PHP_SELF'];
?>

<HTML>
<HEAD>
<TITLE>Web Information</TITLE>
</HEAD>
<frameset rows="90, *, 90">
      <frame name="herader"
             target="_top"
             src="<?php echo $self_name; ?>?page=header"
             frameborder=0
             noresize
             scrolling="none">
      <frameset cols="30%,*">
            <frame name="contents"
                   target="main"
                    src="<?php echo $self_name; ?>?page=directory"
                    frameborder=0
                    scrolling="auto">
            <frame name="main"
                   src="<?php echo $self_name; ?>?page=main"
                   target="main"
                   frameborder=0
                   scrolling="auto">
      </frameset>
      <frame name="footer"
             target="main"
             src="<?php echo $self_name; ?>?page=footer"
             frameborder=0
             noresize
             scrolling="none">
      <noframes>
          <body>
          <p>This page uses frames, but your browser doesn't support them.</p>
          </body>
      </noframes>
</frameset>
<?php
        exit;
    } // end PageFrameSet


    //#-----------------------------------------------------------------
    //#---- FUNCTION :: GetFileList($p_dir, $parent_id)
    //#---- DESCRIPTION  ::
    //#----      Read all the file under $p_dir
    //#----      The root node id will be the $parent_id
    //#---- INPUT ::
    //#----      p_dir      : root of directory
    //#----      Parent_id  : node number that contain the tree
    //#---- OUTPUT ::
    //#----      none
    //#---- OTHERS ::
    //#-----------------------------------------------------------------
    function GetFileList($p_dir="", $parent_id=0, $parent_path="/")
    {
        global $navtree;
        global $file_path;
        $dir = $p_dir;
        // Open a known directory, and proceed to read its contents
        $dh = ( is_dir($dir) ? opendir($dir): FALSE);
        if ($dh)
        {   while ( ($file = readdir($dh)) !== false )
            {   $ftype = filetype("$dir/$file");
                if ( $file != "." && $file != ".." )
                {   //----- Add a node
                    // change aafile to file if you want to show file as well
                    if ( $ftype == "dir" || $ftype == "aafile" )
                    {
                        $node_id = $navtree->AddNode($file, $ftype, $parent_id, 0);
                        $file_path[$node_id] = "$parent_path/$file";
                }
                    //echo "Adding node $node_id : $file <BR>";
                    if ($ftype == "dir")
                    {
                           GetFileList("$dir/$file", $node_id, "$parent_path/$file" );
                    }
                } // if file = "."
            } // end while
            closedir($dh);
        } // if opendir
    } // end GetFileList

    //#-----------------------------------------------------------------
    //#---- FUNCTION :: Transform()
    //#----     Transform the plain content to href
    //#-----------------------------------------------------------------
    function Transform()
    {   global $navtree;
        global $file_path;
        for ($i = 0; $i <= $navtree->no_node; $i ++)
        {   $content = $navtree->node_content[$i];
            $ftype = $navtree->node_class[$i];
            // stuff an icon in front and a href behind
            $content = "<IMG SRC='IMAGE/$ftype.gif'></IMG>".
                        "<A TARGET='main' HREF='".$file_path[$i]."'>$content</A>";
            $navtree->node_content[$i] = $content;
        }
    }

    function PageDirectory()
    {
        include_once "navtree2.php";
        global $navtree;
        global $_SERVER;
        global $file_path;

       //======= MAIN CODE ===================================================
        //---- Get Data
        $root_path="http://".$_SERVER['SERVER_NAME'];
        $file_path[0] = $root_path;
        $navtree = new NAVTREE2("DIVTREE", "ROOT", "ROOT", 0);
        GetFileList($_SERVER['DOCUMENT_ROOT'], 0, $root_path);
        Transform();
        //----- Set Style - as in the node_class during AddNode
        echo "<HTML>";
        echo "<HEAD>";
        echo "<STYLE>";
        echo "A, .dir  { font: bold 8pt; color: black; background: lightblue;}";
        echo ":hover { background: yellow;}";
        echo ":visited { color: black;}";
        echo ":hover { background: yellow;}";
        echo ".root  { font: bold 10pt}";
        echo "</STYLE>";
        echo "</HEAD>";
        echo "<BODY>";
        //---- Generate a Dynamic Tree
        echo "<DIV id='DIVTREE' style='width:300; background: lightgreen;'>GenTree</DIV>";
        $navtree->GenJSTree();
        echo "</BODY></HTML>";
    } // End Page Directory
?>
Return current item: NavTree