Mikä olisi järkevin tapa toteuttaa navigaatiossa näytettäväksi kyseinen sivu. Tämä sivu olisi siis tarkoitus saada eri tavalla näkymään kuin muut navigaatiossa olevat sivut, jolloin käyttäjä tietää millä sivulla ollaan. Tiedot haettaisiin MySQL-tietokannasta. Miten tiedot pitäisi PHP:llä käsitellä?
Otetaan esimerkki: Esimerkin mukaan ollaan info-sivulla, sivujen järjestyksen ei pitäisi muuttua vaikka millä sivulla oltaisiinkin.
<div id="navigaatio"> <a href="/etusivu">Etusivu</a> <a href="/info" id="nykyinen_sivu">Info</a> <a href="/palaute">Palaute</a> </div>
Jos jotain tälläistä hait, niin tuossa yksi toteutus. Voi olla että saa järkevämminkin tehtyä..
<?php function file_name() { $path = $_SERVER['PHP_SELF']; $parts = explode('/', $path); $file = explode('.', $parts[count($parts) -1]); return $file[0]; } ?> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body#etusivu #etusivu, body#info #info, body#palaute #palaute { font-size: 2em; } </style> </head> <body id="<?php echo file_name(); ?>"> <div id="navigaatio"> <ul> <li><a href="/etusivu" id="etusivu">Etusivu</a></li> <li><a href="/info" id="info">Info</a></li> <li><a href="/palaute" id="palaute">Palaute</a></li> <ul> </div> </body> </html>
<?php function tarkistaSivu($sivu) { if(basename($_SERVER["PHP_SELF"]) == $sivu) echo " id=\"nykyinen_sivu\""; } ?> <div id="navigaatio"> <a href="/etusivu"<?php tarkistaSivu("etusivu.php"); ?>>Etusivu</a> <a href="/info"<?php tarkistaSivu("info.php"); ?>>Info</a> <a href="/palaute"><?php tarkistaSivu("palaute.php"); ?></a> </div>
Kiitos näistä! Uskon pärjääväni näillä :).
Sivuun itseensä viittaava linkki on käytettävyyden kannalta huono eikä pelkästään turha, joten <a>Info</a> on parempi. Tällöin kyseinen kohta valikossa on automaattisesti erinäköinen kuin linkit eli erottuu jo sen takia. Tietysti voisi jättää tägit <a> ja </a> kokonaan pois tästä, mutta niitä käyttämällä saadaan kohdasta elementti, jonka voi sitten haluttaessa muotoilla CSS:llä. Ei tarvita id:tä, koska voi muotoilla linkit halutunlaisiksi selektoreilla :link ja :visited (taikka hiukan vähemmän varmasti selektorilla a[href]).
Aihe on jo aika vanha, joten et voi enää vastata siihen.