You are on page 1of 29

Ministerul Educaiei al Republicii Moldova

Universitatea Tehnic a Moldovei


Facultatea Calculatoare, Informatic i Microelectronic

Lucrare de curs
la disciplina:
ANALIZA PROIECTAREA I PROGRAMAREA OBIECT
ORIENTAT
Tema: Elaborarea unui system ticket

Elaborat: studenta gr. TI-122 Cotorobai Victor


Verificat: Lector superior Calin Rostislav

Chiinu 2015
Cuprins
Introducere -------------------------------------------------------------------------------------------------3
1. Sarcina tehnic ---------------------------------------------------------------------------------------------4
2. Tehnologii --------------------------------------------------------------------------------------------------5
2.1. Mediu de dezvoltare ----------------------------------------------------------------------------------5
2.2. Limbajul de programare PHP------------------------------------------------------------------------6
2.3. Utilizarea =-------- ------------------------------------------------------------------------------------6
3. Proiectarea sistemului informaional --------------------------------------------------------------------7
3.1 Descrierea Enterprise Architect i Rational Rose -------------------------------------------------7
3.2 Descrierea limbajului UML --------------------------------------------------------------------------7
4. Modelarea ---------------------------------------------------------------------------------------------------8
4.1 Diagrame Use case ------------------------------------------------------------------------------------9
4.2 Diagrame de secven -------------------------------------------------------------------------------10
4.3 Diagrama claselor ------------------------------------------------------------------------------------11
4.4 Diagrame de stare ------------------------------------------------------------------------------------12
4.5 Diagrame de activiti -------------------------------------------------------------------------------13
4.6 Diagrama de componente ---------------------------------------------------------------------------14
4.7 Diagrama de distribuie ------------------------------------------------------------------------------15
5. Prezentarea aplicaiei -------------------------------------------------------------------------------------17
Concluzie -------------------------------------------------------------------------------------------------------18
Bibliografie----------------------------------------------------------------------------------------------------- 19
Anexe

Introducere
Programarea orientat pe obiecte (OOP Object Oriented Programming) este tehnica cea mai
utilizat ncepnd cu nceputul anilor 90, cnd paradigmele sale principale au fost adoptate i dezvoltate
i de cele mai utilizate limbaje ale perioadei respective: C++, Pascal, Basic, Ada, Java, etc.
Programarea orientat pe obiect (Programare Orientat Obiectual) este unul din cei mai importani
pai fcui n evoluia limbajelor de programare spre o mai puternic abstractizare n implementarea
programelor. Ea a aprut din necesitatea exprimrii problemei ntr-un mod mai natural fiinei umane.
Astfel unitile care alctuiesc un program se apropie mai mult de modul nostru de a gndi dect modul
de lucru al calculatorului.
Pn la apariia programrii orientate pe obiect programele erau implementate n limbaje de
programare procedurale (C, Pascal) sau n limbaje care nici mcar nu ofereau o modalitate de grupare a
instruciunilor n uniti logice (funcii, proceduri) cum este cazul limbajului de asamblare (assembler).
Altfel spus o problem preluat din natur trebuia fragmentat n repetate rnduri astfel nct s se
identifice elementele distincte, implementabile ntr-un limbaj de programare. O mare problem a
programrii procedurale era separarea datelor de unitile care prelucrau datele (subrutinele), ceea ce
fcea foarte dificil extinderea i ntreinerea unui program. Astfel s-a pus problema ca aceste dou
entiti (date i subrutine) s fie grupate ntr-un anumit mod, astfel nct subrutinele s "tie" n
permanen ce date prelucreaz i, mai mult dect att, ele s formeze un modul, adic o unitate care
separ implementarea de interfa, ceea ce implic posibilitatea refolosirii codului.

- Conceptele de baz ale programrii orientate pe obiecte:

- obiectul: o instan a unei clase;

- abstractizarea: este posibilitatea ca un program s ignore unele aspecte ale informaiei pe care o
manipuleaz, adic posibilitatea de a se concentra asupra esenialului. Este procesul prin care se identific
i se rein numai caracteristicile eseniale ale realitii modelate. Cel mai des, abstractizarea este ntlnit
atunci cnd obiectele cu aceleai atribute i acelai comportament sunt grupate n tipuri abstracte numite
clase. Clasele sunt reprezentri (modele) abstracte, conceptuale ale unor entiti;

- clasa: descriere a unei multitudini de obiecte cu aceleai atribute i metode;

- ncapsularea (ascunderea de informaii);


3

- motenirea: extinderea unei clase ;

- polimorfismul: este abilitatea de a procesa obiectele n mod diferit, n funcie de tipul sau de clasa
lor. Mai exact, este abilitatea de a redefini metode pentru clasele derivate.
- persistena: descrie durata de via a unui obiect n raport cu aplicaia ce l-a creat.

1 Sarcina tehnic
Mai jos sunt descrise cerinele aplicaiei elaborate. i anume sunt enumerate funcionalitile oferite
de sistem i constrngerile care sunt generate.
Cerinele funcionale ale aplicaiei
Specificaiile interfeei:
Pagina home index.php
Logarea pe platform
Adaugarea ticket
Cerinele business:
Tastarea butonului Send A New Ticket va cere vizualizarea formei de adaugare ticket
Tastarea butonului login va trimite spre server o cerere de a fi logat.
Utilizatorul trebuie sa fie informat de lipsa evenimentelor
Cerinele non-funcionale ale aplicaiei
Performana timpul de rspuns la tastarea butoanelor nu trebuie sa fie mai lung decit 1 sec.
(depinde de setarea serverului)
Obiectivele:
Obiectivul de baz al sistemului este de a elabora un system de ticketare care pune la dispozi ia
utilizatorului o interfa simpl i original.

Obiective tehnice:
4

Aplicaia trebuie s fie realizat pentru toate browserurile


Limbajul utilizat este PHP i MYSQL

2. Tehnologii
2.1 Mediu de dezvoltare Dreamweaver
IDE-ul este dreamweacer de la Adobe, aceasta putnd fi gsit pe saitul official adobe.
Descrierea dreamveawer

Figura 1 Interfaa Dreamweaver


Imaginea de mai sus reprezint interfaa dreamweaver. Ca s in elegem mai bine, vom lua pe rnd
toate partile acesteia.
Aceasta interfa dispune de:
-

A. Menu bar (application bar)


5

B. Document toolbar

C. Document window

D. Designer/Coder selector

E. Insert panel

n spaiul de navigare se poate de organizat, tria i gsi usor fisierele de care avem nevoie in timpul
lucrului la o aplicaie. Tot in aceasta parte, putem folosi i butonul de cutare printre fisierele existente
- tine de accesibilitatea proiectelor si a fisierelor si subfisierelor in dezvoltare sau terminate.

n spaiul de editare aici se scriu toate codurile ce duc la dezvoltarea unei aplicatii. Aceasta parte
dispune si de optiunea de a ajusta in modul dorit de tine interfata spatiului de editare. Acest spatiu se
transforma intr-o platforma de editat designul cand suntem in interfata builder view. Sunt multe
scurtaturi prin care poti cauta un anumit cod sau o definitie dupa o clasa anume, ajungand direct la ea
prin triere.
Spaiul de depanare este folosita cel mai des, pentru a gasi problemele aplicatiei si pentru a lucra
la indepartarea lor.
Bara de instrumente acest spatiu ofera posibilitatea de a deschide aplicatia in stimulator, si tot aici
avem si butoanele editorului, unde putem cauta si deschide alte coduri, impreuna cu butonul de
organizare.
2.2 Limbajul de programare PHP

PHP este un limbaj de programare. Numele PHP provine din limba englez i este un acronim
recursiv : Php: Hypertext Preprocessor. Folosit iniial pentru a produce pagini web dinamice, este folosit
pe scar larg n dezvoltarea paginilor i aplicaiilor web. Se folosete n principal nglobat n
codul HTML, dar ncepnd de la versiunea 4.3.0 se poate folosi i n mod linie de comand (CLI),
permind crearea de aplicaii independente. Este unul din cele mai importante limbaje de programare
web[2] open-source i server-side, existnd versiuni disponibile pentru majoritateaweb serverelor i pentru
toate sistemele de operare. Conform statisticilor este instalat pe 20 de milioane de site-uri web i pe 1
milion deservere web[3]. Este disponibil sub Licent a PHP s i Free Software Foundation l consider a fi un
software liber.
Iniial, limbajul a fost dezvoltat de inventatorul su, Rasmus Lerdorf. Odat cu creterea numrului de
utilizatori, dezvoltarea a fost preluat de o nou entitate, numit The PHP Group (Grupul PHP).
6

