Avatar billede webweaver Praktikant
24. juni 2006 - 00:03 Der er 10 kommentarer og
1 løsning

Problemer med Breadcrumb

Godaften.

Jeg vil gerne bygge lidt om i et script jeg har, desværre kan jeg ikke få den til det jeg gerne vil.

Scriptet:
http://pastebin.com/728051

Jeg vil gerne have den skal skjule nogle bestemte mapper. Indtil videre er det lavet så den kan skjule nogle filer, men ikke mapper. Det vil jeg også gerne have. Eller den skal ikke skjule dem, men de skal bare ikke vises som et link mapperne, men som normal tekst.

Hvordan laves dette?

Jeg har selv forsøgt lidt hen af det samme, som måden der bruges til at skjule nogle filer, men uden success.

Nogle som kan hjælpe? :)

På forhånd mange tak!

Mvh. Lasse Jensen
Avatar billede jakobdo Ekspert
24. juni 2006 - 11:12 #1
Har du evt en side hvor vi kan se koden aktivt?
Avatar billede webweaver Praktikant
24. juni 2006 - 15:06 #2
Jeps naturligvis. http://www.webweaver.dk

Hvis I går ind under "Nyheder" og ind på en nyhed fx, vil i kunne se den ligger inde i en mappe. Man skal så ikke kunne klikke på mappen fx, kun filen (selve nyheden), og det er ikke alle mapper det skal gælde på. Kun nogle som man udvælger.
Avatar billede jakobdo Ekspert
24. juni 2006 - 15:23 #3
Prøv at lav noget debug på din kode her:

if (in_array($fnam, $hide) == false) {
$outp .= $div . '<a class="text-style" href="' . $root . $dirs[$size] . '">' . ucwords(strtr($fnam, '_', ' ')) . '</a>';
}

Hvad indeholder $fnam og $hide helt præcist?
For det ligner jo du er på rette vej! :o)
Avatar billede webweaver Praktikant
24. juni 2006 - 15:56 #4
Ja det er nemlig det, den deler som du har hevet ud der, den virker.. Den skjuler selve filnavnet. Jeg kan bare ikke få den til at skjule en mappe også desværre.

$fnam indeholder filnavnet.
Længere oppe i koden bliver det angivet at $fnam er lige med det mellem sidste mappe og punktummet. Fx mappe/fil.php. Så er $fnam = fil;

$hide indeholder et array, som viser hvilke filnavne som ikke skal vises.
Så hvis array'et indeholder "fil" så bliver det in_array($fnam*fil*, $hide*fil*) == false;

Jeg håbede på man kunne gøre noget hen af det samme med mappen. Lave et array med de mappe som ikke skal vises. Ellers ikke skal kunne klikkes på. og så i stedet for at bruge $fnam, så bruge $dirs som indeholder mappenavnene. Men det duer ikke? ;(
Avatar billede jakobdo Ekspert
24. juni 2006 - 16:24 #5
Ahh, du skal så lave noget ekstra kode i dette kode:

$hideDir = array('navn1', 'navn2', 'navn3'); // Biblioteker der ikke skal linkes til

for ($i = 1; $i < $size; $i++)
{
  if(in_array($dirs[$i], $hideDir) == false)
  {
    $outp .= $div . '<a class="text-style" href="' . $root . $dirs[$i] . '/">' .  ucwords(strtr($dirs[$i], '_', ' ')) . '</a>';
    $root .= $dirs[$i] . '/';
  }
}
Avatar billede webweaver Praktikant
24. juni 2006 - 16:37 #6
Ahh lækkert, jeg kigger lige på det og ser om jeg kan få det til at virke :)

Tak :D
Avatar billede webweaver Praktikant
24. juni 2006 - 16:43 #7
Nice det virker jo :D ;P Det var så første skridt, så vil jeg prøve at få den til at stadig vise mappen, bare ikke som et link :) Og så er den hjemme.. Hehe

Men jeg havde så bare prøvet det du gør med $dirs alene.. Hvorfor skal det være $£dirs[$i] for at det virker?

Tak for scriptet :)
Avatar billede jakobdo Ekspert
24. juni 2006 - 17:01 #8
Hvis du tilføjer koden:
if(in_array($dirs[$i], $hideDir) == false)
{
    //Vi udskriver dir som LINK
    $outp .= $div . '<a class="text-style" href="' . $root . $dirs[$i] . '/">' .  ucwords(strtr($dirs[$i], '_', ' ')) . '</a>';
}
else
{
    //Vi udskriver dir uden LINK
    $outp .= $div . ucwords(strtr($dirs[$i], '_', ' '));
}
$root .= $dirs[$i] . '/';

Og et svar!
Avatar billede jakobdo Ekspert
24. juni 2006 - 17:02 #9
Det skal være $dirs[$i] fordi det er et array som løbes igennem.
Avatar billede webweaver Praktikant
24. juni 2006 - 18:58 #10
Perfekt det virker præcis som ønsket :D Dog en lille fejl i dit script.

Skal se sådan her ud, da mappen ellers bliver tilføjet 2 gange i stien.

if(in_array($dirs[$i], $hideDir) == false)
{
    //Vi udskriver dir som LINK
    $outp .= $div . '<a class="text-style" href="' . $root . $dirs[$i] . '/">' .  ucwords(strtr($dirs[$i], '_', ' ')) . '</a>';
}
else
{
    //Vi udskriver dir uden LINK
    $outp .= $div . ucwords(strtr($dirs[$i], '_', ' '));
$root .= $dirs[$i] . '/';
}

Det var bare lige at flytte $root inden for else sætningen..

Du får dine point :) Og tak for hjælpen! :D

Mvh. Lasse Jensen
Avatar billede jakobdo Ekspert
24. juni 2006 - 19:07 #11
Takker for point.
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

IT-JOB