TalkPHP

TalkPHP (http://www.talkphp.com/forums.php)
-   Absolute Beginners (http://www.talkphp.com/absolute-beginners/)
-   -   generating an html list (http://www.talkphp.com/absolute-beginners/2992-generating-html-list.html)

Peuplarchie 06-23-2008 12:08 AM

generating an html list
 
Good day to you all,
The following code read recursively a directory and return the content in a html list.

What I need to do is when the class "fly" is use the </li> tag should be after the the next level, like follow :

PHP Code:



MY WAY
<ul class="sub">
    <
li><a href="http://test.com/test_images.php" class="fly">Gatineau Ottawa</a></li>
  <
ul>
    <
li><a href="http://test.com/test_images.php" class="">Aylmer</a></li>
    <
li><a href="http://test.com/test_images.php" class="">Gatineau Park Parc de la Gatineau</a></li>
    <
li><a href="http://test.com/test_images.php" class="">Misc. - Divers</a></li>
    <
li><a href="http://test.com//test_images.php" class="">NatCapital of Canada Capital Natdu Canada</a></li>
  </
ul>
  
    <
li><a href="http://test.com/test_images.php" class="fly">Gatineau Ottawa</a></li>
  <
ul>
    <
li><a href="http://test.com/test_images.php" class="">Aylmer</a></li>
    <
li><a href="http://test.com/test_images.php" class="">Gatineau Park Parc de la Gatineau</a></li>
    <
li><a href="http://test.com/test_images.php" class="">Misc. - Divers</a></li>
    <
li><a href="http://test.com//test_images.php" class="">NatCapital of Canada Capital Natdu Canada</a></li>
  </
ul>


</
ul>


THE GOOD WAY
<li><a href="#nogo11" class="fly">Zoom</a>
<
ul>
<
li><a href="#nogo12">35mm to 125mm</a></li>
<
li><a href="#nogo13">50mm to 250mm</a></li>
<
li><a href="#nogo14">125mm to 500mm</a></li>
</
ul>
</
li


Now here is my code :

PHP Code:


        
echo "<ul class=\"sub\">\r";
function 
dirlist($dir
{     
    
$ul true;
    
$dh opendir($dir);
    
$isLeaf true;
    while (
false !== ($file readdir($dh)))
    {
        if (
$file == '.' || $file == '..')
        {
            
$subs true;
            continue;
        }
        
$filed $file;
        
$file $dir '/' $file;
        
$aHasDirs = array();
        
$aHasDirs glob(realpath($file) . '/*'GLOB_ONLYDIR);
        if (
count($aHasDirs) > 0)
        {
            
$class 'fly';
            
$ul true;
        }
        else
        {
            
$class '';
             
$ul false;
        }
        
        if (
is_dir($file))
        {
            
$isLeaf false;
            echo 
'    <li><a href="http://test.com/test_images.php?folder=' $file '" class="' $class '">' $filed '</a></li>';
            echo 
"\n";
            
            if (!
$isLeaf && $ul)
            {
                echo 
"  <ul>\n"
            }
            
dirlist($file);
            if (!
$isLeaf && $ul)
            {
                echo 
"  </ul>\n";
            }
        }
    }
}  
dirlist ("Pictures/Pics/Pic-S"false);

echo 
"</ul>"


Thanks and take care !

Peuplarchie 06-23-2008 02:54 AM

Resolved thamks !

[php]

function dirlist($dir, $startDepth = 0)
{
static $depth;
$spaceMulti = 4;
$depth = empty($depth) ? $startDepth : $depth;
$dh = opendir($dir);
$isLeaf = false;
$depth++;

while (false !== ($file = @readdir($dh)))
{
if ($file == '.' || $file == '..')
{
continue;
}
$dirPath = $dir . '/' . $file;
$aHasDirs = array();
$aHasDirs = glob(realpath($dir . '/' . $file) . '/*', GLOB_ONLYDIR);
if (count($aHasDirs) > 0)
{
$class = 'fly';
$isLeaf = false;
}
else
{
$class = '';
$isLeaf = true;
}

if (is_dir($dirPath))
{
echo "\n" . str_repeat(' ', $spaceMulti * $depth) .
'<li><a href="http://test.comtest_images.php?folder=' . $dirPath . '" class="' . $class . '">' . $file . '</a>';
if (!$isLeaf)
{
$depth++;
echo "\n" . str_repeat(' ', $spaceMulti * $depth) . "<ul>";
dirlist($dirPath);
echo "\n" . str_repeat(' ', $spaceMulti * $depth) . "</ul>\r";
$depth--;
echo "\n" . str_repeat(' ', $spaceMulti * $depth) . "</li>\r";
}
else
{
echo "</li>\r";
dirlist($dirPath);
}
}
}
fclose($dh);
$depth--;
}
dirlist ("Pictures/Category/Pic-S", 0);

[\php]


All times are GMT. The time now is 03:27 PM.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0