2.3 Utilizarea
PHP este simplu de utilizat, fiind un limbaj de programare structurat, ca i C-ul, Perl-ul sau
ncepnd de la versiunea 5 chiar Java, sintaxa limbajului fiind o combinaie a celor trei. Datorit
modularitii sale poate fi folosit i pentru a dezvolta aplicaii de sine stttorare, de exemplu n
combinaie cu PHP-GTK sau poate fi folosit ca Perl sau Python n linia de comand. Probabil una din cele
mai importante faciliti ale limbajului este conlucrarea cu majoritatea bazelor de date relaionale, de
la MySQL i pn la Oracle, trecnd prin MS Sql Server, PostgreSQL, sau DB2.
PHP poate rula pe majoritatea sistemelor de operare, de la UNIX, Windows, sau Mac OS X i poate
interaciona cu majoritatea serverelor web. Codul dumneavoastr PHP este interpretat de serverul WEB i
genereaz un cod HTML care va fi vzut de utilizator (clientului -browserului- fiindu-i transmis numai
cod HTML).
Arhitectura tip LAMP a devenit popular n industria web ca modalitate rapid, gratuit i integrat de
dezvoltare a aplicaiilor. Alturi de Linux, Apache i Mysql, PHP reprezint litera P, dei uneori aceasta se
refer la Python sau Perl. Linux ocup rolul de sistem de operare pentru toate celelalte aplicaii, MySQL
gestioneaz bazele de date, Apache are rol de server web, iar PHP are rol de interpretator i comunicator
ntre acestea.
PHP foloseste extensii specifice pentru fiierele sale: .php, .php3, .ph3, .php4, .inc, .phtml. Aceste fiiere
sunt interpretate de catre serverul web iar rezultatul este trimis n form de text sau cod HTML ctre
browser-ul clientului.

3 Proiectarea sistemului informaional


Modelarea sistemului dat fost elaborat n istrumentul Rational Rose si Enterprise Architect. S-a ales
instrumentele date, deoarece este simplu, uor de utilizat i comunicabil cu utilizatorul.
3.1 Descriere Enterprise Architect i Rational Rose
Enterprise Architect este un software de tip CASE pentru design-ul i construcia sistemelor software,
bazat pe UML. Acest pachet prevede modelarea complet a ciclului de via pentru afaceri i sisteme IT ;
software i ingineria sistemelor i integrarea dezvoltrii n timp real.
Integrnd capacitile de gestionare a cerinelor, Enterprise Architect ajut la urmrirea
specificaiilor la nivel nalt pentru analiza, proiectarea, implementarea, testarea i ntreinerea modelelor
folosind UML.
7

Enterprise Architect este un instrument grafic, proiectat pentru a ajuta echipele, construind sisteme
robuste i ntreinute. Utiliznd calitatea nalt, integrarea raportrii i documentrii poate oferi o viziune
mprtit cu uurin i precizie.
Rational Rose este un instrument care ofer suport pentru dou elemente eseniale n abordarea
modern a unui proiect software: dezvoltare bazat pe componente i controlul dezvoltrii iterative. Dei
aceste elemente sunt conceptual independente, folosirea lor mpreun este natural i benefic.

3.2 Descrierea limbajului UML


Unified Modeling Language (prescurtat UML) este un limbaj standard pentru descrierea de modele
i specificaii pentru software. Limbajul a fost creat de ctre consoriul Object Management Group
(OMG) care a mai produs printre altele i limbajul de programare CORBA. UML a fost la baz dezvoltat
pentru reprezentarea complexitii programelor orientate pe obiect, al cror fundament este structurarea
programelor pe clase, i instanele acestora (numite i obiecte). Cu toate acestea, datorit eficien ei i
claritii n reprezentarea unor elemente abstracte, UML este utilizat dincolo de domeniul IT. Aa se face
c exist aplicaii ale UML-ului pentru management de proiecte, pentru business Process Design etc.
Prima versiune de UML, UML 1.0, a aprut n anul 1990 ca reac ie a numeroaselor limbaje de
modelare propuse pe pia. UML i are ca fondatori pe Grady Booch, Ivar Jacobson i James Rumbaugh,
aa numiii cei trei Amigos. Ei au dezvoltat limbajul bazndu-se inclusiv pe limbaje de modelare deja
existente, ns incomplete ca gam de funcionaliti. Printre acestea se numr i OOSE, RDD, OMT,
OBA, OODA, SOMA, MOSES i OPEN/OML.
Dezvoltarea versiunii 2 a UML a nceput n anul 1999 atunci cnd OMG a publicat un request for
information referitor la UML 2. De atunci, UML s-a aflat ntr-un continuu ciclu de mbunt ire, astzi
ajungnd la varianta UML 2.4.1 (publicat n august 2011).
Analiza unei aplicaii implic realizarea mai multor categorii de modele, dintre care cele mai
importante sunt:
Modelul de utilizare. realizeaz modelarea problemelor i a soluiilor acestora n maniera n
care le percepe utilizatorul final al aplicaiei. Diagram asociat: diagram de cazuri de utilizare
Modelul structural: se realizeaz pe baza analizei statice a problemei i descrie proprietile
statice ale entitilor care compun domeniul problemei. Diagrame asociate:diagram de module,
diagram de clase
Modelul comportamental: privete descrierea funcionalitiilor i a succesiunii n timp a
aciunilor realizate de entitile domeniului problemei. Diagrame asociate: diagrama (harta) de stri,
diagrama de colaborare, diagrama de interaciune
3.3. Diagramele UML
O diagrama ofera utilizatorului un mijloc de vizualizare si de manevrare a elementelor de Modelare.
Majoritatea diagramelor se prezinta sub forma unor grafuri, compuse din elemente si arce.
Diagramele pot arata o parte sau toate caracteristicile elementelor de modelare, conform nivelului de
detaliu util n contextul unei diagrame date. Diagramele pot grupa informatii interdependente, pentru a
8

arata, de exemplu caracteristicile mostenite de o clasa. Diagramele UML sunt:

Diagrama cazurilor de utilizare (diagrama precedentelor)


Diagrama de interactiune
o Diagrama de secven
o Diagrama de colaborare
Diagrama de clas
Diagrama de comportament
o Diagrama de stare
o Diagrama de activiti
Diagrama de componente
Diagrama de amplasare

4 Modelarea unui SYSTEM TICKET


n para graful respectiv vor fi reprezentate tipurile de diagrame UML specifice unui TICKET. n urma
reprezentrii grafice a diagramei, urmeaz descrierea fiecrei diagrame n parte.
4.1 Diagrame Use case
Cazurile de utilizare sunt abstracii ale dialogului ntre actori i sistem. Ele descriu

interaciuni

poteniale fr a intra n detalii ale fiecrui scenariu.


Diagrama cazurilor de utilizare prezint aciunile reciproce dintre variantele posibile de utilizare i
personaje sau sisteme. Diagramele reflect cerinele fa de sistem din punctul de vedere al utilizatorului.
n aa mod cazurilor de utilizare sunt funciile efectuate de sistem, iar persoanele sunt persoane
cointeresate de sistemul elaborate.
Urmtoarea diagram reprezint cazuri de utilizare a actorului utilizator.
n Figura sunt descrise cazurile de utilizare a aplicaiei de ctre utilizator. Dup ace aplicatia este
accesata, utilizatorul are posibilitate sa vizualizeze ticket-ul si evenimentele prezente n el. De asemenea,
in timpul vizualizrii evenimentelor n timp, exista posibilitatea de a selecta evenimentul. Prin tastarea
butonului Home, aplicaia este parasit.

Figura 1.1 Diagrama use case a utilizatorului

n Figura 1.1 de mai jos, sunt reprezentate cazurile de utilizare pentru vizualizare pagini principale.

10

Figura 1.2 Diagrama use case a cazului de a scrie un ticket

4.2 Diagrame de secven


Diagramele de secven prezint interaciunile care au loc ntre diverse obiecte ale unui sistem,
ordonate cronologic. Ele determin obiectele i clasele implicate ntr-un scenariu i secvenele de mesaje
transmise ntre obiecte, necesare ndeplinirii funcionalitii scenariului. Diagramele de secven sunt
asociate unui caz de utilizare.
Fiecrui obiect, clas i corespunde o linie a timpului, reprezentat printr-o linie punctat sub
reprezentarea obiectului. Mesajele transmise ntre obiecte sunt reprezentate prin sgei etichetate cu
numele mesajului. n diagramele respective interaciunile dintre legturi i obiecte sunt reprezentate n
evoluia lor n timp.

11

