[PHP] Oddelenie funkcnosti stranky od designu - sablony?

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Blko 26. 5. 2005 10:28

Mam na mysli ako najlepsie/najjednoduchsie docielit moznost zmenit design webstranky bez zmeny (alebo s minimalnou zmenou) PHP kodu. Snad chapete co myslim!
Nieco ako sablony alebo nieco take. Napiste svoje skusenosti a praktiky :D
Blko
Junior
Uživatelský avatar

Odeslat příspěvekod Howard 26. 5. 2005 10:46

Ja oddeluji php od stranek, sablony stranek obsahuji veci ve slozenych zavorkach a mam udelanou funkci v php dokaze nahradit tyto veci podle asociativniho pole.

Takze v php skriptu postupne naplnuju $page["neco"] = ....
a na konci zavolam

echo dopln_sablonu("stranka.tpl.php", $page);
Have you tried to turn it off and on again?
Windows je ... nikoliv Windows jsou (Windows is ...)
Howard
VIP uživatel
Uživatelský avatar

Odeslat příspěvekod cache 26. 5. 2005 11:17

no najjednoduchsia moznost je pouzit sablonu ako samostatne php, ktore bude vlastne html, len v urcitych miestach budes mat napr:
Kód: Vybrat vše
<? echo $content; ?>
a potom len v skripte vykonstruujes content do $content a na konci das
Kód: Vybrat vše
require("template.php");
a mas to - najjednoduchsie sablonovanie.

Ak by ti slo o nieco sofistikovanejsie a profesionalnejsie, nauc sa cosi o XML a XSLT transformaciach a mozes pouzit DOMXML pripadne sablotron (v php4, php5 ma novsiu generaciu pomenovanu len DOM ak sa dobre pamatam).


este dodam (narychlo napisany) priklad takej sablony, nech si predstavis co som mal na mysli:
Kód: Vybrat vše
<html>
<body>
<center>
<img src="logo.jpg">
<hr>
<? echo $menu; ?>
<hr>
<? echo $content; ?>
<hr>
(c)2005 all rights reserved
</body>
</html>
Můj bože, to je budoucnost! Mí rodiče, přátelé, má dívka.. Už je nikdy neuvidím.. JUPÍÍÍÍÍÍ! (Fry s1e1)
cache
Pokročilý
Uživatelský avatar

Odeslat příspěvekod jech 26. 5. 2005 11:26

No podle mě je design spíš otázkou CSS než HTML. Takže pokud Ti jde pouze o vzhled, tak bych to řešil přes styly. Pokud třeba koukneš na mojí stránku, tak dole je přepínání 2 CSS stylů, který úplně změní layout. Nefunguje to ale v IE.
jech
Pokročilý
Uživatelský avatar

Odeslat příspěvekod cache 26. 5. 2005 11:40

jech píše:No podle mě je design spíš otázkou CSS než HTML. Takže pokud Ti jde pouze o vzhled, tak bych to řešil přes styly. Pokud třeba koukneš na mojí stránku, tak dole je přepínání 2 CSS stylů, který úplně změní layout. Nefunguje to ale v IE. /quote]

Ty asi vela toho web programovania za sebou nemas, ze? Zmena stylov nieje vsetko. Tu slo o celkove oddelenie "vykonoveho"php kodu a html. Ono vies, ak mas kusy html kodu po dvadsiatich phpckach, tak to vyzera skutocne profesionalne :)
Můj bože, to je budoucnost! Mí rodiče, přátelé, má dívka.. Už je nikdy neuvidím.. JUPÍÍÍÍÍÍ! (Fry s1e1)
cache
Pokročilý
Uživatelský avatar

Odeslat příspěvekod jech 26. 5. 2005 23:47

Určitě nejsem žádnej zkušenej programátor. Jenom si myslím, že podle zásad tvorby HTML by se měl oddělovat vzhled od obsahu a to tak, že v (X)HTML je obsah a v CSS vzhled. Samozřejmě tím žádná velká kouzla dělat nejdou, ale většinou by to mělo stačit.
Co se týká skládání stránek z kousků, nevím, proč by na tom mělo být něco špatnýho. Já osobně mam každou stránku ze 4 kusů - hlavička, tělo (menu a další věci okolo), vlastní text a patka. Zdá se mi to poměrně praktický a přehledný.
A ještě jednou opakuju, že opravdu žádnej odborník nejsem a rád se necham poučit.
jech
Pokročilý
Uživatelský avatar

