Flexibel CMS maken
Elke keer dat ik een website maak moet ik veel standaard stappen doorlopen welke voor elke website eigenlijk hetzelfde zijn.
Nu zat ik te denken aan het ontwikkelen van een CMS met templates om snel en eenvoudig een website te kunnen maken. Dit ook ter beheersbaarheid richting de klant maar vooral het inkorten van de ontwikkelingstijd voor mij op lange termijn.
Nu heb ik al het 1 en ander uitgedacht maar ik blijf een beetje tegen 1 ding aanlopen.
Mijn feitelijk vraag
Als ik de pagina inhoud van een website in de database stop heb ik statische tekst.
Nu wil ik een module systeem hebben zodat ik simpel, volgens een standaard in- en output, bijvoorbeeld een dynamisch gastenboek kan toevoegen. Wat is hiervoor de beste aanpak met betrekking tot ontwikkeling?
Wat ik natuurlijk als hoofddoel heb dat ik niet moet afwijken van mijn huidige stijl van websites ontwerpen. (dus geen kilometers parameters achter de url, nee gewoon simpel: site.nl/gastenboek/)
Hopelijk hebben jullie wat ideeen voor mij...
Template
Php
Config
In de template kun je werken met html. Zolang de benaming van de onderdelen gelijk blijft doet de layout er niet toe
In de php (die eigenlijk altijd gelijk is) kun je de data verwerken met instellingen zoals deze in de config staan
In de config kun je tot slot bijv het type opslag aangeven met de daat bij behorende data.
Het enige dat dan rest is een layout maken en mischien wat klantspecifieke wensen
Quote:
Dit kun je simpel met Apache mod_rewrite doen, geen enkel probleem. gewoon simpel: site.nl/gastenboek/
Verder raad ik je aan om eens naar een standaard cms te kijken, bv. Joomla of Drupal. Scheelt jou een hele hoop werk.
Hoe ik het lees is dat TS gewoon een aantal standaard scripts wil hebben die snel te implementeren zijn. In dat geval is CMS mischien een groot woord en heel veel van Joomla en Drupal gewoon overbodig
Dat klopt, ik wil een klein flexibel csm maken wat net iets groter is als elke keer een specifieke admin maken. En ik heb zelf een gruwelijke hekel aan Joomla. Ik heb er wel eens mee gewerkt maar het is me net te groot om elke keer te uploaden enzo.
@jacco
Ik was van plan om voor de template (dit is eigenlijk het belangrijkste voor een snelle layout change)
- een map templates te maken met submappen met daarin de templates (met de standaard elementen)
- deze templates worden geladen in de database en zo kan er eenvoudig gewisseld worden, of alvast test draaien vd nieuwe layout.
- in de template kunnen dus gewoon de site specifieke menus opgenomen worden, dit hoeft in het begin niet allemaal zo dynamisch
De pagina's gaan in de database met een soort structuur van :
id - paginanaam - phpbestand? - tekst - typepagina (dynamisch / tekst)
Is dit een goede aanpak?
@frank
het mod_rewrite gebruik ik al veelvuldig en dat ben ik ook zeker van plan te gebruiken
edit:
Waar ik meer op doel is ook de toekomstige uitbreiding, zoals het cachen van gegevens enzo. Dus met 1 druk op de knop kan ik een website vanuit de database exporteren naar een online locatie. (dit is wel te doen, het is maar een voorbeeld)
Denk ook bijvoorbeeld aan meerdere talen enzovoorts (wat zijn tips waar ik rekening mee moet houden?
Gewijzigd op 01/01/1970 01:00:00 door Marien xD
Welke css dat dan is kun je in je config file/table regelen bijv :
index.php
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
//je db verbinding
$query_conf = "SELECT * FROM config_table" ;
$result = mysql_query ($query_conf) ;
$config = mysql_fetch_array($result)
echo '<link href="css/'.$config["template"].'.css" rel="stylesheet" type="text/css"/>';
?>
//je db verbinding
$query_conf = "SELECT * FROM config_table" ;
$result = mysql_query ($query_conf) ;
$config = mysql_fetch_array($result)
echo '<link href="css/'.$config["template"].'.css" rel="stylesheet" type="text/css"/>';
?>
Table :
config_table :
template
/*verdere conf items*/
Iets in die strekking
Het probleem bij mijn re-designs is dat de html ook vaak verschilt... dus dan moet ik ook een html bestand uploaden met place holders erin. Deze haal ik dan door een template parser.
Aha
Maar dat ding gaat wel lukken, ik zat meer met mijn module ontwikkeling (vooral gericht op het flexibele inzet van het systeem)
Of heb ikzelf nu al het antwoord gegeven :(...