Figura 1.3 Diagrama de secven a ticketului


n diagrama de secven este reprezentat interaciunea dintre utilizator i aplicaie n timp. i anume
sunt reprezentate aciunile posibile i funcionalitile aplicaiei.
Dup ce utilizatorul acceseaz aplicaia, el este ntlnit cu meniul principal al sistemulu. Dup care,
are posibilitate s selecteze Send A New Ticket pentru a forma o cerere.

4.3 Diagrama claselor


Diagrama claselor definete modelul structural al unui sistem prin intermediul unui graf, ale crui
noduri (vrfuri) reprezint clasele, iar arcele reprezint legturile dintre clase.
Administrarea utilizatorilor din cadrul unui sistem informatic actual este destul de important. Cu ct
sistemul dat este vizitat de mai muli vizitatori, utilizatori, cu att crete rata utilizrii acestui produs
informatic. n prezent se cunoate faptul c utilizatorii sunt primii clieni, utilizatori finali ai acestor
sisteme complexe. De multi ori nregistrarea pe anumite sisteme este destul de impuntoare, dar odat
nregistrat ntr-o limit de acces sunt posibile funcionaliti de baz a sistemului.
12

Figura 1.4 Diagrama claselor general a aplicaiei


n UML un obiect se reprezint printr-un dreptunghi mprit n dou compartimente:
compartimentul de nume i compartimentul de atribute. Numele obiectului se subliniaz i poate fi urmat
de numele clasei (desprite prin semnul :). Sunt admise i notaii simplificate (numai numele obiectului
sau numai numele clasei precedat de semnul :). n compartimentul de atribute se trec numele atributelor
i valorile acestora.

4.4 Diagrame de stare


Diagrama de stare - distribuie un mod de modelare variat a strilor n care un obiect poate exista. n
timp ce diagrma claselor arat imaginea static a claselor i relaiilor dintre ele, diagrama de stare sunt
utilizate la modelarea comportamentul dinamic a sistemului.
Diagramele de stare sunt destinate pentru modelarea diferitor stri n care poate s se afle obiectul.
n timp ce diagrama claselor arat imaginea static a claselor i legturile lor, diagrama strilor se
13

folosete la descrierea dinamic a comportamentului sistemului. Diagrama de stare reflect


comportamentul obiectului. Principalele stri ale diagramei sunt: nceput i sfrit. nceputul grafic este
reprezentat ca un cerc plin de culoare neagr, i corespunde strii obiectului n momentul crerii. Starea
final se reprezint grafic prin dou cercuri unu n altul. Cel din mijloc este plin i de culoare neagr[1].
n figura de mai jos este reprezentat diagrama de stare a aplicaiei elaborate. Aici vedem toate
opiunile posibile cele opionale accesibile utilizatorului . Punctele de decizie sunt puncte din fluxul de
activiti n care se face o anumit alegere ntre mai multe variante posibile. Notaia utilizat pentru
punctul de decizie poate fi folosit i pentru reconectarea fluxurilor (merge point), aa cum se poate vedea
n figura de mai jos.

Figura 1.5 Diagrama de stare a aplicaiei

4.5 Diagrama de activiti


Diagrama de activiti reprezint o modalitate de modelare vizual a fluxurilor. Cu
14

ajutorul diagramelor de activiti pot fi modelate foarte bine use case-urile, dar, n aceeai msur, aceste
diagrame pot fi folosite pentru modelarea proceselor de business (fr legtur cu sistemul informatic). n
privina notaiilor, acestea sunt foarte asemntoare cu cele din diagrama de stari. Elementele utilizate
sunt descrise in continuare. O regul important este faptul ca o astfel de diagram trebuie s aib un
singur punct de nceput i unul de sfirit. Orice aciune este elementar i de obicei ea are o singur
intrare i o singur ieire. n cazul cind e necesar s existe mai multe intrri sau ie iri se utilizeaz
ramificatoarele.

Figura 1.6 Diagrama de activiti a aplicaiei

4.6 Diagrame de componente

15

Diagrama de componente n UML, termenul de component desemneaz un element software fizic din
componenta unui sistem. Astfel, o componenta poate fi: cod binar, document, fisier continand cod sursa
sau date, tabela a unei baze de date. O componenta binara este o parte fizica si substituibila a unui sistem,
care realizeaza si este in conformitate cu un set de interfete.
Diagramele de componenete sunt importante deoarece:
1. modeleaza sistemul software real in mediul de implementare;
2. evidentiaza probleme de configurare prin relatiile de dependenta;
3. reprezinta o imagine a sistemului existent, inainte de a fi modificat;
4. pot evidentia probleme de implementare fara a fi necesar sa se citeasca tot codul sursa

