DUzun's Web
Programare, proiecte personale, divertisment

DUzun it's ME
 
  
arr_d Baner
 
 

arr_d Info vizite

Flag Counter

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.


 

21 martie 2009

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.

 


Comments
arr_d Limba / Language


 


arr_r Login