Autor Zpráva
Joan
Profil
Stále mi vrtá hlavou jak překopat svoje html stránky s tím, aby se includoval obsah, ovšem v mém případě to možná asi ani nepůjde:

mám titulní stránku hodně odlišnou od ostatních stránek (přebal knihy taky vypadá zcela jinak než pohádky v ní, že) a zdrojový kód hlavního menu je sice úplně stejný na všech stránkách, ale na titulní stránce má vertikální tvar s id="menu" a na ostatních stránkách horizontální tvar s id="drobecky" právě kvůli odlišnému stylování potažmo vzhledu.
Je možné nějak php říct, aby při includování obsahu nějaké podstránky nahradil v šabloně (obsahující menu a paticku) to menu s id="menu" za jinak stylované menu s id="drobecky"?

Jinými slovy, opravdu jediný prvek, který se mi opakuje naprosto na všech stránkách, je pouze patička. Pouze titulní stránka má menu s id="menu" a 27 podstránek má menu s id="drobecky".
Zatím includuji místo obsahu to, co se opakuje, změnit to na vkládání obsahu zde asi nepůjde, že?

Díky za názor!
Citanek
Profil *
jistě že se to dá, nejjednoduší to asi bude přes funkci if
Joan
Profil
Aha, takže je možné do php zakomponovat funkci IF je vkládána stránka "A" includuj menu s id="menu" ELSE includuj menu s id="drobecky"? Snese se uprostřed php scriptu funkce IF s CSS?
Joker
Profil
Joan:
Rozumím tomu dobře, že když vnitřek menu označím jako "{MENU}", tak jsou dva druhy stránek, jeden má něco jako:
<ul id="menu">{MENU}</ul>
a druhý něco jako:
<ul id="drobecky">{MENU}</ul>
...tzn. vnitřek je stejný a liší se jen tím ID?

Napadá mě několik možností řešení:
1. použít IF: if(stranka == "neco") vloz_nejake_menu(); else vloz_jine_menu();
2. Vybrat do šablony jen to co je stejné, tj. ten vnitřek.
3. Pokud jsou stránky dělané ze šablon a jedna (nebo několik) má tu samou strukturu jako ostatní, ale je potřeba ty prvky jinak nastylovat, není nezbytné jim dávat jiné CSS třídy. Stačí dát nějakou třídu na body a pak to vyřešit v CSS.
Příklad: Speciální stránka bude mít třeba <body class="specialnistranka">
a CSS:
ul.menu { /* nějaký styl */ }
.specialnistranka ul.menu { /* jiný styl */ }
Joan
Profil
Joker:
Přesně tak! Na této stránce mám vlevo menu vertikální obrázkové a na všech dalších ostatních je menu horizontální a záložkové (tmavozelené).

ad 1. za to "neco" vložím název_stránky.php?
ad 2. a ad 3. však vnitřek menu stejný je úplně všude jen potřebuji php napovědět, kdy chci vkládat určitým způsobem stylované menu a kdy zase jiným způsobem stylované tj. aby to obrázkové nenačetl do stránek, kde chci záložkové (a naopak)

Ještě prosím důležitý dodatek:
1) je možné od PHP chtít, aby při vkládání obsahu nějaké podstránky "stáhl" s sebou i hlavičku k dané stránce? Protože kvůli mému způsobu kódování/stylování není možné vložit obsah i s hlavičkou jako jeden celek (hlavičku má každá stránka jinou)

2) jak se includuje obsah v případě stránky obsahující podmíněné komentáře v hlavičce? Je možné spojit je s tagem <title> a podle nějakého pravidla vkládat do té které stránky?

Díky moc!
panther
Profil
Joan:
jen potřebuji php napovědět, kdy chci vkládat určitým způsobem stylované menu a kdy zase jiným způsobem stylované
stačí měnit id/class. V CSS budou obě třídy/idčka ostylovaná, použije se příšlušný styl.

není možné vložit obsah i s hlavičkou jako jeden celek (hlavičku má každá stránka jinou)
jde ti o title a metatagy, že? Nejlépe titulky, descriptiony a keywords naházet do polí, jak je tomu ve FAQ.

