Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: [PHP, MySQL] Nykyinen sivu (näkymään navigaatiossa)

combo [07.01.2012 18:58:45]

#

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>

efteri [07.01.2012 20:33:59]

#

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>

Macro [07.01.2012 20:39:30]

#

<?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>

combo [07.01.2012 21:02:08]

#

Kiitos näistä! Uskon pärjääväni näillä :).

Yucca [08.01.2012 02:49:56]

#

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]).

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta