Jak napsat znovupoužitelné forum
- lysua
- Člen | 6
Zdravím,
sem v Nette pomerně začátečník a chtěl bych si napsat diskuzní fórum
podobné například tomuto. Možná by mohlo být o něco jednodušší.
Nalezl jsem v doplňcích ForumControl, ale to je podle mě spíš jako diskuze
pod články, ale ne jako plnohodnotné forum s tématy. Důležité pro mě
je, abych ho mohl použít třeba i na dalších stránkach.
Napadlo mě napsat to jako další modul aplikace. Napsat to pouze jako presenter mi nepřijde správné řešení. Uvítám každou radu a nakopnutí správným směrem.
- Melmen
- Člen | 132
Něco podobného jsem dělal nedávno. Není to kompletně dodělaný, ale používat se to dá :) Mám to celé v jednom modulu. Forum i kategorie se vytváří na základě jazyka – stejný princip jako toto fórum. Demo mám tady http://www.doutdes.cz/forum/ , anglickou (testovací) část pak tady http://www.doutdes.cz/en/forum/
- Etch
- Člen | 403
Také jsme nedávno dělali fórum, které je podobné tomuto. Též jsme šli cestou modulu a hojně tam využíváme komponenty. Navíc jsme chtěli, aby to šlo nějak základně konfigurovat přes config.neon, takže to pak vypadá třeba následujícím způsobem:
divorum:
factories:
# Views
categories:
class: Divorum\Categories
setup:
- setTemplateFile('blabla.latte')
- addToLeftPanel(@divorum.lastPostsBox)
- addToLeftPanel(@divorum.onlineUsersBox)
# Boxes
lastPostsBox:
class: \Divorum\Boxes\LastPostsBox
onlineUsersBox:
class: \Divorum\Boxes\OnlineUsersBox
Factory „categories“ vrací komponentu, která vykresluje kategorie a
fóra k nim náležející. Pokud někdo potřebuje nějaké velké změny, tak
napíše a vymění celou komponentu. Pokud chce například někdo jenom
pozměnit vykreslování, tak může nastavit jinou šablonu, pomocí metody
setTemplateFile
. V tomto případě šablona změněna
z výchozí na šablonu blabla.latte
. Metody
addToLeftPanel
, addToRightPanel
a další zase
zařizují ukotvení nějakých dalších komponent do různých panelů.