Avatar billede zamiel Nybegynder
29. december 2009 - 11:30 Der er 5 kommentarer

Opbygning af multibruger system

Jeg sidder og leger med tanken om at lave et "multibruger" CMS. Systemet vil ligge på mit webhotel og brugere kan få en konto hvor de så kan oprette deres CMS. Jeg vil gerne have at alle cms konti bruger "kernen (funktioner/klasser/includes etc)" i systemet. Derved skal jeg kun opdatere systemet et sted og jeg undgår at skulle opdatere 15 systemer, der er installeret på 15 webhoteller. Dvs at når en bruger får adgang så kan de definere en template og indhold og ellers trækker hele deres cms på den fælles kerne/system.

Problemstillingen er så hvordan skal jeg kunne differentiere mellem brugerne og deres cms? Jeg tænkte at hver brugere skulle have sin egen DB som systemet skulle bruge. Normalt ville jeg lægge config samt connection klassen i en include mappe, dette kan jeg ikke gøre denne gang da connection klassen skal tilgå forskellige databaser alt efter . Jeg har lavet et eksempel nedenunder.

Hvordan gør jeg dette bedst? Der skal jo reelt en config fil til for hver bruger. Hvorledes kan man gøre dette så connection klassen tilgår den rette DB? eller er der en bedre måde at gøre det på?


Root
•    Includes (disse er fælles for alle)
    o    themeloader.php
    o    functions.php
    o    classes.php
    o    DBconnection.php

•    bruger
    o    bruger1
            Index.php
            templates
                       
    o    bruger 2
            Index.php
            templates
                       
    o    bruger 3
            Index.php
            templates
Avatar billede bmpi Nybegynder
29. december 2009 - 12:13 #1
Hejsa

Jeg vil anbefale dig at tage et kigge på Wordpress MU (Multi User), som gør netop det, du vil. Du kender systemet fra fx blogger.com eller wordpress.com, hvor man selv går ind og opretter sin blog.

I Wordpress MU har brugerne i princippet alle de samme muligheder, som man har i en enkel Wordpress installation: Tilknytning af templates/themes osv. Men som global admin kan man definere hvor meget siderne må have adgang til.

http://mu.wordpress.org/

Jeg ved ikke om du selv vil bygge et CMS, men i såfald burde der være masser af inspiration i Wordpress MU koden.

Wordpress MU er fantastisk til dette formål, så jeg kan kun anbefale dig det. Jeg er netop lige ved selv at færdiggøre et WPMU site, hvor jeg med et enkelt klik kan oprette et nyt website: http://8464.dk

Du kan selv vælge, om det nye website skal ligge på et subdomæne eller en subfolder, og du kan også med et plugin sørge for at det nye website får sit eget unikke domæne.
Avatar billede mbn.dk Nybegynder
29. december 2009 - 13:20 #2
Jeg har skrevet mit eget lille framework som jeg bruger en del steder. Jeg valgte for nyligt at lægge en kopi online.

Jeg tror det kan lidt det du efterlyser, så hvis du kigger på mit eksempel-site (der også ligger der), kan du måske finde lidt inspiration.

Du kan finde det på http://websmed.dk/mit-php-framework/

:-)
Avatar billede repox Seniormester
29. december 2009 - 19:04 #3
#0
Hvorfor er det så slemt at give dine kunder deres individuelle CMS? Større og veludviklede CMS systemer (lad bare nævne Drupal) tager jo ikke højde for sådan noget. Det giver minimal mulighed for specielt tilpassede løsninger (om nødvendigt).
Avatar billede zamiel Nybegynder
15. januar 2010 - 11:09 #4
@repox
Fordi det er den forretningsmodel jeg er blevet forelagt :)

@mbn.dk
Takker, den er meget brugbar. Pointene går til dig :)
Avatar billede zamiel Nybegynder
11. marts 2010 - 11:25 #5
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester