Navigeren in mappen
Maar ik heb een keer voor een klant een bestanden systeem gemaakt.
Hierin kan hij/zij bestanden zetten en mappen aanmaken.
Als hij/zij dan in een map komt ziet hij bovenin dit staan:
root/map1/
Alleen hij zou graag willen als de link bijvoorbeeld dit is:
root/map1/map1.2/map1.2.1/
dat hij door middel van het klikken op map1 weer naar map 1 gaat.
(en dit geld dan natuurlijk ook voor map1.2 ;))
Iemand enig idee hoe ik dat zou kunnen doen?
Ik heb al wat geprobeerd met explode en in een array etc. maar dat was geen succes.
P.s. ik hoop dat de titel een beetje goed is ;)
Gewijzigd op 14/05/2010 23:18:19 door Peter ndshomebrew
Maar ja, jij hebt het gemaakt, dan lijkt mij dat je weet wat je gemaakt hebt en hoe het werkt. Dus ook hoe je het kan aanpassen.
Edit: Je klant kan ergens op een linkie o.i.d. klikken om in die map te gaan zitten. Die manier moet je dus gebruiken.
Je kunt bijvoorbeeld een sessionvariable maakt die een array is die bijhoud hoe diep je klant zit kan je dat mooi gebruiken. Dit betekend wel dat je je hele systeem waarschijnlijk moet ombouwen.
Ik zal binnenkort even gaan prutsen. maar als ik te veel moet omgooien laat ik het maar gewoon zo als het nu is.
In de web-root zet je deze twee bestandjes:
breadcrumbs.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$home = 'Thuis';
$sep = htmlentities(' >> ');
$url = '/';
$dirs = explode('/', $_SERVER['REQUEST_URI']);
$html = '<span class="breadcrumb"><a href="'.$url.'">'.$home.'</a>';
for ($i=1; $i < count($dirs)-1; $i++) {
$url .= $dirs[$i].'/';
$html .= $sep.'<a href="'.$url.'">'.ucfirst(preg_replace('/_|%20/',' ',$dirs[$i])).'</a>';
}
$html .= $sep.'<b><script type="text/javascript">document.write(document.title.replace(/_/g," "))</script></b>';
echo $html.'</span>'."\n";
?>
$home = 'Thuis';
$sep = htmlentities(' >> ');
$url = '/';
$dirs = explode('/', $_SERVER['REQUEST_URI']);
$html = '<span class="breadcrumb"><a href="'.$url.'">'.$home.'</a>';
for ($i=1; $i < count($dirs)-1; $i++) {
$url .= $dirs[$i].'/';
$html .= $sep.'<a href="'.$url.'">'.ucfirst(preg_replace('/_|%20/',' ',$dirs[$i])).'</a>';
}
$html .= $sep.'<b><script type="text/javascript">document.write(document.title.replace(/_/g," "))</script></b>';
echo $html.'</span>'."\n";
?>
breadcrumbs.css
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
.breadcrumb {
font: normal 13px Arial;
color: #000080;
}
.breadcrumb a:link,
.breadcrumb a:visited,
.breadcrumb a:active {
text-decoration: underline;
color: #000080;
}
.breadcrumb a:hover {
text-decoration: none;
}
font: normal 13px Arial;
color: #000080;
}
.breadcrumb a:link,
.breadcrumb a:visited,
.breadcrumb a:active {
text-decoration: underline;
color: #000080;
}
.breadcrumb a:hover {
text-decoration: none;
}
Je kunt nu de beide bestandjes als volgt 'includen', ongeacht in welke map je dat wilt doen. Het resultaat is een klikbaar 'kruimelspoor' op de pagina.
elke_pagina.php
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<html>
<head>
<link href="/breadcrumbs.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php include $_SERVER['DOCUMENT_ROOT'].'/breadcrumbs.php'; ?>
</body>
</html>
<head>
<link href="/breadcrumbs.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php include $_SERVER['DOCUMENT_ROOT'].'/breadcrumbs.php'; ?>
</body>
</html>
Gewijzigd op 16/05/2010 01:39:27 door Kees V
Bedankt. Ik ga het eens proberen ;)