Pomoc při vývoji (dalšího) CMS

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

Ahoj,

tak jako většinu lidí, tak i mě nebaví psát věci pořád dokola a při každém webu kopírovat jednu část z jednoho projektu do dalšího. Rozhodl jsem se, že si trochu pomůžu a vytvořím jednoduché, ale co nejvíc intuitivní CMS, na kterém bych se zase po nějaké době ponořil do Nette a nasbíral nějaké ty „best practice“. Hledal jsem, zkoušel jsem různé systémy uvedené zde na fóru a buď mi nevyhovovaly a nebo byly nefunkční na dané adrese.

Včera jsem se dopídil, jak vytvářet komponenty bez továrniček. Vše funguje, ale nevím jestli jsem zvolil nejlepší způsob.

Jednoduchá představa mého CMS:

  • vytváření stránek (ve stromové struktuře), na které se nasadí různé komponenty (budu používat slovo „komponenty“ v rámci CMS a „Control“ v rámci Nette, aby bylo jasné o čem píšu).
  • budou existovat komponenty např.: obsah (podpora verzovaného obsahu), anketa, novinky, … každá stránka může obsahovat jiné a libovolný počet stejných komponent.

A teď jsem celkem narazil. Tyto komponenty mám řešené jako Control(y), nevím jestli to je správně, protože mám NewsControl, která vypisuje novinky. Otázkou je, jak řešit odkazy na detail novinek, aby adresa byla /slug-stranky/titulek-novinky-id

Není to (asi) správné, ale nevím jak jinak to řešit, momentálně odkazuju v šabloně na signál detail!, kterému předám slug pro novinku, adresa vypadá:

../novinky?news-1-slug=nejaka-novinka&do=news-1-detail

a ten pak řekne Controlu, že má vykreslit jen detail, namísto výpisu všech novinek. Vše funguje, detail se zobrazí, ale vyrendrují se i ostatní Controly, moc nevím jak to řešit.

Další problém je adresa, pokud bych měl více Control, které budou moci tvořit takové „detailové stránky“, nerad bych pro každou z nich vytvářel další routu.

Našel by se tu někdo, kdo by mě nasměroval nebo poradil jak by šlo něco takového udělat? Chtěl bych znát více pohledů na věc, nechtěl bych z toho mít „bastl“ hned ze začátku :-) Předem děkuju a pardon za tak dlouhý text.


Detailové adresy bych chtěl mít

../novinky/nejaky-slug-pro-novinku-7 (pripadne + to id, to už je jedno)

ale aby to univerzálně fungovalo i pro jiné komponenty, třeba

../vypis/nejaka-polozka-5

atd…

Editoval joe (23. 9. 2012 22:53)

joe
Člen | 313
+
0
-

Poradil by mi prosím někdo? Nechci řešení, zajímal by mě takový lehký pohled někoho dalšího… a nechci se pouštět do něčeho, co když pak někomu ukážu, tak mi řekne že jsem to mohl udělat daleko líp :) někdo určitě řešil něco podobného…

pepakriz
Člen | 246
+
0
-

Nechceš se raději přidat do nějakého rozjetého projektu? Za sebe můžu nabídnout spolupráci na Venne:CMS, které bych rád opět po delší době otevřel komunitě. Myslím, že tvé požadavky s velkou rezervou splní ;)

joe
Člen | 313
+
0
-

pepakriz
Ahoj, pardon za takovou prodlevu mezi odpovědí, úplně jsem zapomněl na tuhle diskusi :) Díky za možnost spolupráce, ale nevím jestli bych do toho šel a byl ten pravý. Věnuju se poslední dobou spíš vývoji na frontendu, než PHP programování.
Venne CMS bylo jedno z těch, na které jsem zkoumal. Myslím, že se mi ani nepodařilo ho správně nainstalovat :) a dál jsem to moc neřešil a neměl moc šancí ho vyzkoušet, ale co jsem viděl z video přednášek, tak mi přišlo celkem složité a nevím jak by se v tom uživatelé zorientovali. A já bych nejradši udělal takový systém, se kterým by lidé neměli problém… (nehodnotím kód, ale to jak to vypadá a celkový návrh). Kdyby jsi chtěl, mohli bysme to třeba i probrat, atd…

mlok
Člen | 13
+
0
-

Ono Venne mělo pod Windows-y docela potíž, ale už je opraveno, tak můžete zkusit znovu.

joe
Člen | 313
+
0
-

Tak po delší době jsem se zase dostal do stádia, že bych si ten vlastní systém udělal. Na Venne jsem koukal, ale nepodařilo se mi rozjet ani napodruhé nebo napotřetí (nebo pokolikáté to zkouším). Ale díval jsem se na kód, je to pro mě docela španělská vesnice :) a složité na pochopení (ne že bych to nepochopil, kdybych si to neurčitou dobu procházel jak to celé funguje). Chtěl jsem se jen podívat na Backend a Frontend, popravdě mě ani nezajímá, jak CMS bude naprogramované – a ani koncové uživatele ne, pokud to bude jednoduché, bezpečné a rychlé. Nejsem zastáncem používání všemožných velkých knihoven, když stačí malé (Doctrine VS dibi, apod.).

Jediné co chci, je mít možnost přidávat na jednotlivé vytvořené stránky moduly (obsah, anketu, novinky, …) a řeším jak udělat ty moduly tak, že i ony mohou mít vlastní stránku (např. detail novinky). Jak udělat routy apod.

Napadlo mě třeba jednoduše nechat všechno za adresou projet filtrovací funkcí, která rozhodne zda se jedná o stránku nebo o stránu nějaké komponenty, nevím jestli to je ale dobrý nápad (?) …

pepakriz
Člen | 246
+
0
-

joe napsal(a):

Na Venne jsem koukal, ale nepodařilo se mi rozjet ani napodruhé nebo napotřetí (nebo pokolikáté to zkouším).

Tvá verze PHP nesplňuje požadavky na provoz. Zkus provést upgrade. Jakékoliv problémy a chyby budu rád řešit, ale potřebuji o nich vědět – stačí nahlásit na issue tracker (https://github.com/…odule/issues).

Jestli plánuješ návštěvu poslední soboty teď v Praze, můžu ti nějaké základy ve Venne ukázat osobně. Není to až tak odlišné od Nette. Brzy bude i návod na jednoduchý modul přímo v dokumentaci projektu.