                                                                                    
<?php
//-->-->
//-- This function lists the files and directories in a directory
//-- and provided hyperlinks to management functions such as 
//-- edit, copy, view. 
    
  function fnRetrovoxDirectoryListing
    ($sCurrentDirectory, 
     $bDisplayFullPath = false,
     $sDirectoryBrowseUrl = '/ideas/manage/notepad/retrovox-notepad.php?file',
     $sEditUrl = '/ideas/manage/notepad/retrovox-notepad.php?file',
     $sCopyUrl = '/ideas/manage/move-file-form.php?file',
     $sViewUrl = '/ideas/manage/notepad/retrovox-notepad.php?file',
     $sWebPathPrefix = 'c:/apache2/htdocs')
  {
    
      $sReturn ='';
      $sReturn = $sReturn.
	  "<ol type = '1'>";

      $aaFiles = '';
      //-- Get a list of the directories within the current directory, so that
      //-- they can be sorted and displayed before normal files.
      //--
      $dh  = opendir($sCurrentDirectory);
      while (false !== ($sMemberFileName = readdir($dh)))
      {
        $sCurrentFilePath = $sCurrentDirectory.$sMemberFileName;
        if (is_dir($sCurrentFilePath))
        {
           if ($sMemberFileName != '.')
           {
              $aaDirectories[] = $sMemberFileName;
           }
        }
        else
        {
           $aaFiles[] = $sMemberFileName;
        }

      } //--while
       
      sort($aaFiles);
      sort($aaDirectories);
      reset($aaFiles);
      reset($aaDirectories);
      

      foreach ($aaDirectories as $sMemberFileName)
      {

        if ($sMemberFileName == '..')
        {
          $sParentDirectory = preg_replace('#[^/]+/$#', '', $sCurrentDirectory);

          $sReturn = $sReturn.
            "<li><font color = 'red'>[Parent Directory]</font>
            <a href ='$sDirectoryBrowseUrl=".
            htmlspecialchars(urlencode($sParentDirectory))
	    ."'> (view files)</a></li> \n";
        }
        else
        {
           if ($bDisplayFullPath)
           {
             $sDisplayFileName = 
               htmlspecialchars($sCurrentDirectory.$sMemberFileName);
           }
           else
           {
             $sDisplayFileName = 
               htmlspecialchars($sMemberFileName);
           }

           $sReturn = $sReturn.
              "<li><font color = 'red'>$sDisplayFileName/</font>
              <a href ='$sDirectoryBrowseUrl=".
              htmlspecialchars(urlencode($sCurrentDirectory.$sMemberFileName))
	      ."'> (view files)</a></li> \n";
        } //-- if parent dir reference
      } //-- foreach member file


      foreach ($aaFiles as $sMemberFileName)
      {
         if ($bDisplayFullPath)
         {
           $sDisplayFileName = 
             htmlspecialchars($sCurrentDirectory.$sMemberFileName);
         }
         else
         {
           $sDisplayFileName = 
             htmlspecialchars($sMemberFileName);
         }

        $sMemberFilePath = $sCurrentDirectory.$sMemberFileName;
        $sMemberFilePathUrlEncoded = 
           htmlspecialchars(urlencode($sMemberFilePath));
        $sMemberFileWebPathEncoded =
           htmlspecialchars(
             str_replace($sWebPathPrefix, '', $sMemberFilePath));

        $sReturn = $sReturn."
           <li>$sDisplayFileName 
            (<a href ='$sEditUrl=$sMemberFilePathUrlEncoded'>edit</a> | 
             <a href = '$sMemberFileWebPathEncoded'>view</a> | 
             <a href = '$sCopyUrl=$sMemberFilePathUrlEncoded'>copy</a> |
             <a href = '$sCopyUrl=$sMemberFilePathUrlEncoded'>rename</a>)
           </li> \n";
      } //-- foreach member file

     echo "  
        </ol>";

     return $sReturn;

   } //-- function: fnRetrovoxDirectoryListing


//--<--<--<--<--<--<--<--<
?>

                                                                    