Autor | Zpráva | ||
---|---|---|---|
Tomy Profil |
#1 · Zasláno: 24. 11. 2015, 19:39:01
Ahoj, potřebuju poradit. Chci dát na stránky menu pomocí "include", jenže mám na každé stránce nastavené, že když je otevřená tak ta její záložka v menu "svítí" a nevím jestli to jde nějak udělat také přes ten include. Poradíte mi prosím, Díky moc :)
|
||
Taps Profil |
#2 · Zasláno: 24. 11. 2015, 19:41:35
Tomy:
návod pro inspiraci najdeš na polopate.jakpsatweb.cz/index.php?page=include4 |
||
juriad Profil |
#3 · Zasláno: 24. 11. 2015, 19:59:10
Případně Jednoduchý web v PHP » Menu se zvýrazněním aktuální položky (přečti si celý článek od začáku).
|
||
Tomy Profil |
#4 · Zasláno: 24. 11. 2015, 20:09:12
Nechápu tam jak ověřuje to "první", "druhá", "třetí"...u těch podmínek.
|
||
juriad Profil |
Tomy:
Ten Tapsem odkázaný návod je zastaralý. Je z doby, kdy parametr, například str v URLindex.php?str=prvni byl automaticky dostupný v proměnné $str . Toto se ukázalo jeko špatný nápad a v novém PHP už to není možné. Nově je ten parametr dostupný v superglobálním poli $_GET . Tedy v tvém kódu by to vypadalo:
echo $_GET['str']; # vypíše "prvni" |
||
Tomy Profil |
#6 · Zasláno: 24. 11. 2015, 20:25:40
Uděláš mi tu prosím tě neějaká krátký popsaný příklad? :) Já vím jak fungujou podmínky atd, ale nějak to nemůžu pochopit :-D Díky :)
|
||
juriad Profil |
Někde musíš mít seznam všech stránek, to je na jecas.cz to pole $menu. Pak jde o to projít to pole v cyklu a vypisovat
<a ...>...</a> a kontrolovat, zda se název aktuální stránky nerovná odkazu na stránku, který by se měl zrovna vypsat. Na jecas.cz je to zabalené do funkce. Tu by ti stačilo zavolat a předat jí název stránky, ve které includuješ menu. Tedy něco jako:
<?php include "menu.php"; menu('První stránka'); ?> |
||
Tomy Profil |
Takže tady to musím změnit jak aby mi to fungovalo? Říkal si že tam ten způsob je zastaralý:
<nav> <ul> <?php echo "<li"; if ($str=="prvni") { echo " class='otevreno'"; } echo "><a href='index.php?str=prvni'><b>Aktuality</b></a>"; ?> </ul> </nav> |
||
Taps Profil |
#9 · Zasláno: 24. 11. 2015, 21:20:35
Na to ti odpovedel juriad [#5]
Juriad: je mozne ten navod zaktualizovat? |
||
juriad Profil |
Tomy:
Na polopatě se hlavně odkazuje na všechny stránky skrz index.php, který includuje jednotlivé stránky. Ty naopak máš stránky zvlášť a jen chceš, aby měly společné menu. Taps: To by se tam toho muselo přepsat opravdu hodně, třeba řešení toho, že $_GET['str'] může neexistovat. |
||
Tomy Profil |
juriad:
No chci, jenže potřebuju do toho zakomponovat i tu "aktuálně" otevřenou záložku. juriad: To jak tam mám zakomponovat to společné menu atd chápu, ale ty aktuální položky mi nejdou. |
||
juriad Profil |
Použij funkci
menu z jecas.cz. Ta řeší tvůj případ. Ty ji budeš mít v souboru menu.php.
|
||
Tomy Profil |
#13 · Zasláno: 26. 11. 2015, 17:10:17
Já tam nic takového nemůžu najít. Je tam akorát Označení odkazu na kotvu, pokud je na ní odrolováno a to je něco jiného.
|
||
juriad Profil |
#14 · Zasláno: 27. 11. 2015, 08:16:28
Tomy:
Odkaz jsem ti dal už v [#3] juriad. |
||
Tomy Profil |
#15 · Zasláno: 28. 11. 2015, 10:07:48
|
||
juriad Profil |
#16 · Zasláno: 28. 11. 2015, 11:12:28
To bude asi tím, že máš ve zdrojáku
<b><li>... , což není povolená konstrukce. <ul> smí obsahovat jen <li> , nikoli <b> .
|
||
Tomy Profil |
#17 · Zasláno: 28. 11. 2015, 11:32:47
juriad:
Aha. No ale když tam vynechám konkrétně to "Ocenění", tak mi to nikde neudělá. Konkrétně v HTML mi to nedělalo vůbec. Ale u toho PHP to teda vadí jo? |
||
juriad Profil |
#18 · Zasláno: 28. 11. 2015, 11:40:06
Porovnej tyto dvě položky:
<li><b class="kurzor"><a href="vyborsdh.php?str=vyborsdh">Výbor SDH</a></b></li> <b class="kurzor"><li><a href="oceneni.php?str=oceneni">Ocenění</a></li></b> |
||
Tomy Profil |
juriad:
Jo už sem to spravil a funguje to :) díky Poradil bys mi ještě jak mám udělat, aby když rozklinu podzáložku svítila i ta hlavní záložka? Jestli to nějak jde :) |
||
juriad Profil |
#20 · Zasláno: 28. 11. 2015, 11:57:36
Tomy:
Neznám tvůj kód, nevím, jak to menu generuješ. Jde všechno, ale často to znamená překopání většího kusu kódu a třeba i zesložitění nad úroveň, které rozumíš. |
||
Tomy Profil |
#21 · Zasláno: 29. 11. 2015, 08:06:06
juriad:
Teď ho mám takhle: <main class="menu"> <nav> <ul> <?php echo "<li"; if ($_GET['str'] == "aktuality") echo " class='otevreno'"; echo "><a href='doma.php?str=aktuality'>Aktuality</a></li>\n"; ?> <li><a class="kurzor">Sbor</a> <ul> <?php echo "<li"; if ($_GET['str'] == "historie") echo " class='otevreno'"; echo "><a href='historie.php?str=historie'>Založení sboru</a></li>\n"; echo "<li"; if ($_GET['str'] == "historie1") echo " class='otevrenozelena'"; echo "><a href='historie1.php?str=historie1'>Historie</a></li>\n"; echo "<li"; if ($_GET['str'] == "cinnostsboru") echo " class='otevrenozelena'"; echo "><a href='cinnostsboru.php?str=cinnostsboru'>Činnost sboru po osvobození</a></li>\n"; echo "<li"; if ($_GET['str'] == "cinnost") echo " class='otevrenozelena'"; echo "><a href='cinnost.php?str=cinnost'>Z činnosti za léta 1980 - 1990</a></li>\n"; echo "<li"; if ($_GET['str'] == "organizace") echo " class='otevrenozelena'"; echo "><a href='organizace.php?str=organizace'>Organizační činnost</a></li>\n"; echo "<li"; if ($_GET['str'] == "19902000") echo " class='otevrenozelena'"; echo "><a href='19902000.php?str=19902000'>1990 - 2000</a></li>\n"; echo "<li"; if ($_GET['str'] == "20012009") echo " class='otevrenozelena'"; echo "><a href='20012009.php?str=20012009'>2001 - 2009</a></li>\n"; ?> </ul> <li><a class="kurzor">Technické vybavení sboru</a> <ul> <?php echo "<li"; if ($_GET['str'] == "vozidla") echo " class='otevrenozelena'"; echo "><a href='vozidla.php?str=vozidla'>Vozidla</a></li>\n"; echo "<li"; if ($_GET['str'] == "strikacky") echo " class='otevrenozelena'"; echo "><a href='strikacky.php?str=strikacky'>Stříkačky</a></li>\n"; echo "<li"; if ($_GET['str'] == "mcerpadla") echo " class='otevrenozelena'"; echo "><a href='mcerpadla.php?str=mcerpadla'>motorové čerpadla</a></li>\n"; echo "<li"; if ($_GET['str'] == "mpila") echo " class='otevrenozelena'"; echo "><a href='mpila.php?str=mpila'>motorová pila</a></li>\n"; echo "<li"; if ($_GET['str'] == "proudnice") echo " class='otevrenozelena'"; echo "><a href='proudnice.php?str=proudnice'>Proudnice</a></li>\n"; echo "<li"; if ($_GET['str'] == "vstan") echo " class='otevrenozelena'"; echo "><a href='vstan.php?str=vstan'>Vojenský stan</a></li>\n"; echo "<li"; if ($_GET['str'] == "zvybaveni") echo " class='otevrenozelena'"; echo "><a href='zvybaveni.php?str=zvybaveni'>Zásahové vybavení</a></li>\n"; ?> </ul> <li><a class="kurzor">Zásahy</a> <ul> <?php echo "<li"; if ($_GET['str'] == "zasahy2009") echo " class='otevrenozelena'"; echo "><a href='zasahy2009.php?str=zasahy2009'>2009</a></li>\n"; echo "<li"; if ($_GET['str'] == "zasahy2010") echo " class='otevrenozelena'"; echo "><a href='zasahy2010.php?str=zasahy2010'>2010</a></li>\n"; echo "<li"; if ($_GET['str'] == "zasahy2011") echo " class='otevrenozelena'"; echo "><a href='zasahy2011.php?str=zasahy2011'>2011</a></li>\n"; ?> </ul> <li><a class="kurzor">Soutěže</a> <ul> <?php echo "<li"; if ($_GET['str'] == "muzi") echo " class='otevrenozelena'"; echo "><a href='muzi.php?str=muzi'>Muži</a></li>\n"; echo "<li"; if ($_GET['str'] == "zaci") echo " class='otevrenozelena'"; echo "><a href='zaci.php?str=zaci'>Žáci</a></li>\n"; ?> </ul> <?php echo "<li"; if ($_GET['str'] == "vyborsdh") echo " class='otevreno'"; echo "><a href='vyborsdh.php?str=vyborsdh'>Výbor SDH</a></li>\n"; echo "<li"; if ($_GET['str'] == "oceneni") echo " class='otevreno'"; echo "><a href='oceneni.php?str=oceneni'>Ocenění</a></li>\n"; ?> </ul> </nav> <nav class="zindex"> <ul> <?php echo "<li"; if ($_GET['str'] == "dokumenty") echo " class='otevreno'"; echo "><a href='dokumenty1.php?str=dokumenty'>Dokumenty</a></li>\n"; echo "<li"; if ($_GET['str'] == "pronajem") echo " class='otevreno'"; echo "><a href='pronajem.php?str=pronajem'>Pronájem</a></li>\n"; echo "<li"; if ($_GET['str'] == "odkazy") echo " class='otevreno'"; echo "><a href='odkazy.php?str=odkazy'>Odkazy</a></li>\n"; echo "<li"; if ($_GET['str'] == "kontakt") echo " class='otevreno'"; echo "><a href='kontakt.php?str=kontakt'>Kontakt</a></li>\n"; echo "<li"; if ($_GET['str'] == "fotogalerie") echo " class='otevreno'"; echo "><a href='fotogalerie.php?str=fotogalerie'>Fotogalerie</a></li>\n"; echo "<li"; if ($_GET['str'] == "videogalerie") echo " class='otevreno'"; echo "><a href='videogalerie.php?str=videogalerie'>Videogalerie</a></li>\n"; ?> <li><a href="https://www.facebook.com/sdh.prostrednibecva?fref=ts" target="_blank" class="Facebook">Facebook</a> </ul> </nav> </main> |
||
mimochodec Profil |
Nechce se mně to psát komplet, tak jen naznačím.
<?php $pg = $_GET['str']; echo "<li"; if ($pg == "aktuality") echo " class='otevreno'"; echo "><a href='doma.php?str=aktuality'>Aktuality</a></li>\n"; echo "<li"; if (in_array($pg, array("historie", "historie1", "cinnostsboru"))) echo " class='otevrenaskupina'"; echo "><a class='kurzor'>Sbor</a>"; echo "<ul>"; echo "<li"; if ($pg == "historie") echo " class='otevreno'"; echo "><a href='historie.php?str=historie'>Založení sboru</a></li>\n"; echo "<li"; if ($pg == "historie1") echo " class='otevrenozelena'"; echo "><a href='historie1.php?str=historie1'>Historie</a></li>\n"; echo "<li"; if ($pg == "cinnostsboru") echo " class='otevrenozelena'"; echo "><a href='cinnostsboru.php?str=cinnostsboru'>Činnost sboru po osvobození</a></li>\n"; ?> |
||
Tomy Profil |
#23 · Zasláno: 29. 11. 2015, 10:19:38
mimochodec:
Teď mám ale problém s tím, že mi svítí když je otevřená podzáložka tak ta svítí jak chci, a zbytek podzáložek svítí stejně jako ta hlavní zálokža. |
||
mimochodec Profil |
#24 · Zasláno: 29. 11. 2015, 10:33:16
nerozumím. Tak jak jsem to napsal, svítí "Sbor" v případě, že je vybraná některá položka pod ním. Jeslti to chceš jinak, je problém tu logiku v tom vypozorovat a upravit si to?
|
||
Tomy Profil |
mimochodec:
Jo to že svítí sbor a záložka pod ním je srávně. Ale svítí mi i ty ostatní podzáložky v tom "Sboru". Tobě svítí jenom ta jedna? (Ty ostatní pozáložky svítí v té barvě jako sbor) mimochodec: Ne počkej, zkusím ještě neco udělat. Asi vím kde mám chybu. mimochodec: Mám asi blbě nastylované .css, ale nemůžu přijít na to, jak to zapsat aby to platilo jenom pro tu vrchní záložku. Vždycky mi to rozsvítí i ty ostatní podzáložky :/ |
||
mimochodec Profil |
#26 · Zasláno: 29. 11. 2015, 11:17:23
Tomy:
„Mám asi blbě nastylované .css, ale nemůžu přijít na to, jak to zapsat aby to platilo jenom pro tu vrchní záložku. Vždycky mi to rozsvítí i ty ostatní podzáložky :/“ Tak si zkontroluj to css. Tohle php je tak triviální, že to nemůže nefungovat. Vybraná položka musí svítit a musí svítit i její "nadpoložka". Nic víc. Rozdíl mezi 'otevreno' a 'otevrenozelena' je jaký? |
||
Tomy Profil |
mimochodec:
otevreno svítí červeně a otevrenozelena svítí zeleně O tom sem se zapoměl zmínít, moje chyba. |
||
Tomy Profil |
mimochodec:
Já fakt nevím co s tím mám. Kód je stejný. <?php $pg = $_GET['str']; echo "<li"; if ($pg == "aktuality") echo " class='otevreno'"; echo "><a href='index.php?str=aktuality'>Aktuality</a></li>\n"; echo "<li"; if (in_array($pg, array("historie", "historie1", "cinnostsboru", "cinnost", "organizace", "19902000", "20012009"))) echo " class='otevrenaskupina'"; echo "><a class='kurzor'>Sbor</a>"; echo "<ul>"; echo "<li"; if ($pg == "historie") echo " class='otevrenozelena'"; echo "><a href='historie.php?str=historie'>Založení sboru</a></li>\n"; echo "<li"; if ($pg == "historie1") echo " class='otevrenozelena'"; echo "><a href='historie1.php?str=historie1'>Historie</a></li>\n"; echo "<li"; if ($pg == "cinnostsboru") echo " class='otevrenozelena'"; echo "><a href='cinnostsboru.php?str=cinnostsboru'>Činnost sboru po osvobození</a></li>\n"; echo "<li"; if ($pg == "cinnost") echo " class='otevrenozelena'"; echo "><a href='cinnost.php?str=cinnost'>Z činnosti za léta 1980 - 1990</a></li>\n"; echo "<li"; if ($pg == "organizace") echo " class='otevrenozelena'"; echo "><a href='organizace.php?str=organizace'>Organizační činnost</a></li>\n"; echo "<li"; if ($pg == "19902000") echo " class='otevrenozelena'"; echo "><a href='19902000.php?str=19902000'>1990 - 2000</a></li>\n"; echo "<li"; if ($pg == "20012009") echo " class='otevrenozelena'"; echo "><a href='20012009.php?str=20012009'>2001 - 2009</a></li>\n"; echo "</ul>"; ?> a css je takhle: nav li.otevrenaskupina a{ /* tady nevím přesně co mám napsat*/ text-shadow: 1px 2px 10px #ff0000; color: #ff0000; } nav li.otevreno a{ text-shadow: 1px 2px 10px #ff0000; color: #ff0000; } nav li.otevrenozelena a{ text-shadow: 1px 2px 10px #008000; color: #008000; } |
||
mimochodec Profil |
#29 · Zasláno: 29. 11. 2015, 14:50:08
ztratil jsem sev om. nevím, co je na tom špatně. Dej odkaz na živou ukázku a zkus to popsat. Jak už jsem psal, jde jen o pár podmínekmusí to fungovat. Jestli se to chová jinak než chceš, možná za to může bordel v těch třech třídách. Což je docela umění.
|
||
Tomy Profil |
mimochodec:
V živé ukázce funguje PHP? Mi to tam teda nejde. Podívej se na www.sdhbecva.cz. Tam je přímo ta záložka SBOR a můžeš se podívat jak to funguje. Tam je problém s tím echo:"otevrenaskupina"; . Buď to já blbě nastavuju v css, nebo tu třídu přiřazuje všem těm podzáložkám, kromě té aktivní, která svítí dobře. Jestli to blbě nastavuju v css, tak se k tomu asi nedopátrám, protože na to nemůžu příjít :-D
|
||
Téma pokračuje na další straně.
|
0