« 1 2 »
Autor Zpráva
Pavel817
Profil *
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
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
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
slovakCZ:
Ovela jednoduchsie je pouzit switch + default, naviac je to rychlejsie.
A este ti tam aj chyba zabezpecenie.
Pavel817
Profil *
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 *
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
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
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
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
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 *
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
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
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 *
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
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
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
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 *
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
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
Pavel817:
A nemůžeš nám dát nějakou živou ukázku a někam nahrát kompletní kód?
Pavel817
Profil *
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
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 *
Je to tam. Aktivni polozku jsem mel nadefinovanou jinak (class="selected"). Tam urcite chyba neni.
YoSarin
Profil
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
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 *
Určitě máš pravdu ale tohle bych teď asi neřešil. A ještě ta statická ukázka.
Pavel817
Profil *
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
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
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 *
Psal jsem "že to nefunguje" ale ta nefunkční ukázka tam pořád byla. Vyzkouším opravenou verzi. Díky moc.
« 1 2 »

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:

0