Autor | Zpráva | ||
---|---|---|---|
Pavel817 Profil * |
#1 · Zasláno: 11. 6. 2011, 21:52:12
Vím, že už se to tady řešilo ale pokouším se to zprovoznit ale marně :( Z toho co jsem tu i jinde zatím (četl) to asi nedám dohromady :( Vkládám do stejné stránky na konkrétní místo různé informace. Domnívám se, že to bude ještě asi jiný případ ale nevím jak to řešit :( Takto mám kód pro vložení textu na stránku.
<div id="info-box"> <div id="obal-menu-obsah"> <div id="menu-obsah"> <a id="menu1" href="index.php?volba=1" target="_self" title="Týdenní menu"><span>týdenní menu</span></a> <a id="menu2" href="index.php?volba=2" target="_self" title="Novinky"><span>novinky</span></a> <a id="menu3" href="index.php?volba=3" target="_self" title="Akce"><span>akce</span></a> </div><!-- menu-obsah --> </div><!-- obal-menu-obsah --> <div id="silver-box"> <?php if ($volba=="1"): include("include/denni-menu.txt"); endif; if ($volba=="2"): include("include/novinky.txt"); endif; if ($volba=="3"): include("include/akce.txt"); endif; ?> </div><!-- silver-box --> </div><!-- info-box --> A ještě odkaz na stránku Je to ta část v šedivém boxu. |
||
slovakCZ Profil |
#2 · Zasláno: 11. 6. 2011, 22:14:36
jestli chces zvyraznit aktualni menu tak jen trosku rozsir svuj kod:
<div id="info-box"> <div id="obal-menu-obsah"> <div id="menu-obsah"> <a id="menu1"<?php if($volba==1){echo ' class="altivni_polozka"'; ?> href="index.php?volba=1" target="_self" title="Týdenní menu"><span>týdenní menu</span></a> <a id="menu2"<?php if($volba==2){echo ' class="altivni_polozka"'; ?> href="index.php?volba=2" target="_self" title="Novinky"><span>novinky</span></a> <a id="menu3"<?php if($volba==3){echo ' class="altivni_polozka"'; ?> href="index.php?volba=3" target="_self" title="Akce"><span>akce</span></a> </div><!-- menu-obsah --> </div><!-- obal-menu-obsah --> <div id="silver-box"> <?php if ($volba=="1"): include("include/denni-menu.txt"); endif; if ($volba=="2"): include("include/novinky.txt"); endif; if ($volba=="3"): include("include/akce.txt"); endif; ?> </div><!-- silver-box --> </div><!-- info-box --> kde trida .aktivni_polozka bude mit stejna vlastnosti jako pri hoveru... |
||
slovakCZ Profil |
#3 · Zasláno: 11. 6. 2011, 22:19:47
ale jeste k tomu zpusobu includovani stranek... je to docela prasakce :) spise to res takto (samozrejme je potreba udelat podminky pro to, aby si do url nemohl zada index.php?strana=../config/config.php apod.).
pote bys mel v nejake slozce soubory, pojmenovane jako nazvy stranek.. vice pochopis z tohoto kodu (samozrejme je nutne to jeste osetrit) <ul id="menu"> <li><a href="index.php?strana">Uvodni strana</a></li> <li><a href="index.php?strana=produkty">Produkty</a></li> <li><a href="index.php?strana=kontakt">Kontakt</a></li> </ul> <div id="obsah"> <?php if(isset($_GET['strana'])){ $page = $_GET['strana']; }else{ // pokud v url neni parametr strana, tak se nacte homepage $page = 'uvodni-strana'; } include $page.'.txt'; ?> </div> |
||
pcmanik Profil |
#4 · Zasláno: 11. 6. 2011, 22:51:10 · Upravil/a: pcmanik
slovakCZ:
Ovela jednoduchsie je pouzit switch + default, naviac je to rychlejsie. A este ti tam aj chyba zabezpecenie. |
||
Pavel817 Profil * |
#5 · Zasláno: 11. 6. 2011, 23:37:52
Díky moc. Musím to použít jak to je protože se zabezpečením si stejně sám neporadím. Ale snad to i tak bude fungovat.
|
||
Pavel817 Profil * |
#6 · Zasláno: 12. 6. 2011, 00:00:25
Bohužel se nic nezobrazí. Chyba na 20. řádku :( Zřejmě tam je někde syntaktická chyba ale nemůžu ji najít :(
|
||
slovakCZ Profil |
#7 · Zasláno: 12. 6. 2011, 00:59:27
pcmanik:
Switch pro rozpoznavani aktivni stranky? ano to by bylo asi lepsi jinak osetreni jsem neresil jak jsem zminoval v mem prispevku... Pavel817: chyba bude asi v tom, ze se ti skript snazi nacist stranku uvodni-strana.txt (pokud si zkousel tento kus kodu) ktery u tebe ocividne neexistuje |
||
pcmanik Profil |
#8 · Zasláno: 12. 6. 2011, 08:48:54 · Upravil/a: pcmanik
slovakCZ:
Takto nejak som to myslel $p = $_GET['strana']; switch ($p) { case 'aaa': include 'aaa.php'; break; case 'bbb': include 'bbb.php'; break; case 'ccc': include 'ccc.php'; break; default: include 'ddd.php'; } Samozrejme to premenna p sa moze dat rovno do toho switchu aj s tym osetrenim, ale toto som kopiroval z webu a nechce sa mi to uz menit, lebo tam mam pre to aj iny vyuzitie. |
||
panther Profil |
#9 · Zasláno: 12. 6. 2011, 08:53:38
pcmanik:
„$p = intval($_GET['strana']);“ když něco proženeš intvalem, těžko to nabude některé z hodnot „aaa“, „bbb“ nebo „ccc“, které uvádíš v jednotlivých case .
Navíc, očíslované stránky jsou pro uživatele nečitelné. |
||
pcmanik Profil |
#10 · Zasláno: 12. 6. 2011, 08:58:32 · Upravil/a: pcmanik
panther:
Ja viem :D Moja chyba, ospravedlnujem sa. Aj tak to v mojom kode nemam, len som teraz stale rozpytlovany, som to nedomyslel, takze poprosim zmazat, tieto posledne 2 prispevky. A vlastne nakolko Pavel817 vo svojom priklade pouziva na oznacenie stranky cisla, tak to az take zbytocne nieje :D Ale vlastne je, nakolko ak by tam dal niekto nieco ine, tak to stale spravy default. |
||
Pavel817 Profil * |
#11 · Zasláno: 12. 6. 2011, 08:58:43
Díky všem za snahui ale protože PHP není moje parketa, nedám to dohromady aby to fungovalo. Musím to hold nechat jak to bylo. Přesto dík.
|
||
slovakCZ Profil |
#12 · Zasláno: 12. 6. 2011, 13:11:49
pcmanik:
ten tvuj priklad mi prijde docela nesmyslny.. kdyz pridas novou stranku do menu tak musis udelat nasledujici: 1. - vytvorit nova-stranka.php na serveru 2. - v html sablone <li><a href="index.php?strana=nova-stranka">Nova stranka</a></li> 3. - v php kodu pridat novy case pro 'nova-stranka' ovsem u mnou zminovaneho prikladu odpada bod 3. K tomu, aby se pridala nova stranka menu je potreba jen editor (clovek, ktery vytvori fyzicky soubor s obsahem strnaky na serveru) a koder (ktery prida polozku v menu).. odpada tedy potreba programatora => usetreni casu => usetreni penez. I kdyz to je mozna o neco pomalejsi, jsem ochoten to za techto vyhod obetovat. |
||
YoSarin Profil |
#13 · Zasláno: 12. 6. 2011, 13:34:35
slovakCZ:
Jenže jednak je ten tvůj kód hůře čitelný (alespoň pro mne), vyžaduje další ošetření navíc (což pcmanikuv kód nepotřebuje) a ještě ke všemu obsahuje chybu. :) Rozhodně bych neoznačoval pcmanikův kód za nesmyslný. K té chybě (která se vyskytuje přímo v tom tvém příkladu): <a href="index.php?strana">Uvodni strana</a> if(isset($_GET['strana'])){ // no, tahle podmínka je splněná - $_GET['strana'] je nastaveno a má hodnotu '' $page = $_GET['strana']; }else{ // pokud v url neni parametr strana, tak se nacte homepage $page = 'uvodni-strana'; } // chyba - pokoušíš se includovat '.txt' (ok, takový soubor na serveru klidně mít můžeš o tom žádná, ale nemyslím si že to je úmyslné) include $page.'.txt'; |
||
Pavel817 Profil * |
#14 · Zasláno: 12. 6. 2011, 19:43:21
Tak teď koukám, že původně jsem potřeboval poradit a nakonec je z toho taková diskuse která ale jde bohužel mimo mé chápání :( Z mého pohledu by úplně stačilo kdyby fungoval tento kód :
<div id="info-box"> <div id="obal-menu-obsah"> <div id="menu-obsah"> <a id="menu1"<?php if($volba==1){echo ' class="altivni_polozka"'; ?> href="index.php?volba=1" target="_self" title="Týdenní menu"><span>týdenní menu</span></a> <a id="menu2"<?php if($volba==2){echo ' class="altivni_polozka"'; ?> href="index.php?volba=2" target="_self" title="Novinky"><span>novinky</span></a> <a id="menu3"<?php if($volba==3){echo ' class="altivni_polozka"'; ?> href="index.php?volba=3" target="_self" title="Akce"><span>akce</span></a> </div><!-- menu-obsah --> </div><!-- obal-menu-obsah --> <div id="silver-box"> <?php if ($volba=="1"): include("include/denni-menu.txt"); endif; if ($volba=="2"): include("include/novinky.txt"); endif; if ($volba=="3"): include("include/akce.txt"); endif; ?> </div><!-- silver-box --> </div><!-- info-box --> Snažil jsem se to metodou pokus - omyl uvést do provozu ale nepodařilo se mi to. Stačilo by mi to alespoň pro jednu položku menu. To ostatní bych už asi zvládnul. Pokud by se někomu chtělo, předem moc díky. |
||
YoSarin Profil |
#15 · Zasláno: 12. 6. 2011, 20:23:44
Pavel817:
To co píšeš, by mělo fungovat. Upravil jsi příslušným způsobem i css? .altivni_polozka { /* hele, překlep - altivni vs aktivni :) */ color: #FF8822; text-decoration: none; /* css dle vlastních nároků/požadavků, ... */ } |
||
panther Profil |
#16 · Zasláno: 12. 6. 2011, 21:06:03
YoSarin:
„To co píšeš, by mělo fungovat.“ mohlo a nemuselo, aneb $volba vs. $_GET['volba'] . I kdyby to fungovalo, je lépe volit druhý - a správný - zápis.
|
||
YoSarin Profil |
#17 · Zasláno: 12. 6. 2011, 21:16:58
panther:
Aha, já předpokládal že někde na začátku kódu bude něco na způsob $volba = (int) (empty($_GET['volba']) ? 1 : $_GET['volba']); což tam samosebou být nemusí, pravda... |
||
Pavel817 Profil * |
#18 · Zasláno: 14. 6. 2011, 08:15:07
Hezky jste to tu rozebrali ale bohužel mi to nepomohlo. Stejně nevím co si z toho mám vlastně vybrat. To co jsem zkusil (jak jsem psal) nefunguje i když tu někdo psal, že by to fungovat mělo.
|
||
pavuk Profil |
#19 · Zasláno: 14. 6. 2011, 08:27:41 · Upravil/a: pavuk
Pavel817:
„Hezky jste to tu rozebrali ale bohužel mi to nepomohlo.“ Teď je otázka jestli to myslíš k původnímu problému (zvýraznění aktivní položky) nebo k tomu co vyšel z diskuze (vkládání obsahu pomocí [get]). Příklad kterej psal slovakCZ ve [#2] normálně funguje, musíš ale ve stylech vytvořit pro "aktivní položku" i odpovídající styl. |
||
YoSarin Profil |
#20 · Zasláno: 14. 6. 2011, 10:27:46
Pavel817:
A nemůžeš nám dát nějakou živou ukázku a někam nahrát kompletní kód? |
||
Pavel817 Profil * |
#21 · Zasláno: 14. 6. 2011, 23:20:39
pavuk:
Už ani sám nevím co myslím ;-/ Ale určitě původní požadavek zvýraznění aktivní položky. Příklad je od samého počátku tady. Teď jsem tam dal původní verzi. Ta s upraveným kódem nefungovala. Samozřejmě jsem měl "aktivní položku" nadefinovanou (a odzkoušenou na statickém příkladu) ve stylech. Tady je část s nadefinovaným menu které bych chtěl aby se zvýraznilo aktivní. <div id="info-box"> <div id="obal-menu-obsah"> <div id="menu-obsah"> <a id="menu1" href="kontakty.php?volba=1" target="_self" title="Týdenní menu"><span>týdenní menu</span></a> <a id="menu2" href="kontakty.php?volba=2" target="_self" title="Novinky"><span>novinky</span></a> <a id="menu3" href="kontakty.php?volba=3" target="_self" title="Akce"><span>akce</span></a> </div><!-- menu-obsah --> </div><!-- obal-menu-obsah --> <div id="silver-box"> <?php if ($volba=="1"): include("include/denni-menu.txt"); endif; if ($volba=="2"): include("include/novinky.txt"); endif; if ($volba=="3"): include("include/akce.txt"); endif; ?> </div><!-- silver-box --> </div><!-- info-box --> Snad to takto bude stačit. |
||
YoSarin Profil |
#22 · Zasláno: 14. 6. 2011, 23:28:57
Pavel817:
Aha, živé ukázky jsem si nevšiml, pardon... Můžeš tam vložit tu verzi, co "stejně nefungovala" prosím? „Samozřejmě jsem měl "aktivní položku" nadefinovanou (a odzkoušenou na statickém příkladu) ve stylech“ A měl jsi ji nastavenou správně? V tom kódu co vkládal slovakCZ a který jsi ty pak opakoval je totiž překlep "aktivni_polozka" vs "altivni_polozka". |
||
Pavel817 Profil * |
#23 · Zasláno: 14. 6. 2011, 23:59:23
Je to tam. Aktivni polozku jsem mel nadefinovanou jinak (class="selected"). Tam urcite chyba neni.
|
||
YoSarin Profil |
#24 · Zasláno: 15. 6. 2011, 00:01:33
Pavel817:
Parse error: syntax error, unexpected $end in /DISK2/WWW/pension-podkova.cz/www/2011/include/info-box-test.txt on line 22 |
||
YoSarin Profil |
#25 · Zasláno: 15. 6. 2011, 00:06:27
Pavel817:
Mimochodem - *.txt není nejvhodnější přípona pro php soubory - když vypadne takováhle hláška, tak si každý může bez problému přečíst tenhle skript: http://www.pension-podkova.cz/2011/include/info-box-test.txt |
||
Pavel817 Profil * |
#26 · Zasláno: 15. 6. 2011, 00:08:10
Určitě máš pravdu ale tohle bych teď asi neřešil. A ještě ta statická ukázka.
|
||
Pavel817 Profil * |
#27 · Zasláno: 15. 6. 2011, 00:09:54
YoSarin:
Ale to jsem přece psal, že to nefunguje. Akorát nevím co s tím :( Zkoušel jsem hledat chybu ale .... :( |
||
YoSarin Profil |
#28 · Zasláno: 15. 6. 2011, 00:12:41
Ahá! U těch ifů chybí uzavírací závorka :)
<a id="menu1"<?php if($volba==1){echo ' class="altivni_polozka"';} ?> href="index.php?volba=1" target="_self" title="Týdenní menu"><span>týdenní menu</span></a> |
||
YoSarin Profil |
#29 · Zasláno: 15. 6. 2011, 00:13:35 · Upravil/a: YoSarin
Pavel817:
Kdybys místo toho "to nefunguje" napsal že to píše tuhle chybovou hlášku, tak jsme to nemuseli řešit dva dny... (nebo kdybychom nepřehlíželi ten odkaz na ukázku, že) |
||
Pavel817 Profil * |
#30 · Zasláno: 15. 6. 2011, 00:36:20
Psal jsem "že to nefunguje" ale ta nefunkční ukázka tam pořád byla. Vyzkouším opravenou verzi. Díky moc.
|
||
Téma pokračuje na další straně.
|
0