De opbouw van een CMS systeem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Ariën  -
Beheerder

- Ariën -

21/06/2008 18:05:00
Quote Anchor link
Ik zat me af te vragen of meer mensen op dit forum een eigen CMS hebben gebouwd, en hoe ze dit hebben opgebouwd. Gebruiken jullie een templateparser, en welke bestandsstructuur hebben jullie?

Ik ben er nog niet helemaal over uit hoe ik het ga opbouwen, maar ik denk dat elke module (contact, fotoboek, gastenboek etc..) in de web-root komt met daarin de nodige verwijzigingen naar de templates.

Verder zijn er twee belangrijke templates: header.tpl, footer.tpl, hierin staan dus de footer en de header.

Ik heb ook een page-module waar de klant zelf statische pagina mee kan aanmaken voor zijn site (routebeschrijving, over ons bedrijf, etc..) en met Multiviews maak ik die URLs netjes (http://site.nl/pages(.php)/routebeschrijving))

Wat vinden jullie van het idee? En hoe zouden jullie het doen, of hoe hebben jullie het gemaakt en ingedeeld?
 
PHP hulp

PHP hulp

05/01/2025 01:08:15
 
Robert Deiman

Robert Deiman

21/06/2008 19:30:00
Quote Anchor link
Ik ben zelf een CMS aan het schrijven. Je hoeft geen bestaande template parser te gebruiken in principe, je kan ook je layout opdelen (in je CMS) in verschillende onderdelen. Zelf niet echt een parser schrijven, maar 1 regeltje php voor de content in een bepaalde div wordt het ook niet echt minder van is mijn mening.

Menu, Header, Content, Footer, en bedenk ze zelf verder maar ;)
Een module zou ik doen in een map: modules, en in je tabellen zetten welke modules zijn ge-activeerd. In die map modules heb je een map staan met de naam van een module, een XML bestandje met omschrijving (of die doe je wel in je database) van de module, en de overige bestanden. AFhankelijk van de pagina kan je de items (Menu/ Header/ Content) uitlezen en teruggeven.

Je kan op deze manier heel eenvoudig en snel uitbreiden, module installeren, hij wordt herkend, dan kan je hem activeren en gebruiken in het systeem.

Waarom zou je pages meenemen in je URL? In principe moet je gewoon alles door kunnen sturen naar je index.php en aan de hand van de GET gegevens daarachter (mod-rewrite) gewoon kan lezen. De 'map' page zoals je die nu hebt staan doet verder niets, voegt niets toe en een zoekmachine heeft daar ook niets aan. Wie zoekt er nu op "pages routebeschrijving"?
 
Nicoow Unknown

Nicoow Unknown

21/06/2008 19:33:00
Quote Anchor link
Ik heb zelf een CMS geschreven, waarin je zelf je template maakt, en dan gewoon heel makkelijk je menu enzo plaatst.
Je kan voor je menu gewoon gebruiken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
menu(naam, verticaal) /*
* Of horizontaal. De naam is de naam van het menu wat je mee kan geven
*/

?>
 
Jeffrey H

Jeffrey H

21/06/2008 19:41:00
Quote Anchor link
@Robert: Met multiviews moet dat...
Dus "pages" is geen map...

En ik heb zelf ook cms geschreven,
over map structuur:
+ Admin
- index.php
- pages.php (pagina's bewerken?)
- miss users.php ofzo (als je je klant ook nog gebruikers wilt laten gebruiken)
+ File_Uploads: kan de gebruiker alles in uploaden(of je kunt dit via db doen)
- pages (als je multiviews gebruikt, persoonlijk zou ik voor mod_rewrite zijn, als die beschikbaar is)

En ik zou mezelf ook nog de vraag stellen, OOP of gewoon alles met functies (met modules is OOP logisch oké)
Over template parsers: gewoon zelf eentje schrijven, gewoon smartie(zijn de meesten aan gewent) of gewoon helemaal geen parser en gewoon php(is meestal nog sneller ook(Zie roberts post))

Succes ;)
Gewijzigd op 01/01/1970 01:00:00 door Jeffrey H
 
