menu active dmv php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stef Segers

Stef Segers

15/01/2008 14:46:00
Quote Anchor link
Hey allen,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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>


En in de pagina verwerk je de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
        <?php    
        
        $aExpl
= explode('.', $_SERVER['SCRIPT_NAME']);
        $sScriptnaam = substr($aExpl[0], 1);
        
        include('includes/menu.inc');        
        ?>


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
 
PHP hulp

PHP hulp

23/11/2024 14:53:43
 
Jacco Engel

Jacco Engel

15/01/2008 14:47:00
Quote Anchor link
vergeet de tags niet
Gewijzigd op 01/01/1970 01:00:00 door Jacco Engel
 
Stef Segers

Stef Segers

15/01/2008 14:49:00
Quote Anchor link
Hey Jacco,

Dacht eerst dat dit moest dmv [tag]

bedankt voor de opmerking
 
J V

J V

15/01/2008 15:07:00
Quote Anchor link
Dit kun je volgens mij doen door een base href toe te passen.
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.
 
Frank -

Frank -

15/01/2008 15:11:00
Quote Anchor link
Offtopic: 9x dezelfde code inkloppen is niet handig, dat kan slimmer. Zet bv. de bestandsnamen en beschrijvingen in 1 array en ga dit met een foreach uitlezen. Dat maakt de boel een stuk beter te debuggen en te onderhouden.

Daarnaast kun je dan t.z.t. de array eenvoudig vervangen door data uit een database, dat levert je nog veel meer flexibiliteit op.
 
Niek Weevers

Niek Weevers

15/01/2008 15:41:00
Quote Anchor link
pgFrank, heb je een voorbeeld? Ik ben niet zo goed in php.
Maar ik kan het wel gebruiken.
 
Frank -

Frank -

15/01/2008 15:51:00
Quote Anchor link
Simpel voorbeeldje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 zou dus ook uit een database kunnen komen, zolang de opzet van de array maar hetzelfde is. Dan gaat alles in de weergave uitstekend!
 
Stef Segers

Stef Segers

15/01/2008 17:35:00
Quote Anchor link
Hey allen,

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
 
Stef Segers

Stef Segers

15/01/2008 20:42:00
Quote Anchor link
Iemand enig idee waar het probleem zit? Volgens mij is het erg makkelijk op te lossen namelijk

Ik had al geprobeerd:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<li<?php if($sScriptnaam == '/portfolio/bruiloften') echo ' id="current"'; ?>><a href="/portfolio/bruiloften.php">bruiloften</a></li>

Maar dat werkte dus helaas niet.....
Gewijzigd op 01/01/1970 01:00:00 door Stef Segers
 
J V

J V

15/01/2008 20:54:00
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<li<?php if($sScriptnaam == '/portfolio/bruiloften') echo ' id="current"'; ?>><a href="/portfolio/bruiloften.php">bruiloften</a></li>

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.
 
Stef Segers

Stef Segers

15/01/2008 20:57:00
Quote Anchor link
Nou het is zo... die bruiloften en andere 2 kunnen niet in de webroot... ik heb t al geprobeerd... maar het heeft te maken met de SimpleViewerAdmin die ik gebruik vandaar....

Ik zal een x die van Frank proberen.... maar elke keer een script op zo'n pag is niet echt handig toch?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.