Odeslat příspěvekod cache 27. 5. 2005 01:22

HTML je predsa uz forma.. priklad obsahu je tu:

Kód: Vybrat vše
<?xml version="1.0"?>
<ARTICLE IDARTICLE="18" IDCATEGORY="1" CATEGORY="test kategoria" ADDTIME="15.03.2005" AUTHOR="cache">
  <ARTTITLE>pokusny clanok</ARTTITLE>
  <TEXT><![CDATA[blah blah, text clanku]]></TEXT>
</ARTICLE>


a toto mozes cez transformacie nacpat do hociakeho html pre web, wml pre wap ci dokonca do pdf exportu, alebo rtf exportu.. v tom je oddelenie textu od formy.
Můj bože, to je budoucnost! Mí rodiče, přátelé, má dívka.. Už je nikdy neuvidím.. JUPÍÍÍÍÍÍ! (Fry s1e1)
cache
Pokročilý
Uživatelský avatar

Odeslat příspěvekod salko 27. 5. 2005 01:45

smarty.php.net je vynikajuca vec. Vrelo odporucam.
salko
Mírně pokročilý

Odeslat příspěvekod Blko 27. 5. 2005 08:26

jech píše:Jenom si myslím, že podle zásad tvorby HTML by se měl oddělovat vzhled od obsahu a to tak, že v (X)HTML je obsah a v CSS vzhled. Samozřejmě tím žádná velká kouzla dělat nejdou, ale většinou by to mělo stačit. /quote]


Aj ja sa snazim robit stranky tak, ze HTML obsahuje iba informacie a design je na CSSku. Ale nemozem suhlasit, ze s CSS sa nedaju robit velke kuzla. Pozri si http://www.csszengarden.com/.
Ak tato tematika zaujima vrelo odporucam Pixyho stranky (aj knihu o CSS) http://www.pixy.cz/
Blko
Junior
Uživatelský avatar

Odeslat příspěvekod Lukáš Mach 29. 5. 2005 23:17

Blko píše:Mam na mysli ako najlepsie/najjednoduchsie docielit moznost zmenit design webstranky bez zmeny (alebo s minimalnou zmenou) PHP kodu. Snad chapete co myslim!
Nieco ako sablony alebo nieco take. Napiste svoje skusenosti a praktiky :D


Ja mam na vsech svych webech presne stejnou strukturu XHTML kodu. Je pomerne detailne strukturovany, s nekolika "zbytecnymi" prvky (dejme tomu <span id="empty1"></span>) pro slozitejsi ostylovani - zatim jsem tu strukturu nemusel nijak menit a vsechny designy do toho sly zpracovat (a to je navrhoval nekdo jiny nez ja). Takze IMHO na to staci pouhe CSS a muzes predelat stranku do jakehokoliv designu - samozrejme, pokud mas dostatecne kvalitni HTML kod.
I still trust Half-blood Prince.
Lukáš Mach
Junior
Uživatelský avatar

Odeslat příspěvekod Quiark 30. 5. 2005 20:24

Smarty (viz výše) je opravdu dobrý nástroj, komplet oddělí PHP kód od HTML rozvržení stránky.

Myslím, že autor měl na mysli tohle, o CSS tady vůbec nejde :)
Ha!
Quiark
Junior
Uživatelský avatar

Odeslat příspěvekod Lukáš Mach 30. 5. 2005 20:40

To jo, ja jen, ze nekdy staci proste jen semanticke XHTML, ktere se pak nijak nemus menit, tim spis kdyz je mozne pouzit pseudoselektory :before a :after v CSS (a v MSIE je emulovat).
I still trust Half-blood Prince.
Lukáš Mach
Junior
Uživatelský avatar

Odeslat příspěvekod Quiark 30. 5. 2005 20:46

[quote="Lukáš Mach"tTo jo, ja jen, ze nekdy staci proste jen semanticke XHTML, ktere se pak nijak nemus menit, tim spis kdyz je mozne pouzit pseudoselektory :before a :after v CSS (a v MSIE je emulovat).[/quote]

Jj, v ideálním případě a v ideálním světě (=bez IE) :)
Ha!
Quiark
Junior
Uživatelský avatar

Odeslat příspěvekod Lukáš Mach 31. 5. 2005 01:36

Quiark: Vzdyt rikam, ze :before a :after se v MSIE da ohackovat... Par radku v CSS navic.
I still trust Half-blood Prince.
Lukáš Mach
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků