Skinnovateľné šablóny?…

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Peter9
Člen | 69
+
0
-

Ako by ste mi poradili postaviť skinning?
mám štruktúru:

public/
     styles/
           SuperStyle/
                     templates/
                             front-end/
		              back-end/
		              .htacess (Deny from all)
                     style/
                     images/
		     javascript/

(Teda dosť podobne ako u phpBB) – iba rozmýšľam, či design back-endu by sa mal meniť, alebo by mal „ostať na tvrdo“ (väčšinou je na tvrdo daný – to neplatí u WP [wordpress])…A čo po prípade nejaké extensiony?…dosť o láme hlavu…

jtousek
Člen | 951
+
0
-

Skiny by měly být záležitost CSS a obrázků, nikoli šablon (imho).

Peter9
Člen | 69
+
0
-

j…práve o tom rozmýšľam – čo všetko hej, čo všetko nie…organizácia, štruktúra…

mm-marek
Člen | 61
+
0
-

jtousek napsal(a):

Skiny by měly být záležitost CSS a obrázků, nikoli šablon (imho).

pokud jsou skiny podobné, proč ne, ale u hodně rozdílných skinů to pak bude (tuším) problém. Osobně bych to řešil nějakou základní šablonou a případným přepisování jejích částí

Peter9
Člen | 69
+
0
-

Neviem, či by bolo prepisovanie základného templatu rozumné (hlavne, ak by som sa chcel vrátiť˛ku základnému designu)…

Matúš Matula
Člen | 257
+
0
-

Nemyslim, ze mm-marek myslel prepisovanie sablony natvrdo :) ale skor v podedenej sablone prepisat nejaky block

mm-marek
Člen | 61
+
0
-

yep, tak jsem to myslel :) docela dobře by se tak mohlo udržovat větší množství skinů, protože mít to všechno samostatně a separátně jako třeba phpbb, wordpress..... to je při editacích dost na palici

asi bych se rozhodoval podle konkrétního řešení – počet šablon, jejich podobnost (nejen grafická, ale i zobrazené komponenty)

Peter9
Člen | 69
+
0
-

No tak áno, tak to asi ja budem riešiť ;) …Nejakú super konvenciu súborov:

templates/
         FrontEnd/
                  @layout.latte
                  Homepage.default.latte // hlavná stránka front-endu
	            User.edit.latte // všetko čo nemá action = default, bude v blokoch.
	   BackEnd/
		    @layout.latte
                  Homepage.default.latte // hlavná stránka back-endu
	            User.edit.latte  // všetko čo nemá action = default, bude v blokoch.
na1k
Člen | 288
+
0
-

Něco podobného jsem teď nedávno řešil, ale nejsem si jistý, že jsem vymyslel opravdu dobré řešení.
Cílem bylo mít administrační část skinovatelnou.

Vyřešil jsem to třídou GUI, která předformátovává struktury (odkazy z různých modulů skládá do jednoho pole – menu, atd) a obecně vrací univerzální data.

V BasePresenteru jsem si pak překryl metody pro dohledání šablon a layoutů, aby se hledaly ve složce s odpovídajícím skinem.

No a šablony pak komunikují pouze s GUI, získávají data a formátují libovolně, přičemž jediný společný blok je content.

Mnohem víc se mi líbí myšlenka s překrýváním pouze bloků, ale nějak nedohlédnu, jestli z toho neplynou nějaká zásadní omezení. Používáte to někdo? Nebyl by třeba nějaký veřejný projekt? Docela by mě to zajímalo :)

Peter9
Člen | 69
+
0
-

Adminstrácia sa skinuje nezávisle od designu front-endu?

na1k
Člen | 288
+
0
-

Peter9, ano, v mém případě na to byl požadavek.

Jde o to, že backend má být univerzální a budou s ním pracovat vpodstatě dvě skupiny lidí – odborní, kteří nepotřebují grafické blbinky a jde jim o efektivitu, a pak BFU, kteří naopak chtějí kulatá stínovaná tlačítka, všude mraky grafiky, stínů a přechodů.

Myslím si o tom sice své, ale zadání je jasné a mně se zatím nepodařilo vytvořit čisté řešení. Samozřejmě potřebuji jít víc do detailů než jen změnit CSS. Proto uvítám jakékoliv nápady :)

Peter9
Člen | 69
+
0
-

A tak rozdeliť rendering? Pre BFU a non-BFU ? :D
(Nemyslím si, že ďalšie delenie skinu back-endu by bolo rozumné – šablóny).

Teoreticky by si mohol vytvoriť 2-krát bloky content (contentBFU/contentEasy) (a už by len vyberalo, ktorý vyberie)

Ale pri zložitejších designoch by to vyzeralo dosť čudesné…

Editoval Peter9 (14. 2. 2011 16:48)

Chbox
Člen | 125
+
0
-

si podle typu usera nastavte setLayout(‚bfu‘) a je to vyřešné, když někdo je ochoten platit za skinovatelnost :-)

Editoval Chbox (14. 2. 2011 17:22)

Peter9
Člen | 69
+
0
-

a používaj vendor prefix súborov (bfu.homepage.default) :) xD xD

na1k
Člen | 288
+
0
-

Vy se smějete, ale ten prefix už tam fakt mám :-D

Jde mi ale o to, jestli raději použít jen překrývání bloků anebo rovnou měnit layouty. Je něco z toho better practice?

A je teda fakt, že víc než dva designy nejspíš nebudou potřeba, ale víte jak je to z rozšiřitelnstí…

Chbox
Člen | 125
+
0
-

…to asi záleží přímo na tom layoutu, jestli se výrazně liší tak nový layout, jinak využít dědičnosti.