Autor Zpráva
unlucky
Profil
Jak efektivně udělat, aby při zobrazení článku se zvýraznil příslušné menu?

například mám menu "práce půda kapitál"
když někdo na stránce "články" bude číst článek v kategorii půda, tak aby mi označilo např. v menu active class půdu
Beavis
Profil
unlucky:
Podle toho, jak články zobrazuješ. Nejjednodušší je (podle mě) použít podmínky ( if(isSet GET .... )..
Petr ZZZ
Profil
Dá se to přes CSS nastylovat, např:

a:link    { background-color:#cc6600; }
a:visited { background-color:#996666; }
a:active  { background-color:#ffffff; }
a:hover   { background-color:#ff66ff; }

Tak se dá nastylovat všechno možné, viz též Vylepšení odkazů. Můžeš si udělat i různé třídy:

.klas a:link    { background-color:#cc6600; }
.klas a:visited { background-color:#996666; }
.klas a:active  { background-color:#ffffff; }
.klas a:hover   { background-color:#ff66ff; }

.vlas a:link    { zas jina definice }
.vlas a:visited { jina definice  }
.vlas a:active  { jina definice  }
.vlas a:hover   { jina definice  }
unlucky
Profil
nejde mi o to, jak to nastylovat :D

například na intervalu

http://interval.cz/clanky/chyba-4xx-chovani-stranek-pro-uzivatele-a-vyhledavace/

když to dáte do prohlížeče, tak se zvýrazní webdesign, webové standardy. A já bych chtěl nakopnout správným směrem, jak to efektivně zvýraznit
(v dbz je kategorie samozřejmě)
Beavis
Profil
unlucky:
Předpokládám že máš články v DB, jde jen o metodu "vytáhnutí" z ní. Pokud používáš tvary např.; ?strana=clanky&id=.. , pak jde přiřadit SQL dotaz, který vyhledá článek podle id v adrese a vytáhne ho z DB.
Medvídek
Profil
unlucky:
Vytáhneš si z DB v kterých kategoriích je článek umístěný a těm přidáš třídu active.

http://interval.cz/webdesign/webove-standardy/
r0me0
Profil
já to dělám přes switch... dejme tomu, že máš menu s třemi položkami: Domů, Foto, Kontakt a v url to řešíš takto: www.domena.cz/index.php?kategorie=domu

switch($_GET['kategorie'])
    {
    case "domu":
    $zvyrazneni_domu = 'class="aktivni"';
    break;

    case "foto":
    $zvyrazneni_foto = 'class="aktivni"';
    break;

    case "kontakt":
    $zvyrazneni_kontakt = 'class="aktivni"';
    break;
    }


a pak ve vzpisu menu to mam takto:

echo '<a href="domu.php" '.$zvyrazneni_domu.' > Domů </a>';
echo '<a href="foto.php" '.$zvyrazneni_foto.' > Foto </a>';
echo '<a href="kontakt.php" '.$zvyrazneni_kontakt.' > Kontakt </a>';
unlucky
Profil
porad nechapete :P

takze v indexu mam includnuty menu a obsah

v obsahu (clanek.php) ziska pres $_GET['id'] a zobrazi

jak ale udelat, kdyz menu je PRED obsahem takze jeste pred SQL dotazem. Takze udelat jeste v menu podminku pokud stranka ==clanek zjisti kategorii atd... ? se mi to zda zbytecne mit 2x stejny dotaz tak se ptam na lepsi reseni
panther
Profil
unlucky:
a důvod, proč je dotaz dole a nemůže být o pár řádek výše?
Medvídek
Profil
unlucky:
Nejlepší je ten dotaz udělat ještě před začátkem stránky a rovnou si tím zjištíš třeba i titulek stránky.

switch($_GET["stranka"]){
 case "novinky":{
  if($_GET["kategorie"]=="akce" OR $_GET["kategorie"]=="aparatura" OR $_GET["kategorie"]=="djs"){
   if($_GET["kategorie"]=="akce"){$titulek="Nabídka akcí "; $aktivni_akce=" class='active'";}
   if($_GET["kategorie"]=="aparatura"){$titulek="Nabídka aparatury "; $aktivni_apa=" class='active'";}
   if($_GET["kategorie"]=="djs"){$titulek="DJs´ "; $aktivni_djs=" class='active'";}
  }
  else{
   if($_GET["kategorie"]=="fotky"){
       if(empty($_GET["strana"])){$strana=1;}
        else{$strana=ereg_replace("[^0-9]", "", $_GET["strana"]);}  
       $titulek="Galerie - strana ".$strana; 
       $aktivni_foto=" class='active'"; 
   }
   else{
       if(empty($_GET["strana"])){$strana=1;}
        else{$strana=ereg_replace("[^0-9]", "", $_GET["strana"]);}  
       $titulek="Novinky - strana ".$strana;  
       $aktivni_novinky=" class='active'"; 
   } 
  }
 break;
 }
unlucky
Profil
Medvidek:

ale ty kategorie mam v sql, to si zase musim dat další dotaz?

panther:
obsah:

while (neco = mysql fetch array sss){
echo $neco['tohle'] atd...

zobrazi se 6x
}


tohle asi vlozit pred title asi ne :P

drive jsem pouzival pred title

if ($kde=="show_news"){
$id_kde=$_GET['id'];
$show_news_kde=mysql_query("select title from news where id='$id_kde'");
$show_kde=mysql_fetch_array($show_news_kde));
$active_str=$show_kde['title'];
unlucky
Profil
Jak zobrazujete menu?

zatím mám tohle a zdá se mi že je to špatně pro budoucí dynamické titulky

Page je stranka a title je nazev pro podstranku. Kdyz někdo klikne na "culture" tak se mu zobrazi submenu pro "culture". Sem je to fajn. Problém nastává tehdy, když mám

/clanek/seo-nazev-clanku -> ?page=clanek&title=seo-nazev-clanku

z dbz si zjistím categorii a podcategorii, ale nevim jak na zýkladě toho zvýraznit menu a submenu v tomto případě
menu = page
submenu = title

switch($_GET['title'])
    {
    
    case "festivals":
    $zvyrazneni_subfestivals = 'id="subcurrent"';
    break;
    }
    
switch($page)
    {

    case "home":
    $zvyrazneni_home = 'id="current"';
    break;

    case "culture":
    $zvyrazneni_culture = 'id="current"';
    $submenu = '
    <a href="/culture/traditional-arts" '.$zvyrazneni_subta.'>Traditional Arts</a> 
    <a href="/culture/festivals" '.$zvyrazneni_subfestivals.'>Festivals</a> 
    <a href="/culture/myths-and-legends" '.$zvyrazneni_submyths.'>Myths and Legends</a> 
    <a href="/culture/religions" '.$zvyrazneni_subreligions.'>Religions</a> 
    <a href="/culture/foods-and-drinks" '.$zvyrazneni_subfoods.'>Foods and drinks</a>   
    ';
    break;  } 

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: