menu active dmv php
Ik heb een leuk script met behulp van jullie gemaakt, hij werkt helemaal top!
Ik wil een menu welke automatisch een <LI class=active> maakt aan de hand van het bestandsnaam.
Er zijn 2 bestanden:
Menu.inc
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<ul>
<li<?php if($sScriptnaam == 'index') echo ' id="current"'; ?>><a href="/index.php">home</a></li>
<li<?php if($sScriptnaam == 'bruiloften') echo ' id="current"'; ?>><a href="/portfolio/bruiloften.php">bruiloften</a></li>
<li<?php if($sScriptnaam == 'studio') echo ' id="current"'; ?>><a href="/portfolio/studio.php">studio</a></li>
<li<?php if($sScriptnaam == 'bedrijfs') echo ' id="current"'; ?>><a href="/portfolio/bedrijfs.php">in bedrijf</a></li>
<li<?php if($sScriptnaam == 'slideshows') echo ' id="current"'; ?>><a href="/slideshows.php">slideshows</a></li>
<li<?php if($sScriptnaam == 'boeken') echo ' id="current"'; ?>><a href="/boeken.php">fotoboeken</a></li>
<li<?php if($sScriptnaam == 'links') echo ' id="current"'; ?>><a href="/links.php">links</a></li>
<li<?php if($sScriptnaam == 'contact') echo ' id="current"'; ?>><a href="/contact.php">contact</a></li>
<li<?php if($sScriptnaam == 'nabestellen') echo ' id="current"'; ?>><a href="/nabestellen.php">nabestellen</a></li>
</ul>
<li<?php if($sScriptnaam == 'index') echo ' id="current"'; ?>><a href="/index.php">home</a></li>
<li<?php if($sScriptnaam == 'bruiloften') echo ' id="current"'; ?>><a href="/portfolio/bruiloften.php">bruiloften</a></li>
<li<?php if($sScriptnaam == 'studio') echo ' id="current"'; ?>><a href="/portfolio/studio.php">studio</a></li>
<li<?php if($sScriptnaam == 'bedrijfs') echo ' id="current"'; ?>><a href="/portfolio/bedrijfs.php">in bedrijf</a></li>
<li<?php if($sScriptnaam == 'slideshows') echo ' id="current"'; ?>><a href="/slideshows.php">slideshows</a></li>
<li<?php if($sScriptnaam == 'boeken') echo ' id="current"'; ?>><a href="/boeken.php">fotoboeken</a></li>
<li<?php if($sScriptnaam == 'links') echo ' id="current"'; ?>><a href="/links.php">links</a></li>
<li<?php if($sScriptnaam == 'contact') echo ' id="current"'; ?>><a href="/contact.php">contact</a></li>
<li<?php if($sScriptnaam == 'nabestellen') echo ' id="current"'; ?>><a href="/nabestellen.php">nabestellen</a></li>
</ul>
En in de pagina verwerk je de volgende code:
Code (php)
Nou ben ik helaas op een probleempje gekomen en dat is alsvolgt. Wanneer een bestand in een subdir staat, bijv portfolio/bruiloften.php dan werkt het script dus niet.
Wat moet ik in het menu aanpassen om dit wel werkend te krijgen?
voorbeeld http://frans.stefsegers.nl
Gr, Stef
Gewijzigd op 01/01/1970 01:00:00 door Stef Segers
Gewijzigd op 01/01/1970 01:00:00 door Jacco Engel
Dacht eerst dat dit moest dmv [tag]
bedankt voor de opmerking
http://www.handleidinghtml.nl/html/elementen/base.html
Hier stel je de root van je site in en dan moet je de links in ahref aanpassen ten opzichte van je root. Dat zal bij jou dus de map zijn waar de map portfolio in staat.
Ik kan je alleen niet garanderen of dat werkt, misschien zou je dit ook wel dmv php kunnen oplossen.
Daarnaast kun je dan t.z.t. de array eenvoudig vervangen door data uit een database, dat levert je nog veel meer flexibiliteit op.
Maar ik kan het wel gebruiken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$aNavigation = array(
'index' => 'Home',
'news' => 'Nieuws',
'about' => 'Over ons'
);
$aScriptnaam = explode('.', $_SERVER['SCRIPT_NAME']);
$sScriptnaam = substr($aScriptnaam[0], 0);
foreach ($aNavigation as $key => $value) {
$sStatus = ($key == $sScriptnaam)? ' id="current"':'';
echo '<li'.$sStatus.'><a href="/'.$key.'.php">'.$value.'</a></li>'.PHP_EOL;
}
?>
$aNavigation = array(
'index' => 'Home',
'news' => 'Nieuws',
'about' => 'Over ons'
);
$aScriptnaam = explode('.', $_SERVER['SCRIPT_NAME']);
$sScriptnaam = substr($aScriptnaam[0], 0);
foreach ($aNavigation as $key => $value) {
$sStatus = ($key == $sScriptnaam)? ' id="current"':'';
echo '<li'.$sStatus.'><a href="/'.$key.'.php">'.$value.'</a></li>'.PHP_EOL;
}
?>
$aNavigation zou dus ook uit een database kunnen komen, zolang de opzet van de array maar hetzelfde is. Dan gaat alles in de weergave uitstekend!
Een hoop response. Maar volgens mij heb ik niet helemaal duidelijk verteld hoe of wat.
Het probleem zit m in dat alles WEL werkt BEHALVE in subdirectories.
/portfolio/bruiloften.php wordt dus niet goed mee genomen.
De array die ik net zie zal dus niet werken dan toch? Het menu.inc wil ik graag behouden en het simpele bestaande script het liefst ook...
Stef
Ik had al geprobeerd:
Code (php)
Maar dat werkte dus helaas niet.....
Gewijzigd op 01/01/1970 01:00:00 door Stef Segers
Stef Segers schreef op 15.01.2008 20:42:
Iemand enig idee waar het probleem zit? Volgens mij is het erg makkelijk op te lossen namelijk
Ik had al geprobeerd:
Maar dat werkte dus helaas niet.....
Ik had al geprobeerd:
Code (php)
Maar dat werkte dus helaas niet.....
Probeer alles een vanaf je webroot te doen. Maar je mag ook niet bumpen, je moet dan je berichtje editen. Je mag pas een nieuwe bericht posten na 24 uur.
Waarom zou dat van PGfrank niet werken? Bewaar je menu.inc gewoon en probeer dat van Pgfrank en als dat niet lukt kun je weer verder klooien met je menu.inc.
Ik zal een x die van Frank proberen.... maar elke keer een script op zo'n pag is niet echt handig toch?