Bart van der veen

bart van der veen

21/06/2008 19:44:00
Quote Anchor link
Even voor muggenzifters onder ons, CMS (content management system) gaat over het onderhouden van de content. Ik begrijp (als buitenstaander) even niet wat een template farser daar in moet.

Nu terug naat het punt. Ja ik heb mijn eigen cms. Het mijne is een systeem waar er kolom gegevens (type enz) uit de database worden omgezet naar overzicht tabellen en edit formulieren. Dit in combinatie met een omweg binnen het probleem van MYSQL voor de reationele database heb ik (al zeg ik het zelf) een eenvoudig maar flexibel systeem ontwikkeld.

Tevens maak ik altijd een tabel aan waarin de de menu-item koppel aan gegevens over de pagina die hij moet compilen, maar daar schrijf ik altijd weer losse modules voor.

misschien niet het meest eenvoudige verhaal maar dat geheel terzijde...
 
Jeffrey H

Jeffrey H

21/06/2008 19:47:00
Quote Anchor link
Bart:
Even voor muggenzifters onder ons, CMS (content management system) gaat over het onderhouden van de content. Ik begrijp (als buitenstaander) even niet wat een template farser daar in moet.


@Bart, ja we weten wat CMS betekend, en kijk maar is naar de grote voorbeelden: Joomla, Typo3, mambo, etc.
En die hebben (ALLEMAAL) een template parser.
Eigenlijk word het dan:
Website Management System??
Gewijzigd op 01/01/1970 01:00:00 door Jeffrey H
 
Storeman storeman

storeman storeman

22/06/2008 10:40:00
Quote Anchor link
Ik heb zelf een multi-user blog systeem gebouwd met behulp van het Zend_Framework. De leercurve is wel daar, maar je overzicht blijft fantastisch, het framework is zeer flexibel en krachtig. Daarnaast kun je ook op vele manieren caching toepassen (wat wel nodig is). Alles is al ingesteld op multi-language en straks komt er ook betere ondersteuning voor AJAX icm DOJO (ik gebruik momenteel MooTools).

Zend Framework gebruikt views welke multi inzetbaar zijn. Ik heb zelf een globale map (boven alle modules) waarin een aantal default views staan. Vanuit elke module/controller/action kan ik hiernaar verwijzen (of indirect via een andere view).

Het klinkt wellicht als abra-ca-da-bra, maar ik vind het heerlijk werken, veel vrijheid, veel vastigheid en goede uitbreidbaarheid (heb ondertussen mijn eigen bibliotheek naast die van Zend, mijn bibliotheek is een uitbreiding.
 
Robert Deiman

Robert Deiman

22/06/2008 12:22:00
Quote Anchor link
één van de grote voordelen van het zelf maken vind ik toch wel dat het altijd maatwerk is. De opties die jij nodig vindt of hebt bouw je in, de rest laat je weg. Omdat je echt precies weet hoe het werkt, kan je eenvoudig een uitbreiding toevoegen indien nodig.
Een CMS als Joomla! is veel te uitgebreid in veel gevallen, je hebt er niets aan als je duizenden opties hebt die je niet gebruikt, of waar je meer kennis voor moet hebben.

Wat ik wel belangrijk vind bij een CMS is dat je verschillende gebruikslvls hebt. Niet iedereen mag dezelfde dingen doen, en dat moet ook gecontroleerd worden. Je hebt natuurlijk dan ook de vrijheid om met 1 gebruiker (superuser) te werken. Daarnaast moet het ook zo zijn dat als je een uitbreiding schrijft dat die eenvoudig te installeren is. (in principe mapje plaatsen en hij kan gebruikt worden, indien gewenst eerst accepteren binnen het cms)

Vergeet ook niet een installatie-bestandje te schrijven voor het cms, dat werkt wel zo prettig en je hoeft niet alles handmatig in te stellen in de code.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.