DUzun's Web
Programare, proiecte personale, divertisment

duzun.teologie.net
 Home >> Dynamic CMS  
arr_d Navigator
arr_d Embed
 
 
arr_d Info vizite

free counters

Descriere DCMS


DCMS v2.0

Dynamic Content Management System (DCMS) este mai mult decât un simplu CMS, este un framework pentru dezvoltarea aplicațiilor web.

DCMS este format din două părți majore distincte:

  1.  Bibliotca de funcții și clase PHP;
  2.  Modulele (plugin-urile) sistemului.

Bibliotecile conțin o serie de funcții-instrumente utile ca de exemplu file_url($server_path), care returnează adresa URL a fișierului de pe server indicat de $server_path. Desigur acesta este un exemplu simplu, iar toată biblioteca în ansamblu reprezintă un mediu comod de programare.

În afară de funcții, biblioteca DCMS conține și clase cu diferite destinații, pentru:

  • citirea/scrierea fișierelor de un anumit format (csv, ini, name-value etc.),
  • criptarea fișierelor,
  • manipulări complexe a datelor din sistemul de fișiere (inclusiv de formatele specificate mai sus),
  • administrarea sesiunii (login/logout),
  • timer,
  • controlul output și al header-elor,
  • includerea și prelucrarea șabloanelor
  • etc.

Modulele folosesc biblioteca și/sau alte module pentru a oferi un serviciu/funcție. La moment există module pentru: editarea informației textuale (FCK Editor, CK Editor, ș.a.), editarea proprietăților paginii (titlu, cuvinte cheie, descriere, limba, codificarea, copyright, redirect, ș.a.), rescrierea și citirea adresei URL, răsfoitor de fișiere (file browser), statistici, sistem de email-uri pe server, media player, manager de articole, chiar și un antivirus web care scanează periodic fișierele de pe server și elimină scripturile injectate în urma atacurilor la server.

Modulul implicit (main) este responsabil de generarea codului HTML al paginii cerute în baza șablonului paginii și a informației din baza de date (BD) și/sau informației generate de alte module.

Încă un aspect important al DCMS sunt funcțiile API (Application Programmed Interface) oferite de sistem pentru module. Utilizând funcțiile API, modulele au acces la toate resursele necesare DCMS, inclusiv alte module, BD, controlul output, pot trimite header-e (ceea ce e posibil doar pana la începutul output-ului propriu zis), include fișiere CSS, scripturi (JS, VBS), crea alerte, adăuga cod JavaScript care se execută la încărcarea paginii, au acces la proprietățile documentului care abia se creează (titlu, limbă, cuvinte cheie, ș.a.).

Pe viitor se pot adăuga noi module, asemănător cu niște plugin-uri, care să ofere funcționalitate nouă sistemului.

DCMS nu folosește SQL, ci are un sistem de gestionare a bazelor de date (SGBD) propriu bazat pe sistemul de fișiere. Desigur, dacă aplicația web are nevoie de SQL, cu ușurință se poate crea un modul pentru gestionarea conexiunii. Însă DCMS nu are nevoie de SQL pentru stocarea conținutului și proprietăților paginilor, cât și a setărilor sistemului. SGBD-ul DCMS este ierarhic și contextual. Modulele pot apela BD fie explicit, fie implicit contextului în care se află (de regulă contextul e determinat de pagina curentă). Astfel apelurile la BD sunt foarte simple, indicându-se doar numele câmpului necesar, iar de restul se ocupă SGBD, ceea ce simplifică semnificativ codul modulelor și timpul de proiectare a structurii datelor aferente fiecărei paginilor și a site-ului în general.


Conceptul DCMS

Sistem de Management al Conținutului Web Ierarhic

Un Sistem de Management al Conținutului (SMC) web este menit sa ușureze procesul de administrare a conținutului unui site, în special pentru utilizatorii fără cunoștințe tehnice în domeniul web. Totuși administratorii site-ului nu sunt scutiți de sarcina de a adăuga și administra conținutul.

Multe site-uri au structura unui arbore, tulpina căruia este pagina de start. În asemenea cazuri, de regulă, structura tuturor paginilor este asemănătoare, iar multe elemente de conținut (logo-ul și sloganul site-ului, calendarul, banner-ele, blocuri cu publicitate, ș.a.) se repetă în majoritatea paginilor site-ului. Structura paginilor site-ului este determinată de conținutul acestora, și dacă la un anumit nivel al arborelui de pagini intervine o schimbare, aceasta este valabilă și la următoarele niveluri începând cu acea ramură, reieșind din logica structurii. Schimbarea poate fi de orice natură, fie conținut, fie design, fie anumite setări sau drepturi de acces.

Observând aceste reguli în procesul de creare și administrare a unui site, în scopul ușurării acestui proces nu doar pentru administratorii simpli, dar și pentru programatorii web, ne-am propus să creăm un SMC Web la baza căruia stă conceptul de structurare ierarhică atât a conținutului, cât și a drepturilor de acces la anumite părți ale site-ului. SMC-ul este realizat în limbajul PHP.

Procesul de creare a structurii paginilor și adăugare de noi pagini este semiautomatizat, cerând efort minim din partea administratorului. Iată principiile de bază ale SMC-ului nostru:

Având o anumită pagină deja creată la un anumit nivel al site-ului, pentru a crea o subpagină (pagină fiică) a acesteia este nevoie să adăugăm doar conținutul specific acestei subpagini, iar structura paginii, designul, anumite blocuri de conținut și setări se moștenesc de la pagina părinte.

Dacă pentru pagina curentă lipsește o anumită setare (de ex. codificarea, șablonul, pictograma etc.), aceasta se ia de la pagina părinte.

Dacă anumite blocuri de conținut moștenite nu sunt potrivite pentru pagina curentă, ele pot fi cu ușurință înlăturate prin interzicerea moștenirii lor, astfel ele nu vor apărea nici în subpaginile următoare.

Evitarea moștenirii se poate face și prin substituția elementului respectiv, adică dacă un anumit element deja este prezent în pagina curentă, el nu se va mai cere de la pagina părinte.

Unele elemente, precum titlul paginii, descrierea paginii, unele blocuri și altele sunt proprii doar paginii curente, deci ele nu se „transmit prin moștenire” paginilor fiice și sunt marcate ca proprii.

Regulile de moștenire au niște valori implicite în funcție de natura elementelor de moștenit. Însă aceste reguli pot fi modificate de către administrator după necesitate.

Toate regulile de moștenire sunt asigurate de către două clase PHP: prima răspunde de stocarea datelor pe filesystem, iar a doua asigură citirea / scrierea datelor în conformitate cu ierarhia conținutului. Astfel conceptul de bază în SMC se realizează în mod natural prin folosirea acestor clase, ceea ce asigură simplicitatea codului aplicației și implicit performanțe de viteză.

Un alt aspect al folosirii conceptului de ierarhizare a conținutului este faptul că administrarea site-ului la fel poate fi realizată în mod ierarhic în conformitate cu structura site-ului. Administratorul de bază poate acorda dreptul de administrare a unei anumite ramuri ale site-ului unui utilizator. Acest utilizator fiind administratorul ramurii sale, poate acorda aceleași drepturi altor utilizatori, numai pentru subramurile următoare. În așa mod se creează o ierarhie a utilizatorilor în baza drepturilor de administrare.

Folosind acest concept, fiecare subramură poate constitui un site separat, simulând principiile subdomeniilor, cu prioritatea împărtășirii resurselor de către „subdomenii” și domeniu.

Ce mai nou ...

 

Simbioz între DCMS şi WP
 

Am reușit să unesc DCMS cu WordPress! :)

Acum pe www.teologie.net funcționează două CMS-uri - DCMS și WP.

Iată câte un exemplu de pagină din fiecare:

http://www.teologie.net/media - DCMS

http://www.teologie.net/media/ - WP

Cum n-ar funcționa tot sistemul,  la accesarea unei pagini trebuie să existe un punct de intrare și un punct unde se decide care CMS va deservi cererea. Punctul de intrare este DCMS. Deci se incarca bibliotecile DCMS, se decide care CMS se execută, și dacă pagina cerută ține de WP, atunci DCMS transmite controlul execuției WP.

Acest mecanism a fost posibil datorită faptului că DCMS încarcă bibliotecile PHP doar pe măsură ce acestea sunt solicitate. Deci bibliotecile care ar putea crea conflict cu WP (functii sau clase, variabile sau constante cu același nume) încă nu sunt încărcate în punctul de decizie, unde se alege WP sau DCMS.

DCMS cu adevărat este Dynamic! 

 Buzz    Distribuie   </> 02.11.2011
 

 

arr_d Limba / Language
Loading Google Translate Element. . .


  Distribuie


Music


arr_r Login
arr_d Email

Temporar suspendat ;-(