Figura 1.7 Diagrama componentelor sistemului


n diagrama respectiv sunt reprezentate componentele principale ale systemului.

4.7 Diagrama de distributie


Diagrama de distributie (Deployment diagrams)
Diagramele de distributie modeleaza echipamentele mediului de implementare. Fiecare nod dintr-o
diagrama de distributie reprezinta un tip de echipament: un PC client, un server, o unitate de disc, un
procesor. Un nod poate sa reprezinte de asemenea, o fiinta umana sau o organizatie, mai exact functia pe
care o persoana sau organizatie o poate executa.
Instanele componentelor soft reprezint manifestri a unor uniti de cod n cadrul execuiei.
16

Componentele care nu exist ca entiti de execuie nu apar n aceste diagrame, ci doar n diagramele de
component[3].
O diagram de exploatare este un graf de noduri conectate prin asocieri de comunicare. Nodurile
pot conine instane ale componentelor (componenta exist sau se execut pe nodul respectiv).
Componentele pot conine obiecte (acestea sunt localizate n componente).

Figura 1.8 Diagrama de distribuie a sistemului


Diagrama de mai sus reprezint distribuia sistemului. Utilizatorul va folosi de un browser pentru a se
conecta la server respective va vedea coninutul site-ului

17

5 Prezentarea aplicaiei
Pentru elaborarea aplicaiei avem nevoie de ide dreamweaver sau un simplu txt program. Desigur avem
nevoie de un localhost precum la mine este instalat Denwer care poate fi gsit pe Google.
n figura de mai jos, este reprezentat pagina principal a system-ului ticket.

Figura 1.9 pagina principal

18

Figura 2 Admincenter

Figura 2.1 Vizualizarea a tuturor ticketelor

19

Concluzie
n urma elaborrii acestei lucrri de curs, am avut ca scop s proiectez i s dezvolt o aplica ie
interactiv pentru web platforme
nainte de a ncepe dezvoltarea oricrei aplicaii este foarte important de a analiza i a stabili cerintele
funcionale i non-funcionale a aplicaiei. Aceste cerinte, usureaz munca programatorului si permite
elaborarea unui sistem competent i organizat.
De asemenea, n procesul de elaborarea o unui produs program, este esenial proiectarea sistemului
dat. Proiectarea este necesar in toate ramurile dezvoltrii aplicaiilor, deoarece doar n acest mod, putem
vizualiza schita, scopul i cerinele proiectului.
Pentru proiectarea aplicaiei am utilizat UML, deoarece este un limbaj standard pentru descrierea de
modele i specificaii pentru software i este folosit pe larg n domeniul IT. Modelarea UML a aplicaiilor
tinde s fie tot mai larg rspndit, asigurnd compatibilitate, posibiliti de inter-operabilitate, re-utilizare
a software-ului, i multe alte avantaje.
Ca instrument de proiectare am folosit Rational Rose si Enterprise Architect, aceste instrumente imi
sunt foarte apropiate i comode pentru proiectare.
n final pot spune c obiectivel plasate la nceputul proiectului au fost atinse.

20

Bibliografie
youtube & Google
SQL Antipatterns: Avoiding the Pitfalls of Database Programming (Pragmatic Programmers), Bill
Karwin, 2010

21

