Contents
Efter denne helt store opdatering af mit site vil jeg gå i dybden og forklare jer “min kære læsere” hvordan mit CMS og mit Framework virker og hvordan det er bygget op.
Jeg vil starte med mit Framework
Framework
Mit framework er bygget op med 2 ide’er.
1. Det skal være let fremover at bygge sites op “dvs have et framework med en masse features som man hurtigt kan bruge”
2. Det skal have nogle speciel features som direkte skal bruges af mit CMS “modul kontrol”
Det er bygget op så det er et struktureret OOP framework.
Theory
Vi starter i toppen til venstre ved View
View er det som brugeren ser, det som du ser på lige nu, selve hjemmeside fronten.
Lad os sige vi skal se en oversigt over alle brugerne på hjemmesiden, så det der sker er følgende.
1. Et stykke kode på View kontakter den Manager som har styr på brugerne, i Manager sker alt logikken
2. Hvis Manager for brugere blev kontaktet og har nogle parametre med, så som hvis vi skulle have én bestemt bruger
så ville Manageren kontakte Validate som sørger for alt validering inden det bliver sendt til databasen eller skal vises til brugeren.
3. Validate sender de validerede parametre tilbage til Manager
4. Manager kontakter det Database layer som har med brugere at gøre og får de eller den bruger(e) ud fra databasen
5. Fra den data som Datalayer lige har fået så laver vi brugerne om til objekter “bruger objekter”
6. De bruger objekter bliver sendt tilbage til Database layeret
7. De bruger objekter bliver send tilbage til Manager
8. Bruger objekterne bliver sendt ud til View igen, men de bliver ikke vist endnu
9. Bruger objekterne bliver sendt forbi validate som validere den data som skal vi ses på siden
10. View får dataen tilbage som nu sikkert kan vises på siden.
Hvert eneste objekt har sin egen Manager og sit eget Datalayer så alt er delt op i dele.
Eksempel:
Bruger objekter har sin egen Manager og sit eget Datalayer
Rolle objekter har sin egen Manager og sit eget Datalayer
Osv.
Objekter
Jeg vil ikke gå i dybdeb hvad objekter er, da dette ikke er en tutorial 🙂
Men objekterne er helt almindelige classes med nogle properties og en constructor
Manager
Manager er en class der sørger for alt logikken for et specifikt objekt.
Hvert objekt har sin helt egen Manager så logikken for forskellige objekter også bliver delt op.
Datalayer
Datalayer er en class der sørger for at kontakte og manipulere med databasen for et specifikt objekt.
Hvert objekt har sin helt egen Datalayer så alt database håndtering for hvert objekt er delt op i hver sin Datalayer class.
Mit Frameworks størrelse
Jeg har bygget alle de ting ind i mit framework som jeg pt. bruger meget.
- Database handling
- Dynamic path’s – Istedet for at hver fil skal navigere rundt ud fra hvilken placering filen har, så har jeg lavet Dynamic path’s som tager fra roden og frem til filen man søger.
- Log definitioner
- Logging
- Users
- Roles
- Accestypes / Accesshandling – Sørger for at de rigtige roller får adgang de rigtige steder
- Date and Time – Håndtering af datoer og tider, men en bestemt feature som jeg er glad for er min Dynamic Time.Eksempelvis: En amerikansk hjemmeside skriver en artikel, den artikel bliver vist i deres tidspunkt, dato, tidszone.Mit fungere ved at når jeg poster en artikel bliver det lagt i et unix timestamp og når en besøgende så besøger siden hiver min kode fat i brugerens tidszone og ud fra brugerens tidszone kan min kode lave datoen om så tidspunkt, dato og tidszone står i forehold til den besøgendes tidszone.
- Module control “everything about modules” – En standard installation af mit CMS kan ikke meget, næsten intet.Men det er det samme som en motor i en bil heller ikke kan noget uden alle de andre dele.Så mit CMS er bygget op som en motor men via modul kontrol kan man selv lave sine moduler og tilføje / fjerne nemt, så mit CMS er ikke bare et CMS med X antal features men et CMS som har en solid kerne og kan vider udvikles.
- Multilanguage – Multilanguage gør det nemt at have en side og konvertere den til flere sprog.Eksempelvis bruger mit CMS den feature men det er kun på engelsk pt.Det fungere ved alle tekster er lagt ind i en tabel i databasen i et given language som “en eller da” med en string_key som definere præcis den tekst og så en tekst som skal vises.Så når en besøgende besøger hjemmesiden bliver multilanguage kaldt med hvilket sprog det er brugeren skal se siden i og så sørger multilanguage for at lave alle string_key på siden om til den rigtige tekst.
- Session handling
- Validate – Validate indeholder alt muligt med validering, lige fra validering af navne, tal, emails, validere data inden det kommer ind i databasen, validere data inden det bliver vist på siden, osv.
CMS “SystemOne”
Jeg havde planer om at kalde mit CMS for Skynet høhø joke to all the fellow nerds out there 🙂
Mit CMS er bygget op omkring mit Framework.
Som standard installation kan mit CMS ikke særligt meget, det er en administrations del men uden nogle rigtige features.
Ide’en er at have et simpelt men solidt administrations interface som kan vider udvikles via moduler.
En standard installation har
- Settings – Her er systemets instillinger
- Module Control – Module control er her hvor jeg kan installere eller afinstallere moduler.man smider modulerne i modul mappen og så vil systemet selv genkende hvilke moduler som allerede er installeret og hvilke som ikke er installeret og vise dem korrekt.Med et enkelt klik kan man installere og afinstallere moduler.
- Help – Bare en manual 🙂
- Log – Man kan bruge log metoden fra mit framework til at logge hendelser i systemet med alt lige fra kategori, type, level, ip, dato og mere til.
Module control
Det er nemt at udvikle moduler til mit CMS SystemOne.
Der er dog visse krav for at det vil fungere i systemet.
Man skal have en installation, afinstallation, information, og en index fil
og det er kun standard kravene.
Man har fuldkommen frie tøjler til at udvikle hvilke moduler man vil.
Den Kim-CV.com har jeg udviklet blog, portfolio og forside tekst moduler, lagt ind i modul mappen og trykkede install og så havde jeg de features 🙂
Det lækre er man ikke behøver at lave store omvæltninger for at noget skal tilføjes eller fjernes fra siden, det hele foregår via modulernes egne install og uninstall filer.