Avatar billede steenolsen1 Nybegynder
25. februar 2005 - 09:31 Der er 11 kommentarer og
1 løsning

Udskrive HEL sti

Hej,

jeg er ved at lave et site, hvor man kan klikke sig ind i en masse undermapper. Det fungerer fint nok, men jeg kunne godt tænke mig at tilføje samme feature, som der er her på Eksperten, hvor stien står skrevet øverst på siden, som link.

Eksempelvis som her:
Du er her : Eksperten : Spørgsmål & Svar : Opret spørgsmål :

Det er naturligvis ikke noget problem at udskrive den side jeg er på nu, men mere at udskrive de sektioner jeg har været i (Eksperten : Spørgsmål & Svar :)

Kan du hjælpe?
Avatar billede jakobdo Ekspert
25. februar 2005 - 09:40 #1
Hvis brugeren bevæger sig igennem nogle mapper og deres undermapper, kunne du jo lave noget i stil med:

/root/pics/here

Og så oversætte root = www.her.dk
section = Billeder
here = Bikini

Og så sætte dem sammen hver gang, så du oversætter stien...
Avatar billede detox Nybegynder
25. februar 2005 - 10:57 #2
Du kunne osse lave det i den her stil:

<?php
$arr = explode('/', $_SERVER['PHP_SELF']);
$arr[0] = $_SERVER['HTTP_HOST'];
$sti = '';
$out = 'Du er her: ';
foreach ($arr as $val) {
    $sti .= "/$val";
    $out .= "<span> <a href='http:/$sti'>$val</a> : </span>";
}
echo $out;
?>
Avatar billede steenolsen1 Nybegynder
25. februar 2005 - 13:38 #3
Jeg skal måske lige tilføje, at der er tale om en i princippet uendelig struktur. Der kan altså oprettes f.eks. 10 levels/niveauer.

Jeg kan ikke helt følge din kode, detox.... Er det det der tages højde for der? Jeg skal vel have noget db koblet ind over?
Avatar billede detox Nybegynder
25. februar 2005 - 14:11 #4
Næ, det skulle være klar til at indsætte, eller include() på de side du vil bruge det.
Avatar billede detox Nybegynder
25. februar 2005 - 14:12 #5
Du kunne jo lave en include på den første del af scriptet og så bruge:

echo $out;

der hvor det skal stå.
Avatar billede detox Nybegynder
09. marts 2005 - 08:45 #6
Gik du kold?
Avatar billede steenolsen1 Nybegynder
09. marts 2005 - 09:40 #7
Scriptet virker godt nok, men ikke helt til mit formål... Kan dog godt bruges i andre sammenhænge, så det er gemt i kodearkivet :-)

Min kode er opbygget som et forum, og klikker man sig eksempelvis 4 niveauer ned i db'en, så dur scriptet ikke mere.

Min db ser sådan her ud:
CREATE TABLE `grupper` (
  `id` int(11) NOT NULL auto_increment,
  `gruppenavn` varchar(40) NOT NULL default '',
  `level` int(11) NOT NULL default '0',
  `parent_id` int(11) NOT NULL default '0',
  `aktiv` enum('1','0') NOT NULL default '1',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

Det kan tage lidt tid at forklare helt i detaljer, hvordan det fungerer, men det kan være at du er med på det? Ellers må du lige sige til, og så skal jeg nok uddybe.
Avatar billede detox Nybegynder
09. marts 2005 - 09:51 #8
Ja, det er jeg ikke helt med på, så det må du nok uddybe nærmere.
Avatar billede steenolsen1 Nybegynder
09. marts 2005 - 09:58 #9
Ok. Til at starte med, vises alle registreringer fra db'en, der har level = '0' - de såkaldte hovedkategorier. Når der så klikkes på et link, linkes der eksempelvis til index.php?menu=main&hid=2
menu=main includer filen main.php, der har en bestemt opsætning. Det er udelukkende af hensyn til layoutet. hid=2 angiver at der i næste query skal hentes alle registreringer fra db'en, hvor parent_id = '2'
Når alle disse registreringer er hentet, linkes der sådan her: index.php?menu=main&hid=5&level=1
Nu kan der hentes alle registreringer, der har parent_id = '5' og level = '1'
Derefter udskrives på samme måde, og så videre....

Kan du følge mig?
Avatar billede steenolsen1 Nybegynder
09. marts 2005 - 11:37 #10
Ha! Nu fandt jeg ud af det. Tror faktisk at en del af koden kommer her fra eksperten....

Nå, men det ser sådan her ud:

<?
// Sitemapfunktion
include("../connect.php");
// Udskriver i niveauer
function myList($parent="0") {
  $sql = "SELECT * FROM grupper WHERE parent_id = '".$parent."'";
  $res = mysql_query($sql);
  while ( $row=mysql_fetch_assoc($res) ) {
    print '&nbsp;&nbsp;&nbsp;<a href="index.php?menu=rediger_gruppe&id='.$row[id].'" class="sitemap">';
    if($row[aktiv] == '') {
        echo '<font color="#990000"><b>'.$row[gruppenavn].'</b></font>';
    } else {
        echo $row[gruppenavn];
    }
    echo '</a> &nbsp;<a href="index.php?menu=undergruppe&id='.$row[id].'"><img src="gfx/folder.gif" width="11" height="13" alt="Opret ny gruppe" class="imglink"></a> &nbsp;<a href="index.php?menu=upload&id='.$row[id].'"><img src="gfx/upload.gif" width="11" height="11" alt="Upload billeder" class="imglink"></a></li>';
    myList( $row[id] );
  }
  print '</ul>';
}
myList();
mysql_close($connection);
?>
Avatar billede detox Nybegynder
11. marts 2005 - 12:25 #11
Ok så, husk at lukke ;O)
Avatar billede steenolsen1 Nybegynder
25. april 2005 - 11:28 #12
lukker
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