Anexa A
Codul surs
<?php
include 'admin/userLogin.php';
include 'html_config.php';
if ($isLogin)
{
$_key = $_COOKIE['login'];
$userinfo = $Login->getUserInfo($_key);
$userinfo = json_decode($userinfo);
if($userinfo->role == "user")
{
include ('header.php');
include ('menu.php');
include ('content.php');
include ('footer.php');
}
else
{
echo $head;
echo $startBody;
echo ' <div class="navbar navbar-inverse" style="position: static;">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".subnav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href=".">'.SITE_TITLE.'</a>
<div class="nav-collapse subnav-collapse">
<ul class="nav">
<li class="divider-vertical"></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Send A New Ticket
<b class="caret"></b></a>
<ul class="dropdown-menu paddingLR meDrop">
<li class="myForm pull-left">
<p></p>
<form class="form-inline navbar-search" action="newTicket.php" method="post"
name="newTicket" onsubmit="return IE1();">
<div class="control-group paddingLR">
<label class="control-label" for="">Email</label>
22

<div>
<input class="meIn" placeholder="Email" name="email"
type="email" required="required">
</div>
</div>
<div class="control-group paddingLR">
<label class="control-label" for="">Name</label>
<div>
<input class="meIn" placeholder="Name" name="name"
type="text" required="required">
</div>
</div>
<div class="control-group paddingLR">
<label class="control-label" for="">Lastname</label>
<div class="">
<input class="meIn" placeholder="Lastname" name="lname"
type="text" required="required">
</div>
</div>
<div class="meFloat">
<div class="control-group paddingLR">
<label class="control-label" for="">Department</label>
<div class="">
<select name="department" class="meIn meWidth">';
$get_option = file_get_contents("admin/moderatorRoles.txt");
$exp_get_option = explode("\n", $get_option);
foreach ($exp_get_option as $value)
{
echo '<option>'.trim($value).'</option>';
}
echo '
</select>
</div>
</div>
<div class="control-group paddingLR">
<label class="control-label" for="inputPassword">Priority</label>
<div class="">
<select name="priorety" class="meIn meWidth">
<option>Low</option>
<option>Normal</option>
<option>High</option>
<option>Very high</option>
</select>
23

</div>
</div>
<div class="control-group paddingLR">
<label class="control-label" for="inputPassword">Subject</label>
<div class="">
<input class="meIn" placeholder="Subject" name="subject"
type="text" required="required">
</div>
</div>
</div>
<div class="control-group paddingLR">
<label class="control-label" for="">Message</label>
<div class="">
<textarea class="myTextarea input-block-level meIn" rows="5"
name="message" placeholder="Message" required="required"></textarea>
</div>
</div>
<div class="control-group">
<div class="paddingLR">
<button type="submit" name="sendNewTicket"
class="btn">Send</button>
</div>
</div>
<div class="meFloat2" style="padding-top: 20px;">
<div class="control-group paddingLR"><!-- CAPTCHA -->
<label class="control-label" for="">CAPTCHA</label>
<div class="">
<img id="captcha" src="securimage/securimage_show.php"
alt="CAPTCHA Image" /><br/><br/>
<input class="inputblock-level meIn" type="text" required="required" name="captcha_code" size="10" maxlength="6" />
<a href="#"
onclick="return new_captcha();" style="padding-left: 0px;">[ Different Image ]</a>
</div>
</div>
<span class="pull-right" id="error" style="color: #F33; paddingtop:10px;"></span>
</div>
</form>
<p></p>
</li>
</ul>
24

</li>
</ul>
<div class="pull-right">
<form class="navbar-search" action="login.php" method="post" name="loginForm"
onsubmit="return IE();">
<input class="span3 input-block-level search-query" placeholder="Email"
name="email" type="email" required="required" onfocus="if(this.value == \'Email\') { this.value = \'\'; }"
onblur="if (this.value == \'\') { this.value=\'Email\'; }">
<input class="span3 input-block-level search-query" placeholder="Password"
name="password" type="password" required="required" onfocus="if(this.value == \'Password\')
{ this.value = \'\'; }" onblur="if (this.value == \'\') { this.value=\'Password\'; }" >
<button class="btn btn-success btn-large" style="margin-top:-1px;" type="submit"
name="login" class="btn">login</button>
</form>
</div>
</div><!-- /.nav-collapse -->
</div>
</div><!-- /navbar-inner -->
</div><!-- /navbar -->
<article class="container" style="margin-top: -18px;">
<section class="well well-small mePadd">
<h2 class="meFont"><span class="icon-check meMarg"></span>
'.DESCRIPTION_TITLE.'</h2>
<p style="padding-left: 10px; padding-right:10px;">'.DESCRIPTION.'</p>
</section><!--Description Ends -->
</article> ';
echo '<hr style="margin-top:0px;">
<footer class="pager" style="bottom:0px;">
<p>'.FOOTER.'</p>
</footer>';
echo $endBody;
}
}
else
{
echo $head;
echo $startBody;
echo ' <div class="navbar navbar-inverse" style="position: static;">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".subnav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
25

</a>
<a class="brand" href=".">'.SITE_TITLE.'</a>
<div class="nav-collapse subnav-collapse">
<ul class="nav">
<li class="divider-vertical"></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Send A New Ticket
<b class="caret"></b></a>
<ul class="dropdown-menu paddingLR meDrop">
<li class="myForm pull-left">
<p></p>
<form class="form-inline navbar-search" action="newTicket.php" method="post"
name="newTicket" onsubmit="return IE1();">
<div class="control-group paddingLR">
<label class="control-label" for="">Email</label>
<div>
<input class="meIn" placeholder="Email" name="email"
type="email" required="required">
</div>
</div>
<div class="control-group paddingLR">
<label class="control-label" for="">Name</label>
<div>
<input class="meIn" placeholder="Name" name="name"
type="text" required="required">
</div>
</div>
<div class="control-group paddingLR">
<label class="control-label" for="">Lastname</label>
<div class="">
<input class="meIn" placeholder="Lastname" name="lname"
type="text" required="required">
</div>
</div>
<div class="meFloat">
<div class="control-group paddingLR">
<label class="control-label" for="">Department</label>
<div class="">
<select name="department" class="meIn meWidth">';
$get_option = file_get_contents("admin/moderatorRoles.txt");
$exp_get_option = explode("\n", $get_option);
foreach ($exp_get_option as $value)
{
26

echo '<option>'.trim($value).'</option>';
}
echo '
</select>
</div>
</div>
<div class="control-group paddingLR">
<label class="control-label" for="inputPassword">Priority</label>
<div class="">
<select name="priorety" class="meIn meWidth">
<option>Low</option>
<option>Normal</option>
<option>High</option>
<option>Very high</option>
</select>
</div>
</div>
<div class="control-group paddingLR">
<label class="control-label" for="inputPassword">Subject</label>
<div class="">
<input class="meIn" placeholder="Subject" name="subject"
type="text" required="required">
</div>
</div>
</div>
<div class="control-group paddingLR">
<label class="control-label" for="">Message</label>
<div class="">
<textarea class="myTextarea input-block-level meIn" rows="5"
name="message" placeholder="Message" required="required"></textarea>
</div>
</div>
<div class="control-group">
<div class="paddingLR">
<button type="submit" name="sendNewTicket"
class="btn">Send</button>
</div>
</div>
<div class="meFloat2" style="padding-top: 20px;">
<div class="control-group paddingLR"><!-- CAPTCHA -->
27

<label class="control-label" for="">CAPTCHA</label>


<div class="">
<img id="captcha" src="securimage/securimage_show.php"
alt="CAPTCHA Image" /><br/><br/>
<input class="inputblock-level meIn" type="text" required="required" name="captcha_code" size="10" maxlength="6" />
<a href="#"
onclick="return new_captcha();" style="padding-left: 0px;">[ Different Image ]</a>
</div>
</div>
<span class="pull-right" id="error" style="color: #F33; paddingtop:10px;"></span>
</div>
</form>
<p></p>
</li>
</ul>
</li>
</ul>
<div class="pull-right">
<form class="navbar-search" action="login.php" method="post" name="loginForm">
<input class="span3 input-block-level search-query" placeholder="Email"
name="email" type="email" required="required" onfocus="if(this.value == \'Email\') { this.value = \'\'; }"
onblur="if (this.value == \'\') { this.value=\'Email\'; }" value="Email">
<input class="span3 input-block-level search-query" placeholder="Password"
name="password" type="password" required="required" onfocus="if(this.value == \'Password\')
{ this.value = \'\'; }" onblur="if (this.value == \'\') { this.value=\'Password\'; }" value="Password">
<button class="btn btn-success btn-large" style="margin-top:-1px;" type="submit"
name="login" class="btn">login</button>
</form>
</div>
</div><!-- /.nav-collapse -->
</div>
</div><!-- /navbar-inner -->
</div><!-- /navbar -->
<article class="container" style="margin-top: -18px;">
<section class="well well-small mePadd">
<h2 class="meFont"><span class="icon-check meMarg"></span>
'.DESCRIPTION_TITLE.'</h2>
<p style="padding-left: 10px; padding-right:10px;">'.DESCRIPTION.'</p>
</section><!--Description Ends -->
</article> ';
echo '<hr style="margin-top:0px;">
<footer class="pager" style="bottom:0px;">
<p>'.FOOTER.'</p>
28

</footer>';
echo $endBody;
}
?>

29