közösségi portál fejlesztése php és zend framework segítségével

Upload: timea-kovacs

Post on 04-Apr-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    1/40

    1

    Debreceni Egyetem

    Informatika Kar

    Kzssgi portl fejlesztse PHP s ZEND FRAMEWORK segtsgvel

    Tmavezet: Ksztette:Dr. Kuki Attila Piros Attila Sndor

    egyetemi adjunktus programtervez informatikus

    Debrecen

    2009.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    2/40

    2

    Ksznetemet fejezem ki elssorban Dr. Kuki Attila egyetemi adjunktus rnak,

    hogy felgyelte s tancsaival elsegtette dolgozatom elksztst, tovbb a

    Debreceni Egyetem Informatikai Kar tanrainak, hogy az vek sorn

    tapasztalt elktelezett munkjukkal hozzsegtettek az informatikai tudsom

    megszerzshez.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    3/40

    3

    Tartalomjegyzk

    1. Bevezets 4.

    2. Az oldal funkcionalitsa 7.

    3. Az oldal kialaktsa 10.

    3.1. A ZEND Framework belltsai 10.

    3.2. Modellek (Models) 11.

    3.2.1. Users 11.

    3.2.2. Groups 13.3.2.3. Forum 13.

    3.2.4. Forumview 15.

    3.2.5. Competition 16.

    3.3. Kontrollerek (Controllers) 16.

    3.3.1. IndexController 17.

    3.2.2. KezdolapController 17.

    3.2.3. AuthController 17.

    3.3.4. CsapattagokController 19.

    3.2.5. ElerhetosegekController 21.

    3.2.6. ForumController 21.

    3.2.7. VersenynaptarController 23.

    3.2.8. ModifyController 24.

    3.2.9. ErrorController 24.

    3.4.Nzetek(Views) 26.

    3.4.1. Auth 26.

    3.4.2. Index 26.

    3.4.3. Kezdolap 27.

    3.4.4. Csapattagok 27.

    3.4.4. Elerhetosegek 30.

    3.4.5. Forum 30.

    3.4.6. Versenynaptar 32.

    3.4.7. Modify 33.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    4/40

    4

    4. Kpek 34.

    5. sszefoglals 39.

    6. Felhasznlt technolgik,alkalmazsok 39.

    7. Irodalomjegyzk 40.

    8. Fggelk 40.

    1. Bevezets

    A szakdolgozatom a FNIX (gyorskorcsolya) egyeslet kzssgi portljnak kialaktst,mkdst, kialaktsnak lpseit mutatja be PHP s ZEND Framework technolgik

    segtsgvel.

    Elszr szeretnk emltst tenni a PHP illetve a ZEND Framework technolgikrl.

    A PHP (PHP: Hypertext Preprocessor) nylt forrskd, szmtgpes szkriptnyelv, legfbb

    felhasznlsi terlete a dinamikus weboldalak ksztse. Emiatt a PHP-t jrszt szerver-

    oldalon hasznljk, br ltezik parancssori interfsze is, illetve nll, grafikus fellet

    alkalmazsok is ltrehozhatak vele.

    A nyelvet eredetileg Rasmus Lerdorf alkotta meg 1994-ben, de a ma ltez egyetlen (s

    hivatalos specifikci hjn de factoszabvnny vlt) PHP implementcit mr a PHP Group

    tartja karban s fejleszti. A PHP a sajt licensze alatt kerl kiadsra, a Free Software

    Foundation gy szabad szoftverknt tartja szmon.

    A PHP a legtbb webszerverre, opercis rendszerre s platformra ingyenesen telepthet.

    Manapsg tbb mint 20 milli weboldal s egymilli szerver futtat PHP-t, br a nyelvet

    hasznl oldalak szma 2005 augusztustl kezdve folyamatosan cskken. A PHP emellett az

    Apache webszerver egyik legnpszerbb bepl modulja.

    A PHP oldalak elksztsnl a HTML-t gyakorlatilag csak mint formzst hasznljk,

    ugyanis ezen lapok teljes funkcionalitsa a PHP-re pl. Amikor egy PHP-ben megrt oldalt

    akarunk elrni, a kiszolgl elszr feldolgozza a PHP utastsokat, s csak a ksz (HTML)

    kimenetet kldi el a bngsznek, gy a programkd nem is lthat kliens oldalrl. Ehhez egy

    n. interpretert (rtelmezt) hasznl, amely ltalban egy kls modulja a webszervernek.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    5/40

    5

    A PHP nyelv lnyegben nagymrtk kiegsztse a HTML-nek, ugyanis rengeteg olyan

    feladat vgezhet el vele, amelyre az gyfloldali szkriptek nem kpesek (vagy ha igen,

    korltozottan). Ilyen pldul a bejelentkezs, az adatbziskezels, filekezels, kdols,

    adategyeztets, kapcsolatok ltrehozsa, e-mail kldse, adatfeldolgozs, dinamikus

    listakszts stb. Minden olyan esetben, ahol nagyszm ismtld feladatsort kell

    vgrehajtani (pldul kpek listzsa s linkelse, listakszts stb.), ott ez a programnyelv

    nagyszer segtsg.

    A PHP programok futhatnak kznsges (parancssori) programknt is, nem HTML oldalba

    ptve. Ezt azonban ritkn hasznljk. Ezen mdot sokszor weblapokkal kapcsolatos idztett

    folyamatok megvalstshoz alkalmazzk, mivel azonos programnyelven, azonosmegkzeltsi mdon hajthatk azok vgre.

    A Zend Framework egy nylt forrs, objektumorientlt webes keretrendszer, PHP 5-ben

    megvalstva s a New BSD License alatt terjesztve. A Zend Framework gyakran csakZF

    fejlesztsnek clja a webfejleszts megknnytse, s kzben kvetend gyakorlatok

    bevezetse a PHP kzssg kreibe. A ZF igny szerint hasznlhat felptse lehetv teszi a

    fejlesztk szmra, hogy jrahasznostsk az sszetevket amikor s ahol az alkalmazsukban

    rtelme van, anlkl, hogy egyb ZF sszetevket kvetelnnek a legalapvetbb

    fggsgeken tl. gy aztn nincs olyan fejlesztsi minta, amit a hasznlknak kvetnik kell,

    habr a ZF knl sszetevket a Modell-Nzet-Vezrl s a Tbla tjr programtervezsi

    mintkhoz, melyeket a legtbb ZF alkalmazs hasznl. A Zend Framework nll sszetevt

    nyjt sok ms, webalkalmazs fejlesztsekor gyakori kvetelmnyhez, belertve az

    azonostst s a jogosultsgkezelst hozzfrsvezrl listkon keresztl, alkalmazsbelltst,

    adatok gyorsttrazst, a felhasznlk ltal kldtt adatok szrst/ellenrzst a biztonsg

    s az adatok srtetlensge rdekben, nemzetkziestst, felleteket AJAX funkcikhoz,emailek sszelltshoz/kldshez, Lucene formtum keresjegyzkelst s -lekrdezst,

    illetve az sszes Google Data API-t, sok ms npszer webszolgltats mellett. Laza ktds

    tervezsk folytn a ZF sszetevit gyakran hasznljk ms PHP-s webes keretrendszerek

    sszetevi mellett.

    A Zend Framework gondolata 2005 elejn szletett meg, amikor sok j keretrendszer, mint

    pldul a Ruby on Rails s a Spring Framework nszerv vltak a webfejleszti

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    6/40

    6

    kzssgben. A ZF-et elszr az els Zend Conference-en jelentettk be. Ezidtjt nem volt

    szles krben elterjedt, a PHP kzssg rendelkezsre ll keretrendszer, ami kielgtette

    volna a hasonl webfejleszti ignyeket. A Zend Framework tervezi megksreltk

    egyesteni ezen keretrendszerek knny hasznlhatsgt s a gyors alkalmazsfejlesztsi

    (rapid application development RAD) kpessgeiket az egyszersggel, nyltsggal s a

    val vilgbeli praktikummal, melyeket a PHP kzssg nagyra rtkel.

    A specifikus fejlesztsi feladatok megvalstsa jellemzen sokkal ltalnosabb szoftver

    sszetevk felhasznlsval, nmkd belltsokon s/vagy kd generlson keresztl

    trtnik. Az eddigi kiadsok sorn a Zend Framework kzssg ezen felszn alatt meghzd

    sszetevk fejlesztsnek teljes elvgzst s tesztelst vlasztotta, a fejlesztsi feladatokmegknnytsn mint az adatbzis migrcik, llvnyzatok (scaffolding) generlsa,

    projektek ltrehozsa s belltsa val munka megkezdse eltt. Ez a gyakorlat kritikk

    trgyt is kpezte, mivel sokak ltal mai webes keretrendszerek megjelenshez

    elengedhetetlennek rzett funkcik a Zend Framework jvbeli kiadsaira lettek temezve.

    Sok ZF felhasznl azonban sokkal jobban felhasznlhatnak s kiterjeszthetbbnek rezte

    ezeket az ltalnos jelleg sszetevket alkalmazsaik megvalstsakor. Emellett a Zend

    Framework keresi a lehetsget kvetend webfejlesztsi gyakorlatok a PHP kzssgben

    val alkalmazsnak elsegtsre; a ZF-ben kzs megllapodsok ritkbban hasznlatosak,

    mint sok ms keretrendszerben, ehelyett az ajnlottak sszer alapbelltsokban

    jelentkeznek, melyek fellbrlhatk az egyes ZF alkalmazsok kvetelmnyeinek

    megfelelen.

    A Zend Frameworkre az Open Source Initiative (OSI) ltal jvhagyott New BSD License

    felttelei vonatkoznak, s minden kzremkdnek al kell rnia egy az Apache Software

    Foundation CLA-jn alapul Kzremkdi Licenc Megllapodst (Contributor LicenseAgreement). A licenc s kzremkds szablyai annak rdekben lettek megllaptva, hogy

    elkerljk a ZF kereskedelmi felhasznlira irnyul intellektulis tulajdonnal kapcsolatos

    pereket.

    A PHP mag kzremkdi, Andi Gutmans s Zeev Suraski ltal kzsen alaptott Zend

    Technologies a Zend Framework vllalati tmogatja. A technolgiai partnerek kz tartozik

    az IBM, a Google, a Microsoft s a StrikeIron.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    7/40

    7

    2. Az oldal funkcionalitsa

    Egy weboldal ltrehozsakor el kell dnteni nhny alapvet funkcionalitsbeli dolgot.

    Mgpedig, hogy milyen cllal, tartalommal, felptssel kell rendelkeznie. Egy tlagosweboldal nem tl bonyolult s minden ltogat szmra tlthatnak kell lennie. Igyekeztem

    betartani azt a szemlletet, miszerint egy tlagfelhasznl kett hrom mlysgnl tovbb

    nem tudja kvetni a weboldal felptst s elvsz benne. Ezrt az oldal letisztult s

    egyszer hasznlni, kezelni.

    Egy ilyen egyesleti kzssgi weblap tulajdonkppen nem csak arra szolgl, hogy az

    egyesleti tagok kztt fennlljon a kommunikci, hanem az ismeretlen bngszk szmra

    informcit nyjt eme csodlatos sportgrl.

    Az oldal hat nagyobb modulbl pl fel, adja az oldal tartalmt. Ezek sorrendben:

    Kezdlap Csapattagok Frum Kpgalria Versenynaptr Elrhetsgek

    A ltogatk a kezdlapon talljk a legfrissebb informcikat, egy alap bevezetst magrl a

    sportgrl.

    A csapattagok menpont egy rvid ismertetst nyjt a regisztrlt felhasznlkrl

    (csapattagokrl).

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    8/40

    8

    Minden regisztrlt felhasznl jogosult a frum hasznlatra, mely az adott tmkhoz val

    hozzszlst jelent.

    Edzseken, versenyeken kszlt kpek a kpgalria menpont alatt rhet el.

    A versenynaptr az aktulis szezon versenyeirl nyjt informcikat.

    Elrhetsgek alatt az edz, illetve a szakosztlyvezet elrhetsgei tallhatak meg.

    Mivel ez az oldal egy kisebb kzssgi portlnak foghat fel, ezrt szksg van bizonyos

    felhasznli szintek bevezetsre. Ezt ngy klnbz jogosultsg felhasznli jogosultsg

    szintre tagoltam. Ezen szintek szoros sszefggsben vannak a regisztrlt felhasznlkkal,melynek az adatbzis felptse a kvetkez:

    Lthat, hogy az egyes csoportok tkletesen elhatroljk a felhasznlkat s ezltal

    beazonostsuk is egyszer.

    A regisztrlt felhasznlknak tovbb lehetsgk van egyfajta (egy gynevezett competition

    listra) jelentkezsre, amely informcit nyjt arrl, hogy az adott szezonban melyik

    versenyen szeretne, illetve tud elindulni. Ez az elzetes szllsfoglalst segti a szervezknek.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    9/40

    9

    A hrom tbla egyttesen jl szemllteti a kztk lv kapcsolatokat.

    A frum az alkalmazs taln legsszetettebb rsze. Az anonymus (nem regisztrlt)

    felhasznlk, csak bngszhetik, olvashatjk a hozzszlsokat, azonban nincs jogosultsguk

    bejegyzseket rni a frumtmkba. A kvetkez kt tbla azt szemllteti, hogy az egyesfrumtmkhoz hogyan kapcsoldnak a bejegyzsek:

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    10/40

    10

    A forumthemes tblban megfigyelhet, hogy nem a users tblban lv usersid kerlt bele

    mint kls kulcs, hanem egy name (nv) mez szolglja a felhasznl azonostst. Ennek

    kialaktsa azrt trtntgy, mert a ksbbiekben, a tovbbfejleszts sorn elkpzelhet, hogy

    ne csak regisztrlt felhasznlk, hanem vendg (anonymus) felhasznlk is

    hozzszlhassanak bizonyos tmkhoz.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    11/40

    11

    3. Az oldal kialaktsa

    3.1. A ZEND Framework belltsai

    Ahhoz, hogy el tudjuk kezdeni a weboldal fejlesztst, nhny alapvet konfigurcis dolgotbe kell lltani. Ezen belltsokat a

    bootstrap.php valamint a

    Initilization.php fjlokban kell

    elvgezni. A bootstrap minden

    alkalommal elsknt tltdik be, ezrt

    ltalbanaz adatbziskapcsolatot szoktuk definilni.Az Initializerben tallhat tbbek kztt

    a layout(ok), modul(ok) (modules), kontroller(ek) (controllers), kinzet(ek) (views) belltsilehetsge. Megadhatbrmelyikhez azalaprtelmezettknyvtr elrsi tja, valamint neve.

    A Framework egy jl strukturlt rendszer, melyben ezen apr belltsokat elvgezve

    hozzkezdhetnk a weblapunk fejlesztshez.

    3.2 Modellek (models)

    A modellekben tallhatk az adatbzis kapcsolatokhoz szksges osztlyok. Az osztlyokban

    tallhat metdusok segtsgvel definilhatak az adatbzis tblk rekordjai, kztk lvkls kapcsolatok, lekrdez (select), inzertl (insert), mdost (update) metdusok.

    3.2.1 Users

    A modell osztlyokat mindig a Zend_Db_Table_Abstract osztly kiterjesztett osztlyaknt

    kell ltrehozni, nincs ez mskpp a Users osztly esetben sem. Protected vltozknt

    definilni kell a tbla nevt (protected $_name), valamint opcionlis lehetsg, hogy

    megadjuk az elsdleges kulcsot

    (protected $_primary) (termszetesen

    ha nem tartalmaz elsdleges kulcsot,

    nincs mit megadni). Ezt azrt clszer

    definilni, mert a keress ez alapjn

    egyszersdik. Opcionlisan

    megadhat a tblk kztti kapcsolatok,

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    12/40

    12

    melyet a $_referenceMap vltoz trol.

    A tovbbiakban olyan metdusok definilsa trtnik, melyben a lekrdez, beszr s

    mdost sql utastsokat hasznlok ZEND specifikusan.

    A getUserIdByNameegy egyszer lekrdez metdus, melyre azrt volt szksg, hogy egy

    adott felhasznlnvhez tartoz azonostt (idusers) nyerjek ki. Mivel a bejelentkezskor

    felhasznlnv s jelsz prossal lehet belpni, azonban a users tbla elsdleges kulcsa az

    idusers, ezrt mindenflekppen szksg van erre a metdusra.

    Belpskor (loginkor) a getUser segt az azonostsban, melynek visszatrsi rtke egy

    boolean rtk. True rtkkel tr vissza, ha az adatbzisbanszerepel a felhasznlnv s jelszpros, valamint false az rtke abban az esetben, ha nem tallhat a felhasznl az

    adatbzisban.

    getAllUsers:Az adatbzisban lv sszes regisztrlt user informciit adja vissza egy tmb

    vltozban. Ebben egy ZEND specifikus beptett fggvny segtsgt krem, ez pedig a

    fetchAll. Paramterknt egy select utastst vr, melynek string formtumnak kell lenni. A

    PHP igen knyelmes nyelvnek mondhat, hiszen dinamikusan rtelmezi a vltozkat,

    azonban nhny esetben elfordul, hogy tpusknyszertst kell alkalmazni. Erre a

    __toString() metdus alkalmas, amely szintn egy ZEND specifikus beptett fggvny.

    A bejelentkezskor eldl, hogy ki milyen jogosultsgokkal rendelkezik. Ebben a

    getGroupsByIdfggvnysegt. Ezen metdus egy sszetett select utastst tartalmaz, melyben

    join kapocsolat ll fenn a users s a groups tblk kztt. A lekrdezs utn teht minden

    felhasznl a megadott csoport tulajdonsgaival rendelkezik.

    Az updateProfile metdusban az eddigiektl eltren nem select, azaz lekrdez utasts

    hajtdik vgre, hanem egy update. Ht paramterrel rendelkezik, melyek kzl mindegyik

    megadsa ktelez, ellenkez esetben az update nem fut le, azaz false rtkkel tr vissza.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    13/40

    13

    Ebben a lekrdezsben rdekessg mg az is, hogy a kls kulcs segtsgvel trtnik az

    azonosts, melyben a getUserIdByNamemetdus segtsgl hvva kapok meg.

    A regisztrcikor hvdik meg a useraddAction fggvny. sszesen hat paramterrelrendelkezik s insert sql utastst hajt vgre. Sikeres lefutsa esetn true, sikertelen lefuts

    esetn false rtket ad, teht egy boolean tpus dnt a lefuts kimenetelrl.

    Amennyiben felhasznl trlsre kerl sor, abben a userdel-t hvom meg, amely sszesen egy

    idusers azonostt vr, s amennyiben nincs fgg bejegyzsei abban az esetben sikeresen

    trli a kivlasztott felhasznlt a tblbl.

    3.2.2. Groups

    A groups modell egy viszonylag egyszer osztly. sszesen egyetlen egy metdust tartalmaz,

    amely a regisztrcikor tlt be fontos szerepet. Ez pedig nem ms, mint az adatbzisban

    trtolt sszes csoportot listzza a sor tulajdonsgaival egytt. Definilom tbla nevt, amely a

    groups, valamint a fgg (dependent) tblnak a nevt is. A groups tbla fgg a users tbltl,

    ezrt ennek a definilsa itt elkerlhetetlen.

    3.2.3. Forum

    Ebben a modellben vannak a frum tmival kapcsolatos metdusok. Termszetesen a forum

    osztly is a Zend_Db_Table_Abstract kiterjesztett osztlya. Vdett (protected) vltozknt

    bejegyzsre kerl a tbla neve (forumthemes) s az elsdleges kulcs is. Mivel ezen tblhoz is

    tartozik referencia tblzat, ezrt egyrtelmen ezt is definilom. Ilyenkor meg kell adni a

    tblzatban lv rekordjnak a nevt, a referencia tblzatban elhelyezked modell

    osztlynak a nevt, valamint a referencia tblzat rekordjnak nevt.

    A getAllForumthemesazon frumtmk neveit adja rtkl, melyek aktv tmk, azaz a root

    vagy a frum admin felhasznl aktv tmnak llt be. Egy egyszer lekrdez script

    hajtdik vgre, melynek felttelben az aktvnak titullt tmkra trtnik a szrs.

    Visszatrsi rtke fgg az sql lekrs kimeneteltl. Sikeres lefuts esetn true, ellenkez

    esetben pedig false.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    14/40

    14

    A getThisForumthemes meghvsakor egy adott jl definilt frumtma tulajdonsgaival

    leszek gazdagabb. Ezt akkor tudom felhasznlni, mikor egy felhasznl bejegyzst kvn rni

    valamelyik tmhoz. Sikertelen lefutskor false, sikeres lefutskor true rtke van.

    Opcionlis metdusok kz tartozik a

    updateForumTheme deleteForumTheme createForumTheme

    Ezeket csak a root admin s a frum admin tudja meghvni.

    updateForumTheme: Hrom paramteres fggvny, melynek els kt paramtere az update

    adat rsznl jtszik szerepet, majd a harmadik paramter a felttel szrsekor kap szerepet.

    Amennyiben sikerlt az update, boolean tpus dnt arrl, hogy sikeresen vagy sikertelenl

    hajtdott vgre.

    Emennyiben trlni akarok egy tmt, abban az esetben a deleteForumTheme-t hvom meg,

    amely egy azonost alapjn kivlasztott tmt trl az adatbzisbl.

    Amennyiben a trlssel ellenttben j tma bejegyzst szeretnk ltrehozni, a

    createForumTheme fggvnyt alkalmazom. Sikeres lefutskor kt paramter addik t a

    servernek. A harmadik paramter ellltshoz egy beptett PHP fggvnyt alkalmazok,

    amely az ppen aktulis (szerver) dtumot generlja v-Hnap-Nap ra:Perc:Msodperc

    formtumban.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    15/40

    15

    3.2.4 Forumview

    Ebben a modellben is megadom azon rtkeket, amelyek szksgesek a tbbi tblval val

    kapcsolat kialaktsban, valamint a tbla nevt illetve elsdleges kulcst, azonostjt.

    a countViewsOneThemesmetdus az eddigiektl eltren nem egyselect utasts eredmnyt

    adja adatknt, hanem egy integer tpus szmot. Ez azt szmolja meg, hogy hny bejegyzs

    van egy-egy frumtmban.Egy paramtere van, ez pedig egy frumtma azonost. Hamis

    rtkkel egy esetben trhet vissza, amikor nem ltezazonostval van paramterezve.

    Hogy ki milyen bejegyzst rt a tmkhoz, termszetesen ez is egyszeren egy select utasts

    lekrdezse utn nyerhet ki. Ebben a getCommentspublikus fggvny segt. rdekessge,

    hogy a kommenteket a hozzszlsok berkezsnek sorrendjben listzza, teht a legfrisebb

    bejegyzs kerl majd a lap tetejre.

    Ahhoz, hogy tartalom is legyen egy tmban, szksg van bejegyzsekre is. Az

    insertCommenttel ezen bejegyzsek bejegyezhetek. Hrom paramtere van, melyek a nv, a

    bejegyzs szvege valamint a tma azonostja. Az aktulis dtumot ismtelten a datebeptett PHP fggvnnyel hatrozom meg. Amennyiben sikeres az adatfelvitel true,

    sikertelen esetben false az rtke.

    A deleteViewsByForumTheme s a deleteViewsByRoot metdusok szorosan sszefggnek

    egymssal. Hiszen, amennyiben bejegyzsek tallhatak egy frum tmban, akkor

    termszetesen a tma trtlse sql hibazenettel trne vissza. ppen ezrt, mindenek eltt

    trlni kell a bejegyzseket, majd utna trlhet a frumtma. Mind kt metdus teht egy

    delete utastst tartalmaz sql scriptet futtat. Paramtereik azonosak, egy azonostt vrnak, a

    frumtma azonostjt.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    16/40

    16

    3.2.5. Competition

    A Competition modell osztly, a versenynaptrnl lesz jelents. A modell tblaneve a

    competitions, elsdleges kulcsa az idcompetitions. Kt publikus metdusa a listzsnl illetve

    a felvitelnl lnyeges.

    getCompetition: Az eddigiekhez megszokott mdon, ez a metdus egy lekrdez sql selectet

    hasznl, melynek sikeres lefutsakor a visszatrsi rtke egy tmb. Ebben a tmbben az

    sszes rekord rtke megjelenik, gy knnyen listzhat. Amennyiben hibval szl ell gy

    false rtkkel tr vissza.

    A versenyek felvitelhez az addCompetition fggvnyt hasznlom.Ngy paramtere van,ezek sorrenben: $name, $location, $startdate, $enddate. A nv a verseny nevt, a location a

    verseny helysznnek helyt adja meg. A startdate s az enddate egy-egy dtum tpus

    vltozk, ezek a verseny kezdett illetve a vgt adjk meg.A felvitelhez egy insert metdus

    van segtsgre s true vagy false rtke hatrozza meg a felvitel kimenetelt.

    3.3. Kontrollerek

    A Zend Frameworkben s mint a tbbi MVC rendszerben, itt is a rendszer szvt tltik be a

    kontrollerek. A Zend_Controller egy komplett rendszert jelent, amely a mr meglv subclass

    osztlyokat dolgozzk fel. Azonban ltrehozhatk j osztlyok is, amelyek klnbz

    interfszek vagy elvont osztlyok, melyeknek cselekv kpessgt adatkezel

    csaldosztlyokban, pluginekben, vagy helperekben lehet menipullni. A kontrollereknek

    jutott az a szerep, hogy a PHP fordt ltal generlt kd magjt hozzuk ltre bennk. Ezek

    minden esetben a Zend_Controller_Action kiterjesztett osztlyai. ltalban az osztlybanszerepl metdusoknak publikus hozzfrst szoktunk adni.

    A kontrollerek esetben az els lps az, hogy ellenrizni kell a file rendszer felptst,

    melynek egy tipikus elrendezse a kvetkez:

    application/

    controllers/

    IndexController.php

    models/

    views/

    scripts/

    index/index.phtml

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    17/40

    17

    helpers/

    filters/

    html/

    .htaccess

    index.php

    Minden kontrollernek van egy alaprtelmezett metdusa, amely alap llapotban az

    IndexAction. Azonban ez az Initializer.php-ben megvltoztathat, mdosthat. Az hogy

    melyik kontroller tltdik be, az URL path segtsgvel dnti el a rendszer. A

    http://pirosattila.info/kezdolap/index URL-bl az szrhet le, hogy a kezdlap kontroller

    tltdik be automatikusan s annak is az indexAction metdusa. Minden kontrollerhez

    tartozik egy nzet script is, melyet ktelezen ltre kell hozni, ellenkez esetben egy kivtelt

    dob a kivtelkezel, mely figyelmeztet minket, hogy ltre kell hozni.

    3.3.1. IndexController

    Ez a kontroller nlam csak egyetlen egy dolgot vgez, mghozz azt, hogy egy filebl betlti

    a kezdolap.phtml tartalmt. Ebben a fileban van a kezdlapon elhelyezked statikus szveg. A

    fileban val trolsra azrt volt szksg, hogy a ksbbiekben megnvekedett ltogatk

    szmval az adatbzis nagy valsznsggel nagyobb terhelst kap s ezt szerettem volna

    ezzel tehermentesteni.

    3.3.2. KezdolapController

    Ebben a kontrollerben sem trtnik semmilyen lnyeges. Egyszeren egy redirekt hajtdik

    vgre, mely az IndexController tartalmra visz. Enneklnyege abban nyilvnul meg, hogy az

    URL-ben szebben jelenhessen meg.

    3.3.3. AuthController

    Az els rdemleges dolog ebben a kontrollerben van implementlva. Az osztlyon bell

    tallhat kett metdus. Az egyik a bejelentkezskor, azaz a loginkor lesz lnyeges, a msik

    pedig a kijelentkezsnl (logoutnl).

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    18/40

    18

    A loginAction metdus a bejelentkezsrt felels.

    A legelejn egy isTrue vltoznak false rtket lltok be, ezt azrt alkalmazom, mert alapjba

    vve felttelezem minden ltogatrl, hogy nincs bejelentkezve. A $this->_request->isPost()

    bels fggvny segtsgvel megvizsglom, hogy trtnt-e form klds, azaz megtrtnt-e a

    bejelentkezs rlapnak a kitltse. Amennyiben igen, le kell ellenrizni, hogy az adott

    felhasznlnv s jelsz pros ltezik azadatbzisban, vagy sem. Miutn megtrtnt az rlap

    kitltse az $isUser vltoz jra rtket kap a kirtkelsnek megfelelen. Ha sikeres a

    bejelentkezs, true rtket vesz fel s pr dolog alapveten trolsra kerl a ksbbiek

    azonostsa vgett. Azt, hogy a felhasznl a bejelentkezs utn tudja hasznlni a regisztrlt

    felhasznlk elnyeit a session segtsgvel rem el. Egy munkamenetet nyitva trolom el a

    felhasznlnevt, a felhasznl azonostjt, valamint hogy melyik csoport tagja.Ezutn az

    $this->view->isTrue rtke true rtket kap, majd meghvdik jbl az oldal, amely ezutn

    mr azonostva a bejelentkezett felhasznlt tltdik be.Ki kell trnem arra az esetre, amikor

    sikertelen a bejelentkezs, ilyenkor egy errorString nevezet vltoz a Sikertelenbejelentkezs! rtket kapja. Ezen vltoznak az authControllerhez tartoz nzetben lesz

    jelentsge, melyre a ksbbiekben kitrek majd.

    Termszetesen, ha volt bejelentkezs, egyszer ki is kell jelentkeztetni egy belpett usert.

    Ilyenkor a logoutAction fut le, melyben az eddig lefoglalt munkamenetet szabadtom fel az

    sszes benne lv tartalommal egytt. Ilyenkor a felhasznl szmra megsznnek a

    bejelentkezssel jr jogai s ismt anonymuskt tud bngszni. Amennyiben jra szeretne

    pldul frumbejegyzst rni, ismtelt bejelentkezs szksges.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    19/40

    19

    3.3.4. CsapattagokController

    Hrom metdusos osztly.

    Ebbl az els az indexAction, melyben az sszes eddig regisztrlt felhasznl listzsra kerl.A users modulban tallhat getAllUsers fggvnyt hvva egy rendezett tmbt kapunk. a

    $params vltoz egy opcionlis paramter, amely egy rendezs funkcit tlt be a megadott

    paramternek megfelelen.

    A personalmodifyAction az a metdus, melyben a regisztrlt felhasznlk adatmdostst

    tudnak vgrehajtani. A $params vltoz a GET illetve a POST paramtereket egyarnt

    magban hordozza. Ezlltal nagyon knnyen feldolgozhatak az adatok. A $groups vltoz

    egy kontroller helperben megrt fggvny rtkt kapja meg, amely azt, mondja meg hogymelyik csoportban van az ppen bejelentkezett

    felhasznl.

    Ezek utn egy jl megszokott rutin ellenrzs hajtdik vgre, ez pedig az rlap elkldsnek

    ellenrzse. Ha az adatmdost form elkldsre kerlt, akkor le kell ellenrizni, hogy az

    sszes input (beviteli) mezk ki lettek-e tltve. Amennyiben nem, abban az esetben az

    $errorString vltoz a Minden mez kitltse ktelez! rtket veszi fel. Ezek utn mivel

    ezen rlapon a jelszavak is mdosthatak, leellenrzm, hogy a jelsz mezk egyez

    rtkeket vesznek fel, avagy sem. Ezutn egy rutin e-mail cm ellenrzs hajtdik vgre, mely

    a helyes szintaktikt figyeli. Erre egy regexp kifejezst hasznlok, mely a kvetkez:

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    20/40

    20

    '^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9]+$'

    Ezek utn ha minden kivtelkezelsen sikeresen tment, meghvdik egy mdost metdus,

    melynek paramterl adva az rlapon kitlttt rtkeket fellrja az adatokat. Az

    updateProfile lefutstl fgg az $errorString rtke. Sikeres lefutskor a Sikeres

    adatmdosts rtket veszi fel.

    Az rlap elkldse eltt a bejelentkezett felhasznl lthatja eddigi adatait. Azonban egy

    plusz funkcival egszl ki amennyiben root adminisztrtori jogosultsgai vannak egy

    felhasznlnak, hiszen nem csak a sajt adatait mdosthatja, hanem brki mst.

    A kvetkez action a usersadAction. Ebben van leimplementlva a regisztrcival

    kapcsolatos kd valamint cseles mdon elrejtve benne a trlssel kapcsolatos dolgok. Afelvitelben termszetesen egy form ll rendelkezsre, melyben megadhat paramterek egy

    rutin ellenrzs utn bekerlnek az adatbzisba. Ezen funkcijt az oldalnak csak s kizrlag

    a root admin szmra aktv. Megbizonyosodva arrl, hogy a bejelentkezett felhasznl

    adminisztrtori jogosultsgokkal rendelkezik s kitlttte az rlapot, valamint egy hidden

    (rejtett) POST paramterknt megkapja a useradd rtket, a regisztrcis kdrszlet fog

    lefutni. Ezek utn, amennyiben az sszes mez kitltsre kerlt, valamint az adatbzisban

    nincs mr ilyen nev felhasznl semmilyen ms akadlya nem merl fel annak, hogy egy jbejegyzs kerlhessen az adatbzisba.

    Am

    ennyiben trlni szeretnk egy mr elzleg beregisztrlt tagot, abban az esetben egy

    userdel POST paramtert kell figyelni. ilyenkor egy listbl vlasztva tudom megadni hogy

    melyik usert szeretnm trlni. Ha megtrtnt a kivlaszts, akkor hajtdik vgre a userdel

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    21/40

    21

    metdus, melynek egy paramtere a felhasznl azonostjt vrja, mely minden bejegyzst

    trl az adott felhasznlrl.

    3.3.5. ElerhetosegekController

    Az ebben implementlt kd nagymrtkben hasonlt a kezdolaphoz. A cl itt is ugyan az

    volt, hogy tehermentestsem az adatbzist, ppen ezrt egy file tartalmnak a betltse

    hajtdig vgre egy egyszer filekiolvasssal. A kiolvasott file neve: elerhetosegek.phtml.

    Ennek a filenak a ksbbiekben mindenflekppen rsi joggal kell rendelkeznie, hiszen csak

    abban az esetben kerlhet bele brmifle mdosts.

    3.3.6. ForumController

    Ez a kontroller az egyik legsszetettebb kdjttartalmazza az alkalmazsnak. Ezt jelzi az is,

    hogy t komolyabb metdussal rendelkezik.A frum megrsakor trekedtem arra, hogy az

    egyszer alapvet dolgokat tartalmazza, azonban tbbet tudjon mint egy egyszer

    vendgknyv.

    Az indexAction, azaz a frumtmk listzst teszi elrhetv, illetve adminisztrtori

    jogosultsgokkal rendelkez felhasznlk mdosthatjk a frumtma nevt, illetve

    bellthat, hogy egy aktv illetve egy nem aktv frumtmrl van sz. Valamint ezen

    felhasznlk j tmkat is ltre tudnak hozni. Ekkor meg kell adni a tma cmnek a nevt,

    valamint azt, hogy aktv vagy inaktv a tma.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    22/40

    22

    A metdus legvgn hvdnak meg azon lekrdezsek melyek az adatbzisbl az adatokatkrdezik le. Erre azrt volt szksg, hogy az adatok elkldsvel s mdostsval

    egyidejleg csak egyszer kell lekrni a friss adatokat.

    A thisAction metdusnak a lnyege az, hogy egy adott frumtmn belli adatokat listz,

    valamint regisztrlt felhasznlk szmra bejegyzseket lehet felvinni az egyes tmkhoz.

    Hozzszlsok bevitele azonban opcionlis, ha valaki csak olvasni akar a bejegyzsek kztt,

    akkor csak olvas, ha hozz is akar szlni, akkor hozz is szlhat. A szoksos rlap elklds

    vizsglata utn mr csak azt ellenrzm, hogy a beviteli mez ki van-e a tltve. Amennyibennincs res bejegyzs nem kerlhet az adatbzisba. A metdus legvgn belltsra kerl pr

    nzetben hasznlatos vltoz:

    $this->view->groups = $groups; $this->view->comments = $comments; $this->view->thisForumTheme = $thisForumThemes; $this->view->errorString = $errorString;

    .

    A modifyAction csak az adminisztrtorok szmra elrhet funkci. Egy kivlasztott tma

    nevt illetve azt hogy aktv vagy inaktv tma lehet mdostani. A szoksos rutin formklds

    utn egy ltalnos input beviteli meznek a megltt vizsglom, melynek tartalom nlkli

    llapota hibakezelst ignyel. Amennyiben a tma neve mez resen van elkldve,

    visszaugrat az oldalra a kvetkez hibazenettel: A tma neve nem lehet res!. Azonban ha

    minden adat helyesen lett kitltve, akkor az adatbzisba egy ments kszt a vltoztatott

    adatokkal. Ha egy adminisztrtori jogosultsggal nem rendelkez felhasznl szeretn mgis

    ezt a funkcit ignybe venni, a rendszer annyira intelligens, hogy mg csak vletlenl sem

    tudja hasznlni s tugratja a foldalra, mintha egy ismeretlen oldalt szeretett volna betlteni.

    DeleteAction: Termszetesen ez is adminisztrtori jogosultsgot ignyel. Egy frumtma

    trtlse kapcsolatban van az adott tmhoz bejegyzett adatokkal is. Egszen addig nem

    trlhet egy tma, amg abban ltezik bejegyzs. ppen ezrt szksges a bejegyzsek

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    23/40

    23

    elsdleges trlse. Egy kivlasztott tma trlsnl elszr egy biztonsgi oldalra irnyt t,

    melyben megadhat hogy valban kvnja az adminisztrtor trlni a tmt vagy sem.

    Amennyiben nem trli, visszaugrat a tmkhoz. A trls elfogadsakor minden bejegyzsvel

    egytt trldik a frum tma is, mely egy helyre nem llthat folyamat, azaz ha egyszer

    kitrltem valamit, mr nem hozhat vissza.

    Azonban lehetsg van arra is, hogy egy frum tmn belli bejegyzst trljenek az admin

    felhasznlk. Erre a deletethisAction fggvnyem lesz segtsgemre. Teljesen hasonlan

    mkdik mint az elz metdus, annyi klnbsggel, hogy csak egy bejegyzs trlse

    engedlyezett egy idben. A trlskor egy rlap fogad, melynl ki lehet vlasztani, hogy

    valban trlsre kerl a bejegyzs. Amikor igen vlasz rkezik a fordthoz, akkor a

    bejegyzs meghvja a deleteViewsByRoot metdust, mely a Forumview modulbl

    pldnyostott fggvnyknt rhet el. Sikeres trls esetn mr nem jelenik meg a bejegyzs

    az adatbzisban, ellenkez esetben hibazenet fogad bennnket: Nem tudtam trlni a

    bejegyzst!.

    3.6.7 VersenynaptarController

    Ebben a kontrollerben kt metdus tallhat. Az els igen egyszer, mg a msik egy kicsit

    komplikltabb kdot tartalmaz.

    Az indexActionegy egyszer sql select segtsgvel lekrdezi az adatbzisbl a versenyekrl

    trolt informcikat (getCompetition), majd egy tmb tpus vltoznak adja t rtkl.

    A versenylista feltltsrl a competitionupdateAction gondoskodik. Ez a fggvny egy file

    alapjn dolgozza fel a tartalmat s importlja az adatbzisba.

    A feldolgozand file felptse:

    verseny neve|helyszn|verseny kezdete|verseny vge

    Mikuls Kupa|HU, 1021 Budapest Jagell t 32|2009-04-12|2009-04-14

    Hajd Kupa|HU, 1021 Debrecen Nagyerdei t 27|2009-06-20|2009-06-21

    Szeged Kupa|HU, 1021 Szeged Jagell t 32|2009-04-12|2009-04-14

    Lthat, hogy a tartalom feldolgozs nlkl nem igazn rtelmes adatokat tartalmaznak.

    Azonban feldolgozs utn az adatbzisba kerlhetnek.A metdus elejn tisztzni kell a file

    helynek abszolt elrsnek a helyt, ez alaprtelmezetten a application/versenyek. Egy

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    24/40

    24

    biztonsgi vizsglat utn a file megnyitsra kerl s soronknt trtnik a feldolgozs. Minden

    sor az adatbzisba kerl egszen a file vgig. Az egyes sorokon bell a pipeline (|)

    elvlasztval vannak elklntve egymstl. Ezeket az explode fggvnnyel dolgozom fel,

    majd ezutn kvetkezhet az adatbzis feltltse. Arra kell figyelni, hogy amikor egy ilyen

    feldolgozs trtnik, akkor az elzekben felvitt adatok trldnek az adatbzisbl s helykre

    az j adatok kerlnek bejegyzsre.

    3.6.8 ModifyController

    Ebben az osztlyban egy metdus tallhat, amely az elzekben emltett statikus fileok

    tartalmt kpes mdostani a vltoztatott rtkek alapjn.

    Az indexAction metdusban zajlik le e funkci. Az URL-ben tadott paramter hatrozza

    meg, hogy melyik file tltdik be a kvetkez keppen:

    $filename = "../application/fonix/files_data/".$params["page"].".phtml";

    A $params["page"] csak az elrhetsgek illetve a kezdlap paramtereket kaphatja,

    ellenkez esetben nem trtnik semmi. A filenv meghatrozsa utn rsra nyitdik meg a

    file s az jonnan felvitt adatokat menti el. Sikeres mdostsnl legkzelebbi jratltsnl

    mr a frissen mdostott adat jelenik meg.

    3.6.9. ErrorController

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    25/40

    25

    Ebben az osztlyban egyetlen metdus szerepel, mely egy Zend specifikus fggvny. Minden

    olyan kivtel ide fut bele, amelyet a Zend Framework ri ksztettek. rdemes megfigyelni

    ennek a felptst:

    public function errorAction()

    {

    $errors = $this->_getParam('error_handler');

    switch ($errors->type) {

    case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:

    case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:

    // 404 error -- controller or action not found

    $this->getResponse()->setRawHeader('HTTP/1.1 404 Not Found');

    $this->view->title = 'HTTP/1.1 404 Not Found';

    break;

    default:

    // application error; display error page, but don't change

    // status code

    $this->view->title = 'Application Error';

    break;

    }

    $this->view->message = $errors->exception;

    }

    Ez a modul azt vrja hogy egy vezrl tugrassa s kezelje a hibkat. Az alaprtelmezett

    modul ebben az osztlyban az errorAction.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    26/40

    26

    3.4. Nzetek (Views)

    A Zend_View egy osztlyban dolgozik a "view" rsszel, a modell-nzet-vezrl mintval.

    Lnyegben kt f lpsbl ll:

    1. Sajt vezrl parancsok ltrehozsa a Zend_View pldnyaknt2. A Zend_View ellenrzi a kimenetelt s megjelenti a vgeredmnyt.

    Minden nzet elejn definilhat a title, ezltal minden oldalon ms-ms rtk adhat meg

    neki.

    3.4.1. Auth

    Az auth nzetben tallhat a login nzet.

    Jl lthat a kt kp kztti klnbsg. Az egyik a bejelentkezs eltt llapotot jelenti meg,

    mg a msik a login utni llapotot brzolja.

    3.4.2. Index

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    27/40

    27

    Az index nzeta kezdlapon elhelyezked informcikrt felels. Belltom benne a title-t s

    az oldal placeholdert.

    3.4.3. Kezdolap

    Mivel ez a nzet teljesen megegyezik az Index viewval, ezrt erre nem trnk ki.

    3.4.4. Csapattagok

    Ez a nzet 3 kln oldalbl ll:

    index.phtml personalmodify.phtml useradd.phtml

    Az index view egy lalnos informci megjelentsben segt. Az rdekessge, hogy a

    megjelentshez a jquery nevezet javascript gyjtemnyt hasznlom, amely rdekes

    effektjeivel hangulatoss, rdekess teszi az oldalt.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    28/40

    28

    A fels rszen lthat, hogy az oldalon linkek segtsgvel rendezhet a listzsi sorrend.

    Valamint a nvre, illetve arra a boxra klikkelve amiben a nv is megjelenik, egy ltvnyos

    effektel tgrdl a kivlasztott nvre. Listzsnl kerlend a tblzatos elrendezs,

    ugyanis a mretezskor minden bngsz mshogyan viselkedik. ppen ezrt a div megoldst

    alkalmazom helyette.

    A personalmodify.phtml tartalma egy mdost form mez. Ezen az oldalon az

    adminisztrtorok brki azonossgt mdosthatjk.Klnlegessge ennek az oldalnak, hogy a

    szletsi dtum mez knyebb trolsa-megjelentsrdekben szintn egy jquery-s modult

    alkalmaztam. Ennek a neve a datepicker.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    29/40

    29

    A felhasznlk hozzadsa,azaz az useradd is egy form kitlrst valstja meg. Illetve ehhez

    tartozik mg a felhasznlk trlse is. A beviteli input mezkn kvl select boxok is

    tallhatak a megjelentett oldalon.

    A felhasznl hozzadsa:

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    30/40

    30

    Felhasznlk trlse:

    3.4.5. Elrhetsgek

    Az elrhetsgeknl a csapattal kapcsolatos informcik lthatak. Leginkbb a kontakt

    informcik megjelentsre kell itt gondolni.

    3.4.5. Forum

    Alaprtelmezsknt csak a frumtmk jelennek meg, azonban adminisztrtor hozzfrsseltbb funkci vlik aktvv.t nzetre bonthat a forum view:

    1. delete.phtml2. deletethis.phtml3. index.phtml4. modify.phtml5.

    this.phtml

    .

    Ezek sorrendben a kvetkezkppen nznek ki,

    delete.phtml

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    31/40

    31

    deletethis

    index.phtml

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    32/40

    32

    modify

    this

    3.4.6. Versenynaptr

    A versenynaptr az aktulisan felvitt versenyekrl nyjt informcikat. Itt lehet tjkozdni,hogy a soron kvetkez versenyek mikor lesznek.

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    33/40

    33

    Jl lthat az egyszer elrendezs, amely az olvashatsg s az egyszerbb elrendezs vgettkerlt kialaktsra.

    3.4.7. Modify

    Ez a nzet a kezdlap s az elrhetsgek mdostsnl szksges. Egy nagyon ltvnyosjavascript alkalmazssal segtve az egyszerbb szvegfelvitelt. Ennek a neve a Tiny mce. Egymsdik genercis WYSIWYG szerkesztrl van sz. Kezelhet vele a szvegen kvlmindenfle html szabvnynak megfelel kd elhelyezse is. Ezzel nagymrtkbenknnytveaz adatok felvitelt mg a nem html hozzrtk szmra is. Egy Word szer kezelfelletetltunk, melynek alkalmazsa teljesen megegyezika Wordvel.

    Pldaa kezdlap mdostsra:

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    34/40

    34

    4. Kpek

    Kezdlap

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    35/40

    35

    Csapattagok

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    36/40

    36

    Versenynaptr

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    37/40

    37

    Adatmdosts

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    38/40

    38

    Kezdlap mdostsa

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    39/40

    39

    5. sszefoglals

    Az alkalmazs az elksztse eltt eltervezett, kigondolt funkcikat teljes mrtkbenvgheztudja vinni. Minden funkcija mkdkpes. A felhasznli szintektl fggen lehet

    bngszni az oldalt, adminisztrtori feladatokat elvgezni, egyszval minden adott, hogykellemesen eltlthesse az idejt a ltogat.

    Az alkalmazs kinzete igazodik a mai ignyekhez, egy teljesen egyedi, jl hasznlhatdesignrl van sz, br lehetne rajta pr csicssabb kp, ami feldobja az oldalt, de gygondolom, egy ilyen kzssgi oldalnak, nem ez az elsdleges clja. Az oldal Internet

    Explorer s Firefox al is optimalizlva lett, gy brmilyen platformon elrhet s lvezhet.

    A httrkd jl strukturlt, az MVC szabvnynak teljes mrtkben megfelel. Br igentlthat s kvethet a kd, a fejleszts utn nmi vltoztatst azrt elvgeznk rajta. A Zendframework tkletes keretrendszer s rlk, hogy ezt vlasztottam.

    A fejleszts ideje halad PHP fejleszt rvn nem vett sok idt ignybe, ez 1 hetet jelent.Egy hasonl weboldal elksztse alapos tervezs s kivitelezs mellett 2 hetet venne ignybe.A fejleszts sorn igyekeztem az oldalt modern jQuery technikk rvn izgalmasabb,valamint WYSIWYG szerkeszt segtsgvel az adatmdostst knnyebb tenni.

    Mivel a PHP nyelv ismerete szmomra nem jdonsg, ezrt tudtam mit vrhatok ettl afejleszti nyelvtl, nem csaldtam benne s tovbbra is szeretnk hasonl tmkkalfoglalkozni a jvben.

    6. Felhasznlt technolgik,alkalmazsok

    APACHE 2.2.9 (Linux)

    MYSQL 5.0.67

    PHP 5.2.6

    Zend Studio for Eclipse 6.0

    Zend Framework 1.6.0

  • 7/31/2019 kzssgi portl fejlesztse php s zend framework segtsgvel

    40/40

    PHPMYADMIN 2.11.8

    GIMP 2.6.1

    MYSQL WORKBENCH

    7. Irodalomjegyzk

    Peter Moulding : PHP Fekete knyv

    Felhasznlt Internetes adat:

    1. A PHP nyelv hivatalos dokumentcija:http://hu.php.net/manual/en

    2.http://framework.zend.com/

    3.http://www.w3schools.com/

    4.http://hu.wikipedia.org/wiki/PHP

    5.http://hu.wikipedia.org/wiki/Zend_Framework

    8. Fggelk

    A README.txt fjl tartalmazza a program sszes funkcijnak futshoz szksges

    belltsokat.

    http://hu.php.net/manual/enhttp://hu.php.net/manual/enhttp://hu.php.net/manual/enhttp://framework.zend.com/http://framework.zend.com/http://framework.zend.com/http://www.w3schools.com/http://www.w3schools.com/http://www.w3schools.com/http://hu.wikipedia.org/wiki/PHPhttp://hu.wikipedia.org/wiki/PHPhttp://hu.wikipedia.org/wiki/PHPhttp://hu.wikipedia.org/wiki/Zend_Frameworkhttp://hu.wikipedia.org/wiki/Zend_Frameworkhttp://hu.wikipedia.org/wiki/Zend_Frameworkhttp://hu.wikipedia.org/wiki/Zend_Frameworkhttp://hu.wikipedia.org/wiki/PHPhttp://www.w3schools.com/http://framework.zend.com/http://hu.php.net/manual/en