Page 1 of 1

Listing level of a directory differently...

Posted: Sun May 24, 2009 2:58 am
by Peuplarchie
Good day to you all,
I'm listing a directory, folder only and recurcively.
I'm wondering if :

1) I can display the folders in level 0 of the directory bold instead of as a link.


Here is my code :

Code: Select all

 
 
 
<?php
//Start a session
session_start();
 
// Error report put at report all
error_reporting(E_ALL);
 
 
ini_set("display_errors", "on");
        
set_time_limit(0);
        
//Put as variable the directory i start from
$directory = "Trips/";
 
// The dirlist function declarations
function dirList ($directory)
{
 
    //create 2 arrays - one for folders and one for files
   $folders = array();
   $files = array();
 
    // create a handler for the directory
    $handler = opendir($directory);
 
    // keep going until all files in directory have been read
while (false !== ($file = readdir($handler))) {  
 
        // if $file isn't this directory or its parent,
        // add it to the results array
        if ($file != '.' && $file != '..')
       
        // If file is directory, mark it in bold.
 
       if(is_dir($directory.$file)) {
        array_push($folders,$file);
        
            if (time() - filemtime($directory.$file) < 604800) { 
// If file is younger than a month, write in red 
    $folder_modified[] = "<li id=\"folder\"><a href=\"index.html\" onclick=\"load('folder_view.php?dir=".$directory."".$file."','boxdisp');return false;\" style=\"color:#DB1212;\">".$file."</a>";
    
} elseif (time() - filemtime($directory.$file) < 31556926) { 
// If file is older than a month but younger than a year, write in green 
    $folder_modified[] = "<li id=\"folder\"><a href=\"index.html\" onclick=\"load('folder_view.php?dir=".$directory."".$file."','boxdisp');return false;\" style=\"color:#00300;\">".$file."</a>";
    
    // file, folder, older than a year, write it in black
} else {$folder_modified[] = "<li id=\"folder\"><a href=\"index.html\" onclick=\"load('folder_view.php?dir=".$directory."".$file."','boxdisp');return false;\" style=\"color:#000000;\">".$file."</a>";}
 
 
        
// Here I would list the files too but I don't need it for this site.
        // Else not styled
        }else{
        array_push($files,$file);
     $filenamecor = substr($file, 0, -4);
    if (time() - filemtime($directory.$file) < 604800) {
    $file_modified[] = '<span style="color:#DB1212;">'.$filenamecor.'<span>';
} elseif (time() - filemtime($directory.$file) < 31556926) {
    $file_modified[] = '<span style="color:#003366;">'.$filenamecor.'<span>';
} else {$file_modified[] = '<span style="color:#000000;">'.$filenamecor.'<span>';}
 // write nothing cause I don't need the files to be listed .
 
    }
    }
 
 
//declaring the variable that the result will be put in.
$output = "";
// starting the list by 
    $output .= "<ul id=\"".preg_replace('/\//','_',substr($directory,0,strlen($directory)-1))."\">\n"; //start a new unordered list for every iteration through dirList
 
$dircor = $directory;
    // tidy up: close the handler
    closedir($handler);
    foreach($folders as $folder=>$file) {
        
      $output .= "".$folder_modified[$folder]; //echo the folder name enclosed in a list item
      $output .=   dirList($directory.$file.'/'); //loop through the contents of $folder
      $output .= "\n"; //close this list item after all files and folders in $folder have been looped through
   
   
    }
 
    foreach($files as $key=>$file) {
 
    }
 
 
    $output .= "</ul>\n"; //close the unordered list
 
     return $output;
 
echo $output;
 
    }
 
$list = dirList ($directory);
 
 
Let me know if you need mode information.
Thanks !

Re: Listing level of a directory differently...

Posted: Sun May 24, 2009 5:23 am
by jayshields
Just check if the path to the file is the same as your root directory? If so, put it in <strong> tags?