Прост въпрос за навигационно меню

qazxsw

Registered
Здравейте,

Ръчкам един темплейт и съм сложил кода на навигационното меню в отделен файл (меню.php).

Проблема е това:

<strong class="noscreen noprint">Navigation:</strong>
<ul id="nav">
<li class="active"><a href="index.php" title="Homa page">Home</a></li>
<li><a href="portfolio.php" title="Portfolio">Portfolio</a></li>
<li><a href="./" title="About us">About us</a></li>
<li><a href="./" title="Photos">Photos</a></li>
<li><a href="./" title="Contact">Contact</a></li>
</ul>

CLASS="ACTIVE"

Искам този активe клас да е автоматичен за всяка страница. Тоест ако потребителя цъкне от home на портфолио и този link да стане aktive.

Ето и цcс кода макар да мисля, че не е нужен:

/* navigation */
ul#nav {position: relative;top: 30px;float: right;}
ul#nav li {float:left;}
ul#nav li a { padding: 0 15px;height: 32px; line-height: 32px;display: block;text-decoration: none;float: left;font-weight: bold;color: #fff; }
ul#nav li:hover {background: url('../img/nav-start.jpg') no-repeat;}
ul#nav li.active { color: #fff;background: url('../img/nav-start.jpg') no-repeat}
ul#nav li:hover a {background: url('../img/nav-end.jpg') no-repeat 100% 0}
ul#nav li.active a {background: url('../img/nav-end.jpg') no-repeat 100% 0}


Извинете ме, че не използвам ББцодес но като ги натисна и не се появяват.
 
я пробвай така :)

Код:
<?php

$active = htmlentities($_SERVER['PHP_SELF'], ENT_QUOTES);

echo "
	<strong class=\"noscreen noprint\">Navigation:</strong>
	<ul id=\"nav\">";
	if($active == "index.php"){
	echo "
		<li class=\"active\"><a href=\"index.php\" title=\"Homa page\">Home</a></li>
		<li><a href=\"portfolio.php\" title=\"Portfolio\">Portfolio</a></li>
		<li><a href=\"about.php\" title=\"About us\">About us</a></li>
		<li><a href=\"photos.php\" title=\"Photos\">Photos</a></li>
		<li><a href=\"contact.php\" title=\"Contact\">Contact</a></li>
		</ul>
		";
	}
	elseif($active == "portifolio.php"){
	echo "
		<li><a href=\"index.php\" title=\"Homa page\">Home</a></li>
		<li class=\"active\"><a href=\"portfolio.php\" title=\"Portfolio\">Portfolio</a></li>
		<li><a href=\"about.php\" title=\"About us\">About us</a></li>
		<li><a href=\"photos.php\" title=\"Photos\">Photos</a></li>
		<li><a href=\"contact.php\" title=\"Contact\">Contact</a></li>
		</ul>
		";
	}
	elseif($active == "about.php"){
	echo "
		<li><a href=\"index.php\" title=\"Homa page\">Home</a></li>
		<li><a href=\"portfolio.php\" title=\"Portfolio\">Portfolio</a></li>
		<li class=\"active\"><a href=\"about.php\" title=\"About us\">About us</a></li>
		<li><a href=\"photos.php\" title=\"Photos\">Photos</a></li>
		<li><a href=\"contact.php\" title=\"Contact\">Contact</a></li>
		</ul>
		";
	}
	elseif($active == "photos.php"){
	echo "
		<li><a href=\"index.php\" title=\"Homa page\">Home</a></li>
		<li><a href=\"portfolio.php\" title=\"Portfolio\">Portfolio</a></li>
		<li><a href=\"about.php\" title=\"About us\">About us</a></li>
		<li class=\"active\"><a href=\"photos.php\" title=\"Photos\">Photos</a></li>
		<li><a href=\"contact.php\" title=\"Contact\">Contact</a></li>
		</ul>
		";
	}
	elseif($active == "contact.php"){
	echo "
		<li><a href=\"index.php\" title=\"Homa page\">Home</a></li>
		<li><a href=\"portfolio.php\" title=\"Portfolio\">Portfolio</a></li>
		<li><a href=\"about.php\" title=\"About us\">About us</a></li>
		<li><a href=\"photos.php\" title=\"Photos\">Photos</a></li>
		<li class=\"active\"><a href=\"contact.php\" title=\"Contact\">Contact</a></li>
		</ul>
		";
	}
?>

преправих си поста, за да не ти е уязвим кода към XSS :)

Поправка: Ако неработи така сложи
Код:
$active = htmlentities($_SERVER['PHP_SELF'], ENT_QUOTES);
във файла, в който инклудваш menu.php :)
 
Хм, странно менюто изчезва напълно без съобщение за грешка или каквото и да е.

Първо го пробвах без да добавям:

Код:
$active = htmlentities($_SERVER['PHP_SELF'], ENT_QUOTES);

във файла в които инклудвам менюто а после го добавих, но и в двата случая менюто не се появява.
 
Код:
<strong class="noscreen noprint">Navigation:</strong>
<ul id="nav">
<li <?php echo $home; ?>><a href="index.php" title="Homa page">Home</a></li>
<li <?php echo $portfolio; ?>><a href="portfolio.php" title="Portfolio">Portfolio</a></li>
<li <?php echo $aboutus; ?>><a href="./" title="About us">About us</a></li>
<li <?php echo $photos; ?>><a href="./" title="Photos">Photos</a></li>
<li <?php echo $contact; ?>><a href="./" title="Contact">Contact</a></li>
</ul>
Предлагам това, като във всяка страница слагаш:
за home:
Код:
$home =' class="active"';
$portfolio ='';
$aboutus ='';
$photos ='';
$contact ='';
за portfolio
Код:
$home ='';
$portfolio =' class="active"';
$aboutus ='';
$photos ='';
$contact ='';
и така нататък.
Идеята е, ако е в страницта портфолио, променливата на портфолио ще вземе стойност за клас и ще влезе в тага, а на всички осанали в тага ще влезе празна стойност, като все едно не се променят.
Успех!
 

Back
Горе