2) jak se includuje obsah v případě stránky obsahující podmíněné komentáře v hlavičce?
Podmíněné komentáře můžou být přilinkovány i na stránce, kde nejsou změny pro IE třeba, ne? Jinak to lze řešit taky podmínkou
if($stranka == 'neco') echo "<link podmineny-styl.css>";
Joan
Profil
Díky!
- takže to či ono konkrétní ID lze vložit přímo do scriptu php?
- pole nastuduji
- já ale nemám pro podminěné komentáře extra styl, píšu to pro mou větší přehlednost přímo do hlavičky. Navíc myslím nemám ani jednu stránku která by se bez podmíněných komentářů pro IE6-IE8 obešla takže mám podmíněné komentáře prakticky všude. Šlo by nejen titulek, ale rovnou celou hlavičku považovat za jeden z prvků pole?
panther
Profil
Joan:
- takže to či ono konkrétní ID lze vložit přímo do scriptu php?
tak

Navíc myslím nemám ani jednu stránku která by se bez podmíněných komentářů pro IE6-IE8
nekoukal jsem, co tam hackuješ, možná by to šlo zredukovat.

Šlo by nejen titulek, ale rovnou celou hlavičku považovat za jeden z prvků pole?
ano lze, ale je to zbytečné. Proměnlivé budou, předpokládám, jen ty tři prvky (title, kw, desc), ne?
Joan
Profil
K obrázkům s paddingem se chová minimálně IE6 odlišně než Mozilla & spol. a takovéto obrázky mám na každičké stránce takže bez podm. komentářů jsem se bohužel nehnula z místa. Prinejhorším je vyexportuju do samostatného stylu. Navíc na každé stránce používám podm. komentář k odstřižení od IE menších než IE6 protože se tam na moje stránky nedalo koukat a stylovat pro IE5.5 a nižší se mi nechce.

Teď jsem si ale uvědomila, že jsem napsala blbost: chtěla jsem napsat, že bych potřebovala, aby includovaný obsah s sebou "stáhl" nikoliv hlavičku, ale ZÁHLAVÍ které mám úplně oddělené od obsahu čili jedno include obsahu by mi velmi pravděpodobně zamíchalo záhlaví do obsahu což pochopitelně nechci.
(Pozn.: mám na hlavní stránce záhlaví, pod tím obsahovou část, v jejímž paddingu vlevo je menu a vpravo další odkazy a dole patičku. Takže samotné záhlaví nemůžu k obsahu přilepit).

No budu přes víkend laborovat, co všechno mi moje soubory a dosavadní pidiznalosti dovolí :-)
AM_
Profil
Joan:
Především si nastuduj něco o základním principu PHP - jde o to, že se chová jako (textový) preprocesor - textový v závorce, protože může generovat např. i obrázky, a teoreticky i jakákoli jiná data.
Pokud máš na serveru soubor s koncovkou PHP, který někdo otevře v prohlížeči, stane se toto:
- prohlížeč vyšle žádost o tento soubor
- server zjistí, že má koncovku .php, a soubor zpracuje PHPkem - v tuto chvíli je úplně jedno, jestli je v něm krom PHP HTML, CSS, JavaScript nebo klidně i obrázek - vše mimo bloky <?php ?> se odešle na výstup tak, jak to je
- výsledek zpracování PHP (který už žádný PHP kód neobsahuje, už se jedná o data v cílovém formátu - HTML, CSS, obrázek...) je odeslán do prohlížeče.

Když tohle pochopíš, hodně ti to pomůže v tom, co v PHP jde a nejde a jak to přibližně dělat.
Joan
Profil
Já rozumím tomu, že co je mimo značky <?php a ?> tak na to server nesahá a že ve výstupu zpět do prohlížeče žádný php script vidět není. Nikde jsem se ale nedočetla, jestli může být mezi značkami <?php a ?> taky něco z kaskádových stylů, ukázkové scripty vzhled vůbec neřešily. Proto jsem se zeptala. Když to jde, tím lépe :-)
Hezký víkend
Joker
Profil
Joan:
Nikde jsem se ale nedočetla, jestli může být mezi značkami <?php a ?> taky něco z kaskádových stylů
PHP vyplivne výsledný text (resp. "data") na to místo, kde se ve stránce nachází.
Čili PHP může generovat HTML, styly, skripty, XML, dokonce třeba, obrázky, zvuky... prostě kdeco.

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: