Collapse-Expand all , start all collapsed ?

Discussion in 'HTML & Website Design' started by Peuplarchie, Apr 19, 2009.

  1. #1
    Good day to you all,
    this time i'm building a php generated list of files from a directory.
    This part I know. I need to be able to collapse or expand all, as well as start expanded or collapsed ?

    Can somebody help me find how to :

    1) Collapse - expand all ?
    2) Start list closed or open?


    Here is my code ?
    
    
    function Toggle(li) {
    var elem = document.getElementById(li);
    if(!elem)return; // in case element doesn't exists in document;
    elem.style.display = (elem.style.display != "none")? "none": "block";
    
    
    }
    
    
    Code (markup):


    
    
    
    
    <div style="position:relative; 
     width:300px;
     height:480px;
    
     padding:0px;
    padding-left:0px; 
    padding-top:0px; 
     border-size:1px;
    border-color:#000000; 
     overflow:auto;">
    
    <?php
     
    $directory = "Art/";
    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) {
        $folder_modified[] = "<span style=\"color:#DB1212;\"><li><div class=\"folder\"><img src=\"plus_icon.gif\"  onclick=\"Toggle('".preg_replace('/\//','_',$directory."".$file)."'); return false;\" /><b>".$file."</b></div>";
    } elseif (time() - filemtime($directory.$file) < 31556926) {
        $folder_modified[] = "<span style=\"color:#003366;\"><li><div class=\"folder\"><img src=\"plus_icon.gif\"  onclick=\"Toggle('".preg_replace('/\//','_',$directory."".$file)."'); return false;\" /><b>".$file."</b></div>";
    } else {$folder_modified[] = "<span style=\"color:#000000;\"><li><div class=\"folder\"><img src=\"plus_icon.gif\"  onclick=\"Toggle('".preg_replace('/\//','_',$directory."".$file)."'); return false;\" /><b>".$file."</b></div>";}
     
    		
           
            // 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>';}
     
     
        }
        }
     
        echo "<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) {
    		
          echo "<li id=\"pic\"><div class=\"folder\">".$folder_modified[$folder]."</div>"; //echo the folder name enclosed in a list item
            dirList($directory.$file.'/'); //loop through the contents of $folder
          echo "</li>\n"; //close this list item after all files and folders in $folder have been looped through
       
       
        }
     
        foreach($files as $key=>$file) {
    
          echo "<li id=\"pic\"><a href=\"index.html\" onclick=\"load('image_view.php?dir=".$dircor."&file=".$file."','boxdisp');return false;\">&nbsp;".$file_modified[$key]."</a></li>\n"; //echo the file name enclosed in a list item
        }
     
     
        echo "</ul>\n"; //close the unordered list
    }
     
    dirList($directory);
     
    ?>
    
    </div>
    
    
    
    
    PHP:


    Thnaks !
     
    Peuplarchie, Apr 19, 2009 IP