Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Wat verwachten we van een goed cms

Pagina: 1
Acties:
  • 287 views sinds 30-01-2008
  • Reageer

  • bibawa
  • Registratie: Augustus 2005
  • Laatst online: 13-04-2008
Ik speel al vrij lang met het idee om een universeel cms te maken, maar meestal blijft het bij plannen en veel denken.

Ik erger me telkens mateloos aan het feit wanneer ik een website moet maken en weer eens dezelfde dingen moet doen voor een admin paneel in elkaar te draaien.

Lange tijd geleden heb ik enige tijd met phpNuke gewerkt, het systeem was misschien idioot en niet hackers proof, het concept erachter vond ik eigenlijk prachtig !.

Je had een "main cms" (als ik het zo mag noemen) waarop je extra modules kon importeren.
Enkele modules zouden dan bv kunnen zijn:

* Beheer van nieuwsberichten
* Aanmaken van polls
* Plaatsen van foto's.

Omdat de websites die je maakt niet te vergelijken zijn met PHPNuke (welke een standaard indeling gebruiken) stoot je bij het importeren van deze modules op het feit dat je telkens met een andere database indeling gaat zitten en je de ingevoerde waarden steeds naar andere velden / tabellen zou moeten gaan sturen.

Hiervoor had ik dan de oplossing gevonden om bij het importeren eerst een "database coupler" te maken waarin dan in eerste instantie een database werd geselecteerd, vervolgens een tabel en dan zou men de benodigde velden aan de juiste database velden moeten kopellen.

Op zich is dit systeem mooi als het zou werken maar zeer complex.

Omdat ik me niet kan voorstellen dat er hier geen mensen rondlopen die met hetzelfde idee spelen en bezig zijn met de ontwikkeling van een cms, zou ik eens graag willen horen hoe jullie het aanpakken, en of jullie cms universeel is voor verschillende websites?


MVG

  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 08:58

wizzkizz

smile...tomorrow will be worse

Misschien kun je eens kijken op http://www.opensourcecms.com/, daar staan erg veel CMS systemen. Veel systemen zijn modulair opgebouwd en maken gebruik van templates, zodat je de layout van de site helemaal zelf kunt bepalen. Je bent dan én flexibel én universeel toepasbaar.
Ze zijn allemaal open source, dus je kunt de broncode zo inkijken.

Als je verschillende sites op 1 centraal punt wilt beheren, lijkt het me makkelijker om voor elke site wel een aparte database aan te houden en een kleine voor het systeem zelf. Bij een hack van de ene db is niet iedereen de gegevens kwijt, veel minder risico op ongewenst data van andere sites te zien krijgen en je kunt elke site ook makkelijk verhuizen naar ander provider.

Het selecteren van de database doe je dan bij de login, dat je bijvoorbeeld in de vorm user@domain.tld doet, waarbij domain.tld dan zorgt voor een connectie met de db van die site. Super-admins zou je on-the-fly kunnen laten wisselen zonder opnieuw in te hoeven loggen.

Deze uitbreiding toevoegen aan een bestaand CMS lijkt me niet zo heel moeilijk en een veel betere optie dan zelf een CMS schrijven. Dat kost namelijk heeel erg veel tijd en is praktisch alleen te rechtvaardigen als leermoment.

[ Voor 71% gewijzigd door wizzkizz op 05-10-2007 08:42 ]

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Ik heb hetzelfde punt waar jij nu op zit een aantal jaar geleden ook gehad en ben nu inmiddels op het niveau aangeland waarbij ik met '1 druk op de knop' een sorta-kinda-standaard CMS raamwerk uit m'n code generator laat rollen (Think Rails Scaffolding, maar dan voor PHP en met gelijk CRUD schermen erin) maar zoals gezegd, daar ben je dus wel even mee bezig...

Ik heb m'n opzet zo simpel mogelijk gehouden want eigenlijk komen de meeste CMS'en hier op neer:
• Je hebt een db met een aantal (relationele) tabellen
• Ik gebruik m'n eigen O/R mapper/codegenerator om objecten om de rows uit die tabellen om te vouwen naar PHP objecten die zichzelf updaten zodra er een property wijzigt, zichzelf kunnen deleten, hun eigen relaties kunnen vinden, etc.
• Ik gebruik een plugin-based systeem om functionaliteit toe te voegen (include alle files uit een bepaalde directory en laat die de a.d.h.v. de URI bepalen of ze in actie moeten komen of niet
• Als zo'n plugin in actie komt voegt ie iets toe aan de template: een lijst met nieuwsitems, agenda items, foto upload modules etc. Door die plugin based structuur hoef je dingen maar minimaal aan te passen als je het aan een andere site wilt knopen.
• Als je bijv. in de 'nieuws' plugin terecht komt via : /nieuws/edit/1 dan wordt de 'editor' functie voor het nieuws object aangeroepen, welke weer een HTML form uitpoept met een nette FCKeditor erin, en een relatie editor die op een generieke manier alle relaties van dat nieuws artikel weergeeft en aan kan passen en kan koppelen.

Ik lever binnen een dag een complete CMS op inmiddels als ik met een nieuwe lege database begin :)

Ooit ga ik het nog eens releasen, die hele db analyzer / codegenerator maar dan moet ik eerst even 3 weken tijd ergens vinden om alles netjes op te schonen en klaar te krijgen voor de rest van de wereld :+

Zo ziet dat er ongeveer uit (qua generator):
http://home.schizofreend.nl/pork.jpg

[ Voor 9% gewijzigd door SchizoDuckie op 05-10-2007 10:10 ]

Stop uploading passwords to Github!