Server side includes i css klase u meniju

Isprike na početku što nisam uspio smisliti dobar naslov threada. Problem je slijedeći:

Radi se o jednostavnom html/css webu. Želim imati header sitea s izborničkim menijem u odvojenom server side include (shtml) fileu. Međutim, želim zadržati mogućnost da aktivnom linku u meniju izmijenim css klasu kako bi posjetitelj u meniju imao vizualnu potvrdu gdje se nalazi na siteu. Problem je što ako imam menu u headeru koji je u zasebnom shtml fileu, ne znam kako riješiti, ako je uopće izvedivo, da mi se css klasa prebacuje po linkovima zavisno o stranici weba na kojoj se posjetitelj nalazi. Npr:

      <div class="menu">
        <ul>
          <li><a href="index.html" class="active"><span>Naslovna</span></a></li>
          <li><a href="produkti.html"><span>Produkti</span></a></li>
          <li><a href="faq.html"><span>Učestala pitanja</span></a></li>
          <li><a href="pomoc.html"><span>Pomoć</span></a></li>
          <li><a href="about.html"><span>O projektu </span></a></li>
          <li><a href="kontakt.html"><span> Kontakt</span></a></li>
        </ul>
      </div>

Dakle sad je izgled linka za naslovnicu u drugačijoj css klasi, ali budući da se ovo nalazi u vanjskom headeru, class=“active” ne odlazi na drugi link nakon što posjetitelj klikne drugu stranicu.

Molim za neku ideju,
hvala,
Ivan

JavaScriptom. Parsiraj url i dohvati zadnji segment istog, te mu na temelju te vrijednosti link elementu na stranici dodaj klasu active.

Ako znaš PHP možeš napraviti i preko njega na način da ti php skripta ispituje URL i na temelju njega definira klasu aktivnog linka npr:

  <style type="text/css">
      .active{ color:orange;}
      .active:hover{ color:green;}
      .not { color:green; }
      .not:hover { color:orange; }
  </style>


  <?php
  function curPageURL() {
   $pageURL = 'http';
   if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
   $pageURL .= "://";
   if ($_SERVER["SERVER_PORT"] != "80") {
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
   } else {
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
   }
   return $pageURL;
  }
      $pager=curPageURL();
  
      echo "$pager";
      
      $dalmatino1="not";
      $dalmatino2="not";
      $dalmatino3="not";
       
       switch($pager)
       {
       case 'http://localhost/testovi/testovi/index.php':
       $dalmatino1='active';
       break;
       case 'http://localhost/testovi/testovi/produkti.php':
       $dalmatino2='active';
       break;
       case 'http://localhost/testovi/testovi/faq.php':
       $dalmatino3='active';
       break;
       default:
       $dalmatino1='not';
       $dalmatino2='not';
       $dalmatino3='not';         
       }
       
       echo"
        <div class=\"menu\">
          <ul>
            <li><a href=\"index.php\" class=\"$dalmatino1\"><span>Naslovna</span></a></li>
            <li><a href=\"produkti.php\" class=\"$dalmatino2\"><span>Produkti</span></a></li>
            <li><a href=\"faq.php\" class=\"$dalmatino3\"><span>Učestala pitanja</span></a></li>
          </ul>
        </div>
        ";
        
  ?>

Vjerojatno ima i jednostavnijih rješenja, ali ovo mi je prvo palo na pamet…

Ako može php, onda jedna jednostavna funkcija koja ti je samo baza za daljnje nadograđivanje:

A koristiš je na način:

[HTML]

[/HTML]

Znači ovo ti je osnova osnova koje treba provući kroz neke provjere, ali meni je trebalo na brzinu bez ikakvih provjera, pa sam je sklepo u roku od tri minute.

Ako baš mora biti SSI…

http://www.ssi.su/

Probaš sa SET ili Variable Substitution

U SSI-u se naziv fajla ispisuje sa
a URL, bez naziva domene, sa

Ja bih probao iskoristiti to i JavaScript.

A najradije bih se, ako je moguće, prebacio na PHP.
SHTML se lako i brzo prebaci a PHP, a dobije se puno više mogućnosti.