Location: PHPKode > scripts > Phptempt > phptempt/list_dir.php
<?php

// include API class:
include ("phptempt.php");

function listfolder ($dirpath)
{
    global $t;
    global $con;

    static $count = 0; // debug

    // begin block:
    $t->begin ("dirlist");

    // add value to a placeholer in the block:
    $t->addVal ("FOLDERNAME", $dirpath);

    // open folder; if an error occurres on attempt to open folder,
    // then issue a message:
    //
	$dir = @opendir ($dirpath);
//    echo "dir==$dir<br>"; // debug
    if (is_bool($dir) && !$dir) {
        $t->begin ("entry");
        $t->addVal ("NOACCESS", ++$count);
        $t->end ("entry");
    }

    // otherwise, print contents of folder:
    //
    else {

	    while ($file = readdir ($dir)) {

	        // ignore . and .. entries:
	        if ($file=="." || $file=="..")
	            continue;

	        $filepath = "$dirpath/$file";

	        $t->begin ("entry");

	        if (is_dir($filepath)) {
	            // recursively list subfolder:
	            listfolder ($filepath);
	        }
	        else if (is_file($filepath)) {
	            // print textfile:
	            $t->begin ("textfile");
	            $t->addVal ("NAME", $file);
	            $t->end ("textfile");
	        }

	        $t->end ("entry");
	    }

	    $dir = closedir ($dir);
    }

    // close block, ready for next iteration:
    $t->end ("dirlist");
}


/****************************
* Main script starts here
*****************************/

// include precompiled template:
$t = new phptempt ("list_dir.inc");

// check URL parameter:
if (!isset ($rootfolder))
{
    print "Please provide parameter 'rootfolder'";
    exit;
}

// add to template variable:
$t->addVal ("FOLDERNAME", $rootfolder);

// recursively print contents of project root directory:
listfolder ($rootfolder);

// output template:
$t->out();

?>
Return current item: Phptempt