Avatar billede lsskaarup Nybegynder
18. januar 2010 - 16:31 Der er 1 løsning

Navigation a la "Et niveau op"

Jeg har arvet nedenstående lille kodestump, der viser indholdet i en mappe. Samtidig giver den via hyperlink mulighed for at "navigere" i visningen af stifinderen.

Står man i en undermappe, vises der en "et niveau op" mappe, som symbol for at man via denne kan navigere tilbage til overmappen.

Det fungere sådan set fint nok, så længe der ikke er flere end 1 niveau under hovedmappen.

Jeg vil gerne have at denne "et niveau op" mappe, vises uanset hvor mange underniveauer der er. Dog skal den ikke vises på hovedmappen, da der ikke er brug for at kunne navigere længere op.

Som der kan ses neden for, tjekker den nu kun for om der er flere undermapper. Er der ikke det, vises "Et niveau op" mappen.

$files = array();
$dirs = array();
if ( $dh = opendir( $showdir ) ) {
    while ( $fil = readdir( $dh ) ) {
        if ( is_dir( $showdir . '/' . $fil ) && $fil != '.' && $fil != '..' ) {
            $dirs[] = $showdir . '/' . $fil;
              } else if ( !is_dir( $showdir . '/' . $fil ) ) {
                $files[] = $showdir . '/' . $fil;
        }
      }
}

sort( $dirs );
sort( $files );


if(count($dirs)<1){
    echo "<a href=\"stifinder_entreprise.php?root=$root&dir=" . substr_replace($dir, '', strrpos($dir, '/')    ) . "\"> <img src=\"/gfx/mappe.gif\" border=\"0\" width=\"18\"> </a>
                <a href=\"stifinder_entreprise.php?root=$root&dir=" . substr_replace($dir, '', strrpos($dir, '/')    ) . "\">..</a>";
} else {
    for($i=0;$i<count($dirs);$i++){
        echo "<a href=\"stifinder_entreprise.php?root=$root&dir=".$dir."/".basename($dirs[$i])."\"> <img src=\"/gfx/mappe.gif\" width=\"18\" border=\"0\"> ".basename($dirs[$i])." </a><br>";
    }
}

Det er sikkert ikke så svært, jeg kan bare ikke se skoven for bare træer lige nu... :-)
Avatar billede lsskaarup Nybegynder
19. januar 2010 - 14:30 #1
Jeg fandt nu selv løsningen. Jeg tjekker simplethen for som directoriet er tomt eller ej...

if ($dir != ""){
    echo "<a href=\"stifinder_entreprise.php?root=$root&dir=" . substr_replace($dir, '', strrpos($dir, '/')    ) . "\"> <img src=\"/gfx/mappe.gif\" border=\"0\" width=\"18\"> </a>
    <a href=\"stifinder_entreprise.php?root=$root&dir=" . substr_replace($dir, '', strrpos($dir, '/')    ) . "\">..</a><br>";
}

for($i=0;$i<count($dirs);$i++){
    echo "<a href=\"stifinder_entreprise.php?root=$root&dir=".$dir."/".basename($dirs[$i])."\"> <img src=\"/gfx/mappe.gif\" width=\"18\" border=\"0\"> ".basename($dirs[$i])." </a><br>";
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester