Autor: Vișean Răzvan -Constantin Coordonator științific : Conf .univ.dr. Sâ ngeorzan Livia Brașov 2015 2 Primos Brașov 2015 3 Cuprins [601321]
1
Universitatea TRANSILVANIA din Brașov
Facultatea de Matematicǎ și Informatică
Specializarea Informatică
Lucrare de licență
Autor: Vișean Răzvan -Constantin
Coordonator științific : Conf .univ.dr. Sâ ngeorzan Livia
Brașov
2015
2
Primos
Brașov
2015
3
Cuprins
Introducere ………………………….. ………………………….. ………………………….. …………………. 5
Capitolul I ………………………….. ………………………….. ………………………….. …………………… 7
Baze de date și SQL Server ………………………….. ………………………….. ………………………. 7
SQL Server ………………………….. ………………………….. ………………………….. ……………… 7
Funcț ii integrate al e SQL Server ………………………….. ………………………….. ……………. 11
Capitolul II ………………………….. ………………………….. ………………………….. ………………… 15
HTML, Javascript și reguli CSS ………………………….. ………………………….. ………………… 15
HTML (HyperText Markup Language) ………………………….. ………………………….. ……. 15
CSS ( Cascading Style Sheets ) ………………………….. ………………………….. ……………… 17
Javascript ………………………….. ………………………….. ………………………….. ………………. 20
Bootstrap ………………………….. ………………………….. ………………………….. ……………….. 23
JQuery ………………………….. ………………………….. ………………………….. ………………….. 26
Capitolul III ………………………….. ………………………….. ………………………….. ……………….. 29
Php, Smarty si structura MVC ………………………….. ………………………….. ………………….. 29
PHP ………………………….. ………………………….. ………………………….. ……………………… 29
Structura MVC ………………………….. ………………………….. ………………………….. ……….. 31
Smarty ………………………….. ………………………….. ………………………….. …………………… 32
Capitolul IV ………………………….. ………………………….. ………………………….. ……………….. 36
Adobe LiveCycle Designer ………………………….. ………………………….. ………………………. 36
Capitolul V ………………………….. ………………………….. ………………………….. ………………… 45
Structura aplicației “Primos” ………………………….. ………………………….. …………………….. 45
Caracteristici ale aplicaț iei: ………………………….. ………………………….. ……………………. 46
Crearea documentelor de tip .pdf ………………………….. ………………………….. …………… 46
Configurarea bazei de date și conexiunea acestuia cu PHP ………………………….. ….. 50
Generarea fiș ierelor .xml atribuite fiecarui utilizator ………………………….. ………………. 51
Configurare PHP pentru a trimite mail -uri ………………………….. ………………………….. .. 52
Crearea rapoartelor ………………………….. ………………………….. ………………………….. …. 54
Capitolul VI ………………………….. ………………………….. ………………………….. ……………….. 57
Ghidul aplica ției ………………………….. ………………………….. ………………………….. …………. 57
Pagina de Î nregistrare ………………………….. ………………………….. ………………………….. 57
4
Cetăț ean ………………………….. ………………………….. ………………………….. ……………….. 58
Angajat ………………………….. ………………………….. ………………………….. ………………….. 59
Admin ………………………….. ………………………….. ………………………….. ……………………. 61
Bibliografie : ………………………….. ………………………….. ………………………….. ………………. 63
5
Introducere
Scopul multor site -uri este să îți facă viața mai ușoara și sa poți accesa multe
informații într-un mod căt mai eficient . De asemenea utilizarea unor aplicații online poate
economisii mult timp si resurse.
Aplicația pentru p rimarii este o suluție eficientă care ușureaza viața nu numai
angajaților primariei dar si cetă țeanului de rând. Cu ajutorul unei interfețe intuitive ambele
parți pot economisii timp iar angajații primariei se v -or bucura de un mecanism prin care
nu mai este nevoie decât de o singură per soană care sa gestioneze toate cererile si
plângerile tuturor locuitorilor dintr -un oraș
În ceea ce urmează voi prezenta tehnologiile cu ajutorul căruia am creat aplicația
si motivul care a dus la crearea ei. Motivul a fost simplu de multe ori cand trebui e sa te
duci sa platești ceva sau cand ai nevoie de un document anume prima oară te gandești
oare aș putea să fac asta folosind internetul? Răspunsul este ‘acum’ da.
Ca și tehnologii am ales PHP pentru partea de server. HTML, CSS, Javascript
pentru a crea un aspect și o navigare cat mai placută și mai intuitiva pe pagină și în cele
din urmă SQL Server a fost alegerea mea pentru baza de date iar pentru crearea
documentelor dinamice de tipul PDF folosesc Adobe livecycle designer . Pentru o
performanță optimă am decis sa utilizez urmatoarele framework -uri care folosesc
limbajele alese de mine și anume : Smarty – framework pentru PHP, Jquery – framework
pentru Javascript, Bo otstrap – framework pentru CSS.
Lucrarea de licen ța este strcuturata pe șase capitol e, urmate de bibliografie și
webografie.
În capitolul I voi evidenția aspectele teoretice și importanța unei baze de date și
voi intra in detaliu asupra lui SQL Server.
În capitolul II voi discuta in detaliu despre limbajele folosite pentru crearea
interfe ței, anume Javascript, CSS, HTML dar și despre alte plugin -uri folosite care face
navigarea in aplicație o placere.
În capitolul III o să prezint in detaliu despre Php, Smarty și despre modelul MVC
(Model -view-controller) al acestuia care ma ajutat foarte mult să structurez aplicația într –
un mod eficient și ușor de folosit
Capitolul IV este dedicat in totalitate produsului care il folosim pentru a crea
documentele de tipul .pdf si logica care se afla in spatele acestor documente.
Capitolul V prezinta struct ura aplicatiei si detalierea funcționalitaților create din
punct de vedere informatic
6
În capitolul VI se v-a găsi un “ghid al aplicației”.
Aspecte importante ale aplicației sunt:
o alternativa pentru a înlocuii toate hâ rtiile acumulate in primarii;
creare a unor rapoarte care în trecut era nevoie de mai multe resurse pentru
a fi create ;
accesibilitatea un or infirmații importante utilizâ nd orice dispozitiv care are
conexiune la internet;
eficien ța și rapiditate atunci cand este vorba de transfer de documente ;
7
Capitolul I
Baze de date si SQL Server
SQL Server
Este un sistem de management de baze de date relaț ionale ( RDBMS ) de la
Microsoft. SQL Server ruleaza pe T -SQL (Transact -SQL), un set de extensii de
programare din Sybase si Microsoft care adaugă mai multe caracteristici pentru SQL
standard. Ca un server de baze de date, SQL Server este un produs software al c ărui
funcție principală este stocarea si prelucrarea datelor solicitate de c ătre alte aplicații fie
de pe ac elași calculator fie de pe un alt calculator aflat in re țea.
SQL Server Reporting Services (SSRS)
Oferă o gamă completă de instrumente si servicii pentru a ne ajuta s ă implmentam
și să gestion ăm rapoartele pentru aplicaț ia noastra. Rep orting Services este o platformă
de raportare care ofera funcț ionalitate de raportare pen tru o gamă largă de date. De
asemenea putem creea rapoarte interact ive, grafice sau cu formă liberă sau baza te pe
XML. Rapoartele pot include vizualizarea datelor .
SQL Server integratio n Services (SSIS)
Este o platformă pentru aplicaț ii de întegrare a datelor. Aceasta dispune de un
instrument rapid flexibil de depozitare a datelor utilizate pentru extrager ea de date,
transformare si de î ncarcare. Instrumentul poate fi folos it si pentru a automatiza
intreț inerea bazelor de date SQL Server și actualiză ri de date multidimensionale.
Utilitatea SQL Server Integrat ion Services intervine atunci câ nd dorim sa avem o
anumit ă siguranț a a datelor, adica acesta sa genereze back -upuri zilnice, să ptămânale
lunare sau ce interval de execuț ie dorim. Putem configura un astfel de mecanism automat
de back -up in felul urmator:
a) Se deschide SQL Server Management
b) Se face conexiunea la server configurat in cazul meu la : Razvan -PC\SQL2012
c) Exapandă m Object explor er -> Management -> Maintenance P lan
d) New Maintenance Plan , dă m o denumire mecanismului automat de back -up
după care vom obț ine o f ereastra asemănă toare cu Fig: 1.1 .
8
Fig: 1.1 New Maintenance Plan
e) În partea stângă sus avem un tab lateral Toolbox de unde se selecteaz ă Back
Up Database Task și se pune in interfaț a de configurare a mecanismului
automat de back -up, prezentat in Fig: 1.2 .
Fig: 1.2 Selectare Back -up Database task
9
f) Pentru a configura aceas ta etapa a jobului , dăm dublu click pe Back Up
Database Task se va deschide fereastra de configurare a etapei, unde vom
configura urmatoarele:
– baza de date pe care se doreș te back up automat
– Calea unde se dorește să păstră m back up -urile
– De asemenea avem posibiliatea de a selectat dacă
dorim să arhiv ăm back -up-ul cum e in Fig : 1.3.
Fig: 1.3 Arhivare back -up
g) Odat ă create aceste back -up uri, acest a nu are un mecanism automat de a le
și șterge, ceea ce duce la î ncarcarea spa țiului de pe disc inutil. Pentru a evita
acest inconvenient vom lua din Toolbox un Maintenance Clean up Task.
Acesta are rolul de a șterge fișierele mai vechi în funcție de parametrii pe
care îi configură m. Exemplu de configurare a aces tui task in Fig: 1.4 .
10
Fig: 1.4 Configurare task
.
f) ultimul pas este de a seta la ce interval de timp dorim să se execute acest
mecanism automat . Acest lucru se seteaz ă în linia de subplan la op țiunea de
schedule Fig.:1.5.
Fig: 1.5 Schedule
Pentru a verifica daca acesta a fost co nfigurat corespunzator avem două
modalita ți:
– din Maintena nce Plan selectam mecanismul automat și execută m
11
– din SQ L Server Agent -> Jobs , observă m ca a creat un job SSIS ca î n
Fig.: 1.6 . Acesta se poate executa in aceeaș i manier ă ca si cel din Maintenance
Plan
Fig:1.6 . Maintenance Plan
Functii integrate al SQL Server
Vizualizarea listei intregi de func ții integrate al SQL Server accesăm î n SQL
Server Management Studio o bază de date, o expandă m -> Programmability ->
Functions -> System functions.
Pentru o mai bună înțelegere a acestor funcț ii integrate voi exemplifica
câteva funcț ii mai des folosite.
Funcț ia AVG
Sintaxă : AVG( column_name )
Semantică : returnează media coloanei column_name
-Column_name coloana la care dorim sa facem media
Exemplu:
select AVG(nrForms) as FormsPerUser
from tbl_form
12
Rezultat:
Fig: 1.7
Funcț ie TOP
Sintaxă : top number (column_name )
Semantică : returneaz ă prima valoare din coloana column_name
-Column_name = coloana de unde vrem sa selectă m prima valoare;
-Number = numă rul de valori pe care vrem s ă le returneze;
Exemplu :
SELECT Top 1 (name)
FROM tbl_user
order by id;
Rezultat
Fig: 1.8
Funcț ia Count
Sintaxă : Count( column_name )
Semantică : returnează numărul de înregistră ri a coloanei culumn_name
-Colum n_name = coloana de unde vrem să selectam prima valoare
Exemplu:
SELECT Count(name) as Utilizatori
FROM tbl_user
Rezultat:
Fig: 1.9
13
Funcț ia UPPER
Sintax ă: Upper( column_name )
Semant ică: converteș te valoarea campului în uppercase
-Colum n_name = coloana de unde vrem să selectă m prima valoare
Exemplu:
SELECT Upper(name)
FROM tbl_user
Where name != '';
Rezultat :
Fig: 1.10
Funcț ia Substring
Sintax ă: SUBSTRING( column_name, start, length )
Semant ică: returnează un string in funcț ie de parametrii da ți.
-Colum n_name = coloana de unde vrem să selectă m prima valoare;
-Start = posiția de la care porne ște alegerea;
-Length = numă rul de caractere care se returnează din valoare
Exemplu:
SELECT SUBSTRING (name, 1, 10) AS some_name
FROM tbl_user
14
where name != '';
Rezultat :
Fig: 1.11
15
Capitolul I I
HTML, Javascript și reguli CSS
În capitolu l II sunt prezentate limbajele ș i framework -urile care folosesc aceste
limbaje pentru a crea o in terfață placută și ușor de utilizat. De asemenea in acest capitol
se vor prezenta ș i anumite plugin -uri utilizate in aplicație. Pentru inceput o sa prezentam
fiecare limbaj
HTML (HyperText Markup Language)
Dupa cum spune si numele este un limbaj de marcare utilizat pentru defini rea
paginilor web ce pot fi afișate î ntr-un browser. Scopul limbajului HTM L este prezentarea
informațiilor (paragrafe, fonturi, tabele si altele).
Taguri HTML folosite in aplicaț ie:
Tagul <header>
Sintaxă :<header></header >
Semantică : specifica antetul documentului.
Exemplu:
Rezultat :
Fig: 2.1
Tagul <footer>:
Sintaxă : <footer></foote r>
Semantiă : specific ă un subsol pentru o sec țiune sau un document. Î ntr-un
document pot exista mai multe elemente footer
16
Exemplu:
Rezultat:
Fig: 2.2
Tagul <button>
Sintaxă : <button></button>
Semantic ă: defineș te un buton
Exemplu:
Rezultat : Fig: 2.3
Tagul <select>
Sintax ă: <select>
<option><option>
</select>
Semantic ă: creaza o listă de tipul drop -down
<option> reprezint ă un element din listă
Exemplu:
17
Rezultat:
Fig:2.4
Tagul: <nav>
Sintax ă: <nav>
<a></a>
<nav>
Semantică : defineș te un set de link -uri pentru navigare
<a></a> reprezint ă unul din li nkurile pe care vrem să il afișă m
Exemplu:
Rezultat:
Fig: 2.5
CSS (Cascading Style Sheets )
CSS este un standard pentru stilizarea elementelor unui document HTML.
Atașam elementelor HTML reguli CSS prin mai multe metode.
Prima metoda este utilizand atributul style la un element HTML. Î n interiorul
atributului putem definii orice regula CSS.
Exemplu:
Rezultatul este adă ugarea unei distan șe în valoare de 20px în partea de sus a
elementului <div> .
18
A 2-a metoda prin care atribuim elementelor HTML reguli C SS este prin
includerea unui fiș ier extern de tipul .css. Includerea unui fisier .css se face in felul
urmă tor:
Pentru a face legatura dintre ele mentele HTML cu regulile din fiș ierul .css trebuie să îi
adăugă m tag -urilor HTML unul din atributele id sau class . În unel e cazuri se folosesc
ambele atri bute la acela și tag in cazl î n care este nevoie de o modificare mai
complicat ă. Diferenț a între id si class este ca nu pot ex ista mai multe tag -uri in același
fișier care sa aibe acela și id. În fișierul .css regulile pentru tag -urile ca re au atributul id
trebuie sa î nceapa mereu cu caracterul „ #” urmat de numele id -ului, iar pentru tag -urile
care au atributul class trebuie sa ș nceapa mereu cu caracterul „ . ” urmat de numele
clasei.
Exemplu:
Elementul HTML pe care vrem sa î l stilizam:
Regulile CSS din interiorul fiș ierului .css:
19
Rezultat:
Fig: 2.6 tabel stilizat folsind fisier extern
A 3-a metoda este să introducem reguli CSS î n interiorul unui tag <style> . În
interiorul tagului introducem reguli css in acela și fel cum introducem și in fiși erul extern
.css.
Exemplu:
Rezultat:
elemenul body o să aibe background de culoare #CECBCB
CSS3 este un up grade ce aduce câteva atribute noi si ajută la un design web
mult mai modern. Unele din cele mai importante module adăugate in CSS3 sunt :
Selectors,
Box Model,
Background and Borders,
Image Values and Replaced Content,
Text Effects,
2d/3d Transformations,
Animations,
Multiple Column Layout,
User Interface.
Reguli CSS3 folosite in aplicatie :
Regula RGBA Colors
Sintaxă : background -color: rgba( red, green, blue, alpha )
Semantică : setează culoarea de background în funcție de valoarea dată
red intensitate rosu
20
green intensitate verde
blue intensitate albastru
alpha seteaza nivelul de transparen ță
Exemplu :
Rezultat:
Fig: 2.7
Regula Text shadow
Sintax ă: text-shadow
Semantică : se pot adăuga umbre unui anumit font
Exemplu:
Rezultat:
Fig: 2.8
Javascript
JavaScript este un limbaj de scripting, folosit pentru a da la elementele ș i
compone ntele paginii interactivitate ș i dinamicitate . Limbajul de scripting JavaScript este
unul orientat pe obiecte având la bază conceptul prototipurilor. Unul din marele avantaje
ale acestui cod este că mai mulți dezvoltatori au gândit și totodată creat bibl ioteci mari ce
conțin cod util, pentru a putea fi reutilizate, astfel ușurând munca multor programatori., și
care se pot descărca gratuit. Cele mai cunoscute și folosite biblioteci sunt:
21
jQuery ;
Prototype;
Mootools
În aplicaț ie includem cod Javascript f olosind mai multe metode . O metoda este să
includem fiș iere externe .js..
Sintaxă : <script src=” js-dir”></script>
Semantică : se adaugă fisiere .js
Js-dir = calea către fiș ierul jacasript
Exemplu:
O altă metodă este sa scrii cod javascript î n interiorul fi șierelor de tip HTML unde
putem să specificăm cum să se compo rte elementele HTML din acel fișier î n diferite
situa ții.
Sintaxă : <script>Cod javascript</script>
Semantică : ce este scris in interiorul tagului <script> este inte rpretat ca ș i cod
javascript
Exemplu:
Rezultat: Se face un request că tre server. Apoi se scoate clasa „ btn-
primary ” și se adaugă clasa „ btn-success ” a elementului „ .downloadBtn ” atunci
când s-a dat click. Figurele 2.9 si 2.10
22
Fig:2.9 Fig: 2.10
Avantaje pentru metoda 1:
Se poate menține separarea dintre conținut și com portament (HTML și
JavaScript);
Întreținerea pagin ilor web devine mult mai simplă;
Permite reutilizarea cu ușurință a acelorași programe JavaScript pentru
diferite pagini ale unui site;
Avantaje pentru metoda 2:
Codul este mai accesibil;
Rapiditate
Funcț ii Javascript:
parseInt → parsează argumentul și returnează o valoare Integer a
acestuia;
parseFloat → parsează argumentul si returnează o valoare Float a
acestuia ;
push → adaug ă unul sau mai multe elemente în array ș i returneaza
noua lungime a acestuia ;
split → separ ă un obiect String î ntr-un array de string -uri;
toString → returnează valoarea String a elementului dat ;
clear → șterge toate elementele ale obiectului ales ;
indexOf → returneaza un index care reprezintă prima apariție a unui
string î n interiorul altui string
Atribute ce pot fi adaugate tag -urilor HTML pentru a definii actiuni :
-Legate de ferestre (numai in interiorul tag -urilor: <body>, <fram eset> ):
o onload → script rulat la încă rcarea documentului;
o onunload → script rulat la î nchiderea documentului;
-Legate de formulare (numai in interiorul tag -ului <form> )
o onsubmit → script rulat la trimiterea formularului;
o onchange → script rulat la schimbarea elementului ;
o onselect → script rulat la selectarea elementului;
o onfocus → script rulat la focalizarea elementului
23
-Legate de tastatură (numai la tag -urile:
<base><frame><head><html><style><title><script> )
o onkeypress → script rulat la apă sarea și eliberarea unei taste
o onkeydown → script rulat când se apasă pe o tastă
o onkeyup → script rulat la eliberarea unei taste
-Legate de mouse
o onclick → script rulat când se face click
o onmouseover → script rulat câ nd cursorul este deasupra
elementului
o onmouseou t → script rulat atunci când cursorul iese din suprafață
elementului
o onmousemove → script rulat atunci c ând se miș ca cursorul de la
mouse
Limbajele prezentate in acest capitol sunt folosite într -un mod productiv î n
urmatoarele framework -uri:
Bootstrap
Este un framework gratuit folosit pentru creare de site -uri si aplicații web. Acesta
conține HTML ș i bazate pe reguli CSS de design pentru tipografie, forme, butoane,
navigare și alte componente de interfață, precum și extensii opționale JavaScript .
Framewo rk-ul bootstrap urmarește să faciliteze dezvoltarea web.
Bootstrap este folosit p e partea de front -end al aplicaț iei aceasta are
componente bi ne strcuturate pe diverse teme ș i de asem enea un bonus foarte mare
care îl prezintă acest framework este si c ă este utilizabil ș i pe telefon cu ajutorul
instrucț iunilor de genul :
Codul de m ai sus modifică aspectul unu tabel ast fel încât d acă ecranul se face
mai mic decâ t 767px atunci tabel ul ce nu mai încape î n ecran ii se pune un scroller
effect.
24
Fig: 2.11 Exemplu tabel dimensiune normala
Fig: 2.12 Exemplu tabel vizualizat pe dispozitiv mobil
Bootstrap mai oferă anumite icoane numite “glyphicon” ace stea nu sunt imagini
ci fonturi . Acestea permit de exemplu ca o icoan sub forma de plus să I se dea o
culoare anume si o dimensiune anume.
Element glyphicon
Sintax ă: class=”glyphicon ”
Semantică :
Exemplu:
<span class=”glyphicon glyphicon -plus”><span>
Rezultat:
Adaugă în interfață acest caracter poate fi colorat sau schimbat
dimensiunea folosi nd atributul style în felul urmă tor:
Style=”color: (#cul oarea pe care vrei); font -size: (#dimensiunea
pe care o vrei) ”.
Enumeră m câteva din car acterele ce pot fi folosite ca ș i icoane
25
Fig: 2.13 Caractere glyphicon
Element panel
Sintax ă: class=”panel”
Semantică : stabileș te caracteristicile unui panou
Exemplu :
Rezultă :
Fig: 2.14
26
JQuery
Este o bibliotecă JavaScript . Datorita faptului c ă foloseste o sintax ă simpla
biblioteca jQuery permite selectarea elementelor DOM din pagină pe care dorim să le
modificăm într -o maniera uș oara astfel încât rezultatul sa ducă la coduri uș or de înțeles
și eficiente. Această platform ă de dezvoltare are o arhitectura de tip plug in ce poate
permite extinderea î ntr-o maniera foarte simplă și lipsită de probleme.
Func ții jQuery :
Funcț ie addClass
Sintaxă : addClass( clasa )
Semantică : adaugă o clasa la elementul care o apelează
clasa = numele clasei pe care dorim sa o adăugă m
Exemplu:
Rezultat:
la elemetnul ales se adaugă clasa “btn-success”
Funcț ie remove Class
Sintax ă: removec lass(clasa )
Semantică : șterge cl asa la elementul care o apelează
clasa = numele clasei pe care dorim sa o stergem
Exemplu:
Rezultat:
la elemetnul ales se șterge clasa “btn-primary ”
Funcț ia val
Sintaxă : val()
Semantică : returnează valoarea
Exemplu:
Rezultat:
value va avea valoarea ele mentului “ #name ”
27
Funcț ia hide
Sintax ă: hide()
Semantică : – ascunde elementul p e care o apelează
Exemplu:
Rezultat:
Fig: 2.15
Funcț ia click
Sintaxă : click( functie )
Semantică : când se d ă click pe element se execută funcția specifică
elementului
-functie = o metod ă care se va executa cand se dă click pe element
Exemplu:
Rezultat : când se dă click pe butonul “ Incarca document ” se activează
și acț iunea de click a butonului ascuns “ uploadfile ”
Dacă includem fi șierul jQuery.UI dispunem ș i de widget -uri. Aceste widget -uri
îmbuna tățesc aspectul general al aplicației ș i pun la dispozi ție elemen te care in mod
normal trebuie să dedici foarte multe resurse si le poți folosi doar cu apelul unei singure
metode.
28
Widget Datepicker
Sintaxă : datepicker();
Semantică : define ște carac teristicile unui datepicker
Exemplu:
Rezultat:
Fig: 2.16
29
Capitolul III
Php, Smarty ș i structura MVC
PHP
Este un limbaj de scripting încoporat – HTML. O mare parte din sintaxa ei este
împrumutat ă de la C, Java, si Perl, cu o pereche de caracteristici unice. Scopul limbajului
este de a permite dezvoltarea web pentru a scrie pagini generate dinamic repede. PHP
vine de la Hypertext Preprocessor . Aplicaț ia foloseste PHP5 de la care modelul de
obiecte a fost rescris pentru a permite o mai buna performanță si mai multe caracteristici
acest lucru find cea mai majoră schimbare de la PHP4 la PHP5. Printre alte caracteristici
în PHP5 sunt inclu ziunile de vizibilitate, clase ș i metode finale si abstracte, int erfețe. PHP
tratează obiectele la fel ca referințe ceea ce în seamna ca fiecare variabila conține o
referința obiect mai degrabă dacât o copie a întregului obiect.
Exemplu de cod PHP inclus in fiș ier html:
Rezultat
Fig: 3.1
Conexiunea dintre PHP si SQL Server :
Pentru a putea folosi SQL Server în php este nevoie sa activă m extinderea
SQLSRV. Facem acest lucru adăugând î n fisierele DLL corespunzatoare î n directorul
PHP și specificând în php.ini ce extensie să folosească .
30
Pentru a știi ce DLL -uri av em nevoie trebuie să executăm comanda
phpinfo() în aplicația noastră pentru a afla ce versiune de PHP avem.
Exemplu:
phpinfo()
Rezultat:
Fig: 3.2 Versiunea php
Dupa acea downladam dll -urile necesare. Î n cazul acesta:
php_sqlsrv_55_ts.dll
php_pdo_sqlsrv_55_ts.dll
Mutăm dll -urile download -ate în directorul php ca în figura.
Fig: 3.3 Locatie dll -uri php
Iar in fiș ierul php.ini adăugă m cele 2 extensii ca in figura :3.3
Avantaje ale limbajului PHP :
încarca pagina cu o viteza mare, codul PHP ruleaza mai rapid dec ât ASP
deoarece se execută în propriul spațiu de memorie în timp ce ASP folosește
un server deasupra și o arhitectură bazată pe Com
31
în lucrul cu PHP cele mai multe instrumente legate de program sunt
software open source cum ar fi wordPress, deci este gratuit
hosting mai pu țin costisitor, un site construit î n php ar avea nevoie pentru a
rula doar un server Linux care este disponibil prin interme diul unui furnizor
de hosting fără costuri suplimentare
flexibilitate de baze de date, PHP este flexibil la conectivitatea cu o baza de
date. Se poate conecta la mai multe baze de date cel mai frecvent ar fii
MySQL dar noi în aplicaț ie folosim SQL Server
Structura MVC
În dezvoltarea de aplicații web este important să se facă separarea dintre logica
unei aplicații ș i interfa ța utilizator. Eficien ța acestei tehnici se evidențiază cel mai des în
cazurile în care programatorul ș i designerul nu sunt una si aceeași persoană .
Fig: 3.4 Model – View – Controler
Pentru acest lucru am folosit un model arhitectural numit MVC (Model -View –
Controller). Acest mo del este foarte folosit datorită faptului c ă izoleaz ă logica de business
față de interf ața care o vede utilizatorul. Elementele din Fig: 3.4 sunt explicate mai jos
Model . Model -ul mani pulează operațiunile logice și utilizarea informației
pentru a rezulta o formă ușor de ințeles. Acesta încapsulea za datele
specifice unei aplicaț ii și defineste logica si calculele care manipulează
acele date. Un obiect model poate avea o relaț ie de unu la unu sau unu la
mai mulți fața de alte obiecte model. În mod ideal, un obiect model nu ar
trebuii sa aive nici o legătură explicită cu un obiect de viz ualizare care
prezintă datele sale și permit utilizatorilor să modifice acele date. Obiectul
de tip model comunică cu restul aplicaț iei cu ajutorul utilizatorilor care în
interfața modifică datele cumincate p rin intermediul controler -ului și rezultă
în cre area sau actualizarea unui obiect model
View . Un obiect de tip view este un obiect într -o aplicație pe ca re utilizatorii
îl pot vedea . Un scop major al obiectului de tip view este de a afișa date
din obiectele de tip model ale aplicației. În ciuda acestui fapt obiectele de
tip view sunt de obicei decup late de obiectele de tip model într -o aplicaț ie
MVC. Din cauza faptului ca de obicei refolose ști si reconfigurezi obiectel e
de tip view aduc consistența î ntre aplica ții. Obiectele de tip view află despre
32
modi ficările datelor din model prin obiec tele controller ale aplicației ș i
comunic ă schimbarile facute de utilizator
Controller . Un obiect de tip controler acționează ca intermediar î ntre unu
sau mai multe obiecte de tip view ș i sau una sau mai multe obiecte de tip
model. Astfel obiectele de tip controller sunt conducta prin care obiectele
de tipul view vă d modif icările din model. O biectele de tip controller pot și
performa modificări la configurare ș i pot coordona sarcini p entru o aplicație
și gestionează ciclurile de viața ale altor obiecte. Comunicare : un obiect
controller interpreteaz ă acțiunile utilizatorilor f acute in obiectele de tip view
și comunica datele noi catre model. Când obiectele de tip model se
schim ba, un obiect controller cumincă noile date catre obiectul de tip view
pentru a fii afișate.
Smarty
Un astf el de model arhitectural folosește ș i framework -ul ales de mine și anume
Smarty. Smarty este un motor de template pentru PHP, facilitând separarea de
prezentare (HTML/CSS) din logi ca de aplicare .
Smarty compileaza exemplare ale șabloanelor ca script PHP . Compilarea se
întampla o dată, atunci cand f iecare șablon este mai întâi invocat ș i apoi versiunile
compilate sunt folosite din acel moment. Smarty are grija de acest lucru, astfel încât
proiec tantul șablonului editeaza doar modelele smarty și nu este nevoie sa modifice
versiunile compilate. Aceast ă abordare ține șabloanele ușor de intreț inut si totuși
păstreaza rapiditatea execuției. Deoarece versiunile compilate sunt PHP, accelerat orii
op-code cum ar fi APC sau ZendCache continu ă să lucreze la script -uri compilate. Deși
Smarty te izoleaza de PHP aveți în continueare posibilitatea să -l folosiți în anumite
moduri. Securitatea șablon forțeaza restrangerea PHP. Acest lucru este util dacă aveți alt
software care editeaza șabloanele și nu vreți sa dezlănțuiț i puterea deplină a PHP
Smarty.
Pașii de efectuat pentru Instalare Smarty :
1. Se pregăte ște folderul unde vei începe proiectul . În cazul de față este
D:\Proiect \Licenta \libs
2. Se descarc ă fișierele Smaty. De la adresa www.smarty.php.net .
3. Din fiș ierul descarcat extragem fișierele compresate și le mută m în folder
D:\Proiect \Licenta \libs
33
4. Creăm două foldere in D:\Proiect \Licenta numite “template” si “template_c”
și in final trebuie sa reiasă o structură similară cu această imagine
Fig: 3.5 Structura smarty
În fiecare fisier de tipul php trebuie adaugate linia de cod :
require 'Smarty/libs/Smarty.class.php' ;
Linia ace asta ne permite sa folosim funcț ii din fișierul Smarty.class.php și primul
lucru care vrem s ă îl folosim este :
$smarty = new Smarty;
În momentul acesta am creat un obiect de tip smarty. Cu ajutorul acestui obiect
putem chema ce fișier .tpl putem deschide (șablonul care va fi afișat utilizatorului) folosind
linia:
$smarty->display( 'test.tpl' );
Și putem asocia diferite valori unor variabile la alegere. Valorile asociate pot fii de
diferite feluri de exemplu :
Pentru a accesa o variabila trimisa de smarty catre șablon folosim {} și in interiorul
parantezelor punem variabila care vrem s ă o folosim. Daca vrem să scriem diferite
instrucți uni in șablon suntem obligați să folosim si ntaxele folosite de smarty. O să enum ăr
câteva sintaxe utilizâ nt variabilele transmise mai sus :
34
Rezultat:
notificationMsg = este mesajul care este afisat;
notificationType = este tipul de mesaj (eroare, succes)
notification = este un template generat in functie de tipul mesajului:
Fig: 3.6
Smarty foreach
Sintaxă : {foreach from=$myarray key=”myKey” item=”myitem” }
Semantica: parcurge un sir de elemente $myarray
Exemplu:
{foreach from $formular key=k item=v}
{$k}: {$v} <br/>
{/foreach}
Rezultat:
o sa afișeze pe un r ând nou fiecare valoare din vectorul formular sub
forma cheie: valoare ;
Se pot creea fiș iere pentru configurații care sa aibe extensia .conf , de preferat sa
se afle î n locul unde sunt descărcate și sursele pentru smarty în interiorul fisierului
“configs” ca în fig: 3.7
35
Fig:3.7 Smarty config
În interiorul fisierului putem scrie de exemplu linia :
pageTitle = "Hello, World"
După care folosim aceasta variabila in șabloanele noastre in felul urmator :
{config_load file="setting.conf"}
<html>
<head>
<title>{#pageTitle#}</title>
</head>
</html>
Ca și rezultat titlul paginii va devenii “Primaria Azuga ”.
Smarty pentru permite s epara PHP de HTML/CSS într -un mod eficient. Este 100%
gratis pentru folosire și per ansamblu un framework de încredere.
36
Capitolul IV
Adobe LiveCycle Designer
Software -ul A dobe LiveCycle Designer ne ajută să creem și să modelam
docume nte care combină prezentarea dinamica cu manipularea datelor XML sofisticate.
Designerul ne permite crearea ș abloanelor de tip pdf.
Fig 4.1 Adobe Livecycle Designer
37
In Adobe Livecycle Designer creem documente folosind XML. Software -ul ne ofer
posibilitatea sa scriem si simplu cod XML pentru a definii obiectele dar are si unele obiecte
deja create care le putem folosi
Exemplu:
Obiect button
Crear e:
Rezultat:
Fig: 4.1
38
Obiect Text F ield
Creare
Rezultat:
Fig: 4.2
Obiect Radio Button
Creare
Rezultat: Fig: 4.3
39
Lista de obiecte furnizate de că tre Adobe Livecycle Designer
Button;
Circle;
Date Field;
Decimal Field;
Flas Field;
Image;
Line;
Numeric Field;
Password Field;
Radio Button;
Table;
Text Field;
Signature Scribble;
Check Box;
Content Area;
Date/Time Field; Fig: 4.4 Obiecte
Signature Field;
Email Submit Button;
Image Field;
List Box;
Print Button;
Rectangle;
Subform;
Text;
Time Field;
Pentru stilizarea elementelor din Adobe LiveCycle Designer avem la dispozi ție 3
metode:
Modificarea tagurilor ș i atributelor din fi șierul xml.
Folos ind interfața interactivă furnizată de c ătre aplicație putem modifica
dimensiuni și poziționa elementele folosind mouse -ul
40
Folosind fereastra de
„Layout ” unde putem
modifi că coordonatele,
dimensiunea ș i altele
conform figurei Fig: 4.5
Fig:4.5 Layout
Adobe LivecycleDesigner asociaza fiecarui obiect pe care il folosim în document
o serie de event -uri unde putem specifica cum să se comporte un element din document
în diverse situa ții. Func ționalitatea obiectelor din form se poate definii folosind Javascript
sau FormCa lc. Pentru a a specifica o funcț ionalitate unui obiect trebuie sa deschidem
fereastra „ Script editor ” aceasta se gaseste în interiorul opț iunii „ Window ” din meniul
aplica ției.
Fig: 4.6 Script editor
41
În Fig : 4.6 este exemplificat cum arată parte din „ Script Editor ”. Se poate vedea că
este o listă de eventuri iar in faț a fiecarui event este calea elemetului la care vrem să îi
definim o func ționalitate. Î n cazul aceste se poate vedea c ă la event -ul de click obiectului
ii se specifică să acționeze î ntr-un anumit fel.
Comenzi Adobe Livecycle Desigener:
Comand a rawValue
Sintax ă: rawV alue – returnează valoarea elementului care o apelează
Semantică :
Exemplu:
Rezultat:
Fig: 4.7
Comanda messageBox
Sintax ă: xfa.host.messageBox( Mesaj, Titlu, Status, Butoane )
Semantică : – afișează o fereastră cu un mesaj
Mesaj = mesajul c are apare î n fereastra
Titlu = titlul ferestrei
Status = ce tip de fereastră să apară
o 0 = fereastră de eroare
o 1 = fereastră de atentionare
o 2 = fereastră care pune o intrebare
o 3 = fereastră de status
Butoane = ce combinație de butoane să apară în partea de jos a ferestrei
o 0= „OK”
o 1= „Ok”, „Cancel”
o 2= „Yes”, „NO”
42
Exemplu:
Rezultat:
Fig:4.8
Comanda addInstance
Sintax ă: instance Manager.addInstance()
Semantică : – adaugă o instanță identică cu cea care apelează comanda
Exemplu :
Rezultat:
Fig:4.9
Fig: 4.10
43
Comanda count
Sintaxă : instanceManager.count
Semantică : – returnează numărul de instanțe
Exemplu :
Rezultat:
Fig: 4.11
Când vrem să modifică m un element din interior ul altui element este necesar să
se scrie toata calea unde se afl ă elementul pe care vrem sa il modificam.
De exemplu:
Rezultat: La event -ul de click al elementului „Button7” se modifică valoarea
elemntului „telefon”.
Fig: 4.12 Fig: 4.13
În Adobe Livecycle Designer putem crea fisiere .js indipendente de „ ScriptEditor ”
unde putem crea func ții sau obicete Javascript pe care le putem folosii la even t-urile
obiectelor din document.
De exemplu creeăm un fiș ier numit „ global ” care să conțina o funcție care
returnează un obiect care să aibe ca proprietăț i toate elementele din document:
44
Acest lucru es te util in cazul in care foloseș ti un element al documentului in mai
multe situatii si la un moment dat trebuie mutat acel element. Dacă nu am avea acest
obiect care să rețină toate elementele documentului atunci in fiecare loc unde folosim
acel element trebuie sc himbat calea acestuia pe de altă parte dacă avem acest obiect
schimbăm calea î ntr-un singur loc.
45
Capitolul V
Structura aplicației “Primos ”
Primos este o aplicaț ie de gestionare online a documentelor cu stom ale acestuia.
Cu o interfața intuitivă și î n acela și timp m obile -friendly care face aplicația să fie o soluț ie
optim ă pentru a ține evidenț a documentelor.
Diagrama use -case:
46
Caracteristici ale aplicaț iei:
Documente custom î n format .pdf create în aplicaț ia Adobe livecycle
designer. Aceste do cumente permit utilizatorului să introducă date în
locuri specifice sau să importe fisiere .x ml generate de aplica ția
„Primos ”;
Liste ale documentelor introduse î n aplica ție. Listele sunt afisate diferit
în func ție de tipul de utilizator care doreș te să le vizioneze. Acestea
beneficiaz ă și de filtre pentru o mai bună gestionare a acestora;
Statistici pentru toate documentele introduse in aplicaț ie.
Aplicaț ia ține la curent utilizatorul asupra documentelor introduse în
aceasta. Acest lucru este posibil prin trimiterea emai l-urilor c ătre
utiliaz ator la fiecare modificare a documentului pe care la introdus
Pași efectua ți pentru finalizarea aplicaț iei:
– Crearea documentelor custom de tip .pdf ;
– Configurarea bazei de date și conexiunea acestuia cu PHP;
– Generarea fi șierelor .xml atribuite fiecarui utilizator
– Configurare PHP pentru a trimite mail -uri;
– Crearea rapoartelor ;
Crearea documentelor de tip .pdf
Documentele .pdf care sunt folosite in aplicatie mai sunt denumite pdf -uri
inteligente. Au ace aste denumire datorita capacitaț ii lor de a interac ționa cu utilizatorul.
Aceste documente sunt generate de c ătre Adobe livecycle Designer. Aceasta generează
documente de tip pdf dintr-un fisier .xml.
Avem 2 tipuri d e documente in aplicaț ia Primos :
– Cereri;
– Plângeri;
47
Exemplu cerere:
Fig: 5.1 Cerere autorizare comert stradal
48
Toate documentele din aplica ție au 2 func ționalită ți elementare:
-butonul „ import XML ”. Când se dă click pe acest buton apare o fereastră
de unde ne alegem fi șierul XML pe ca re dorim sa îl importăm. În acest fiș ier se reg ăsesc
informa țiile pe care utilizatorul le -a introdus atunci cand acesta s -a înregistrat in aplicaț ie.
Dupa ce se al ege fisierul se poate observa că î n document la anumite campur i se adaugă
informa ții. Acest luc ru se face in felul urmă tor:
Pentru fiecare ele ment al documentului se parsează fișierul .xml importat unde se caută
valoarea corespunză toare elementului. Dac ă acesta nu se ragă sește în fișierul .xml
atunci valoarea elementului din document va fi un stri ng gol.
-butonul „ Validare si generare XML ”. Câ nd se d ă click pe acest buton se
verific ă fiecare element al documentului în parte dacă a fost completat. Pentru fiecare
element al documentului se genereaza un mesaj dife rit in funcție de condiț iile de
completare al e acestuia. Daca mesajul depășește o anumită dimensiune se va afisa doar
o parte din acesta dar se atasează documentului un fișier .txt în care se află toate
mesajele de eroare care au fost generate. Acest lucru se face in felul urm ător :
49
Dupa ce se verifică toate elementele documentului se genereaz ă un fisier .xml si apoi se
atașează de document.
Exemplu:
Atunci cand documentul genereaza un xml acesta verific ă dacă mai are atașat un alt fiș ier
xml generat de el sau un fișier unde erau afiș ate mesajele de eroare.
Atunci cand se genereaza xml toate campurile din document trebuiesc s ă fie completate
altfel se generează mesaj de eroare.
50
Configurarea bazei de date ș i conexiunea acestuia cu PHP
O baza de date est e o colecț ie de d ate centralizate, create si menținuta
cumputerizat, î n scopul pre lucrarii datelor dintr -o aplicaț ie. Prelucrarea datelor se referă
la operaț iile de:
Ștergere;
Introducere;
Actualizare;
Interogare a datelor;
Diagrama bazei de date:
Fig: 5.2 Diagrama bazei de date
51
Semnificaț ia tabelelor :
Tbl_user → tabela cu toț i utilizatorii;
Tbl_usertype → tabela cu tipul de utilizatori;
Tbl_userX usertype → tabela care face legătura dintre tbl_user ș i
tbl_usertype;
Tbl_form →tabela cu formularele introduse;
Tbl_form → tabela cu tipul formularelor;
Pentru ca PHP să recunoască comenzile de SQL Server trebuie realizată
conexiunea dintre acestea. Pentru a face acest lucru este necesar sa adaugam la actuala
versiune de php dll -urile necesare. După down ladarea dll -urilor mai trebuie specificat în
configurația php -ului anume î n php.ini s ă se folosească aceste dll -uri ca extensie. În cazul
nostru in felul urmă tor:
După care am creat o instanță a conexiunii cu baza de date astfel:
Datele folosite pentru a ne co necta cu baza de date le gasim în fisierul config.php
în felul urmator:
Generarea fisierelor .xml atribuite fiecă rui utilizator
Atunci cand se î nregistreaza un utilizator sunt 2 panouri pe care utilizatorul le poate
umple cu date. Fieca re infor mație pe care utilizatorul o pune î ntr-unul d in cele 2 panouri
este procesată și apoi introdusă într -un fiș ier de tip .xml.
52
Exemplu:
Rezultat:
Fig: 5.3
Numele fisierului .xml creat este id -ul utilizatorului proasp ăt introdus î n baza de
date la urma căruie se adaugă un string „Xml”. Apoi fiș ierul este salvat în structura
aplicaț iei de unde poate fi accesat oricâ nd.
Acest fișier .xml este folosit atunci când doreș ti să se autoc ompleteze un document
al aplicației importâ nd un fi șier .xml.
Aplica ția „Primos ” ofera posibilitatea să downladati fieș ierul .xml din acelasi loc de
unde downlada ți și documentele custom ale aplicaț iei.
Configurare PHP pentru a trimite mail -uri
Un aspect important al aplica ției este fap tul ca trimite mail c ătre utilizator.
Utilizatorul primeș te mail de confirmare atunci cand își crează un cont apoi primește mail –
uri în legatură cu statusul documentelor pe care acesta le -a introdus in aplicaț ie.
Pentru a realiza acest lucru am creat un f ișier .php unde am introdus urm ătorul
cod:
53
Se crează o clasa „ Mailer ” unde î n constructor definim ce caracteristici standard are mail –
ul cum ar fi: hostul, tipul de date , adresa care trimite mail -ul. În clasa mai sunt definite 4
metode:
SendMail → câ nd se apelează aceasta metodă se consideră ca toate
datele mail -ului sunt finalizate ș i acesta este trimis;
setTo (o adresa ) → aceast ă metodă seteaza ca adresa la care se trimite
mailul sa fie cea care este dată ca parametru;
setSubject (subiec t) → aceasta metod ă setează ca subiectul mail -ului
sa fie parametrul subiect;
setMessage (mesaj) → setează ca mesajul trimis in mail sa fie
parametrul dat metodei;
54
Exemplu trimitere mail:
Rezultat:
Fig: 5.4 Mail trimis de aplicaț ie
Crearea rapoartelor
Pentru a crea rapoarte folosesc plu ginul charts.js. Acesta ma ajută să realizez
imagini grafice care s ă evidenț iez starea documentelor.
Pași efectuaț i pentru crearea rapoartelor:
Pasul 1 este de a crea un q uerry care sa returneze informațiile pe care dorim să
le afi șăm:
Pasul 2 este trimiterea informațiilor primite din querry că tre template folosind
smarty.
55
Pasul 3 este afișarea informaț iilor primite de la smarty:
56
Rezultat:
Fig: 5.5 Statistici pentru cereri
57
Capitolul V I
Ghidul aplicaț iei
Aplica ția Primos este destinată mai multor tipuri de utilizatori. În acest capitol vom
prezenta funcționalităț ile posibile pentru fiecare t ip de utilizator:
cetățean
angajat
admin
Pagina de Înregistrare
Pagina de î ntregistrare este disponibila pentru toate tipurile de utilizator. Este
necesar ca un utilizator sa fie î nregis trat pentru a beneficia de funcționalităț ile tipului sau
de utilizator . Pentru a ajunge la pagina de î nregistrare trebuie selectata opț iunea
„Inscriere ” din meniu dupa care apar panourile din Fig: 6.1
Fig: 6.1 Pagina inregistrare
Fiecare utilizator care se inscriere din aceasta pagina o sa fie categorisit ca și
utilizator de tipul cetăț ean.
58
Cetăț ean
Un utilizator clasificat ca ș i cetățean dispune de urmatoarele opț iuni:
– depunere cerere
– depunere plâ ngere
– vizualizare cereri depuse
– vizualizare plâ ngeri depuse
Depunere documente
Pentru ca un cetățean să depuna orice tip de d ocument acesta trebuie sa aleagă
tipul de document pe care doreș te dupa care apare un ecran asemanator cu Fig: 6.2
Fig: 6.2 Pagina descarcare/î ncarcare document
În acest ecran sunt furnizate instruc țiuni de completare a documentului și de
asemenea instrucț iunile pentru a depune documentul dupa c e acesta a fost completat.
Vizualizare documente
Dupa ce un utilizator a depus un document acesta poate va primi pe mail informaț ii
privind star ea în care se afla documentul dar in acela și timp are și posibilitatea să
monitorizeze starea docum entelor trimise de acesta accesând una din opț iunile posibile
din meniu: „ Cererile mele ” sau „ Plangerile mele ”. Accesând una din aceste opț iuni se va
deschide o pagina asemanatoare Fig: 6.3.
59
Fig: 6.3 Listă cu cererile facute de utilizator
Anga jat
Un utilizator este clasificat ca si angajat daca adminul alege utilizatorul din
lista de persoane inscrise si il clasifica pe acesta ca si angajat. Un utilizator clasificat ca
si angajat dispune de urmatoarele optiuni:
– gestionare lista de cereri
– gestionare l ista de plangeri
– vizualizare statistici
Gestionare listî cereri
Utilizatorul accesează pagina unde se afl ă lista de cereri accesând opț iunea „ Lista
cereri ” din meniu. Pagina „ Lista cereri ” are ca și corespondent Fig: 6.4
Fig: 6.4 Listă cereri vazută de angajat
60
Utilizatorul vizualizează î n aceasta pagina o lista cu toate cererile depuse. Acestă
listă are urmatoarele op țiuni de filtrare:
– tipul cereri;
– nume persoana;
– status cerere;
– Data de înregistrare s ă aparțină intervalului Data i nceput ș i Data sfarsit
Pentru fiecare document din lista utilizatorul poate efectua oricare din ac țiunile:
– Descarc ă document;
– Acceptă document;
– Resping e document (trebuie specificat ș i motivul respingerii);
Gestionare list ă plangeri
Utilizatorul acceseaza pagina unde se afla lista de plangeri accesând opț iunea
„Lista plangeri ” din meniu. Pagina „ Lista plangeri ” are ca ș i corespondent Fig: 6.5
Fig: 6.5 Listă plangeri vazut ă de angajat
Utilizatorul vizualizeaza in aceasta pagina o lista cu toate plangerile depuse.
Acestă listă are urmatoarele opț iuni de filtrare:
– tipul plangerii;
– nume persoana;
– status plangere;
– Data de țnregistrare să aparțină intervalului Data inceput ș i Data sfarsit
61
Pentru fiecare document din lista utilizatorul poate efe ctua oricare din ac țiunile:
– Descarcă document;
– Rezolvare plangere;
Admin
Utilizatorii de tip admin sunt introdu și direct î n baza de date. Un utilizator de tip
admin dispune de urmatoarele op țiuni
– Gestionare listă utilizatori
Gestionare listă utilizatori
Utilizatorul accesează pagina unde se află lista de utilizatori accesâ nd op țiunea
„Lista utilizatori i” din meniu. Pagina „ Lista utilizatori i” are ca ș i corespondent Fig: 6.6
Fig: 6.6 Listă utilizatori
62
Administratorul vizualizează în această pagină o listă cu toți utilizatorii înregistraț i.
Acesta listă are urmatoarele opț iuni de filtrare:
– Nume persoan ă;
Pentru fiecare utilizator se poate alege doar un tip de user. Acest lucru se face
selectand unul dintre radio -uri
63
Bibliografie :
http:// www.smarty.net
http:// www.developer.apple.com
http://en.wikipedia.org
http://getbootstrap.com
https:// msdn.microsoft.com
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Autor: Vișean Răzvan -Constantin Coordonator științific : Conf .univ.dr. Sâ ngeorzan Livia Brașov 2015 2 Primos Brașov 2015 3 Cuprins [601321] (ID: 601321)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
