Nette + modulární systém + témata/themes

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

Potřeboval bych pomoc s takovým malým brainstormingem, tak snad si někdo najde chvilku :D

Pokouším se vytvořit otevřené a modulární, řekněme CMSko. Celá appka je rozdělena do samostatných modulu (správa uživatelů, správa systému, správa článků, atd.)

Začalo to tak že v adminu byla striktně dáno jedno téma které měly všechny moduly, jenže rád bych ty moduly odprostil od nutnosti vyžadovat konrétní téma, takže jsem se rozhodl udělat jakéhosi správce témat který by měl vše zastřešovat. Postupnýma úvahama a pokusy jsem dospěl k následující struktůře:

app
 |----modules
         |----users-module
         |----system-module
         |----blog-module
 |----themes
         |----admin-theme
         		|----static-files
         		|----templates
						|----@layout.latte
         |----admin-theme-for-users-module (potomek admin-theme)
         		|----static-files
         		|----templates
						|----XYPresenter.latte
         |----admin-theme-for-sytem-module (potomek admin-theme)
         |----admin-theme-for-blog-module (potomek admin-theme)
		 |----site-bootstrap-theme
         		|----static-files
         		|----templates
						|----@layout.latte

No a co mě zajímá je co si o tomto myslíte?

  • Jednotlivé moduly si můžete představit jako composer balíčky.
  • Moduly nejsou závislé na aktuálně zvoleném tématu
  • Pokud se někdo rozhodne využít „default“ téma tak si jej nahodí composerem
  • Pokud někdo nebude chtít instalovat „blog-module“ tak k němu nepotřebuje ani „admin-theme-for-blog-module“ a tyto dva balíčky vynechá
  • Pokud někdo bude chtít jiné téma, tak si jej vytvoří a k němu pokud chce tak jednotlivé potomky pro jednotlivé moduly

co vy na to? V jednoduchosti jsem chtěl dosáhnout toho aby moduly byly nezávislé na vzhledu, aby si každý mohl vytvořit/zvolit vzhled dle svého gusta.

potapnik
Člen | 127
+
0
-
  • Moduly jako composer balíčky: ano!
  • Nezávislost na aktuálně zvoleném tématu: ano!
  • Default téma: default téma musí být součástí default instalace, bez tématu to bude plain text HTML? Jestli to má být composer balíček nebo ne je asi jedno.
  • Blog-module a admin-theme-for-blog-module: to souvisí s předchozím, default theme by podle mého měl být součástí Blog-module.
  • Téma a podtéma pro moduly: S tím souhlas.

Až bude online alfa verze, klidně trošku přiložím ruku k dílu :)

akadlec
Člen | 1326
+
0
-

@potapnik:
Default téma: default téma musí být součástí default instalace, bez tématu to bude plain text HTML? Jestli to má být composer balíček nebo ne je asi jedno.

No to je právě otázka. Ono admin téma by se dalo přímo implementovat do mudulu/appky aby tam bylo „natvrdo“ ale co s front tématem?
Takže jsem přemýšlel o nějaké závislosti při instalaci, že by se muselo instalovat nějaké téma co bude použito pro front a pro backend.

No zatím to není „učesané“ natolik aby se to dalo hodit ven, takže mám na gitu jen dílčí celky, ale snad to brzo doladím aby to šlo publikovat aspoň jako alfa ;)

potapnik
Člen | 127
+
0
-

Implementovat přímo do modulu – no, podle mě jde přece jenom o CSS/LESS/SASS + extra JS + nějaká grafika. Jinak template bude stále stejná. Takže to „natvrdo“ zní sice jako „zadrátovaně“, ale ve výsledku to je jeden dir assets, kterej má tři podadresáře (scripts/styles/images) :-)

akadlec
Člen | 1326
+
+1
-

No template právě stejná nebude, pokud použiješ nějaký framework tam musíš do ní přidávat vlastní CSSka a html strukturu a takže bys musel přetěžovat. Leda dát do modulu templaty/lattečka univerzální a ty podle potřeby přetěžovat.