BELLTSOK 3.3.1. FELHASZNL 3.3.2. ADMINISZTRTOR 3.4. TARTALOM BEKLDSE 4.FJL S ADATBZIS SZERKEZET FELVZOLSA 4.1. A DRUPAL FJLSZERKEZETE 4.1.1. DATABASE 4.1.2. FILES 4.1.3. INCLUDES 4.1.4. MISC 4.1.5. MODULES 4.1.6. SCRIPTS 4.1.7. SITES/DEFAULT 4.1.8. THEMES 4.2. A DRUPAL ADATBZIS SZERKEZETE 4.2.1. BLOCKS 4.2.2. CACHE 4.2.3. COMMENTS 4.2.4. FILES 4.2.5. NODE 4.2.6. ROLE 4.2.7. SEARCH_INDEX 4.2.8. SYSTEM 4.2.9. USERS 4.2.10. USERS_ROLES 4.2.11. VARIABLE 4.2.12. WATCHDOG 5.FGGVNYEK FELTRKPEZSE 5.1. FELHASZNLKAT KEZEL FGGVNYEK 5.1.1. USER_LOAD 5.1.2. USER_SAVE 5.2. TARTALMAKAT KEZEL FGGVNYEK 5.2.1. NODE_LOAD 5.2.2. NODE_SAVE 5.3. ADATBZIS KEZEL FGGVNYEK 5.3.1. DB_SET_ACTIVE 5.3.2. DB_CONNECT 5.4. MEGJELENTST KEZEL FGGVNYEK 5.4.1. INIT_THEME 5.4.2. THEME 6.J SMINK KSZTSE 7.SSZEFOGLALS 8.IRODALOMJEGYZK
2 3 4 4 4 5 5 5 9 10 10 10 10 11 13 13 14 14 14 15 15 16 16 16 16 16 17 17 17 17 17 17 19 19 19 19 20 20 20 20 20 20 21 21 21 22 24 25
Szab Blint
1. Bevezets
A weboldal kszts, webprogramozs rgta rdekel, s gy rzem ez az a tmakr, amivel a ks bbiekben hivatsszer en foglalkozni szeretnk. Ezrt kezdtem el iskoln kvl ismerkedni a HTML s PHP nyelvekkel, s ezrt vettem fel az Adatbzis Alap Webalkalmazsok cm tantrgyat. E tantrgy keretn bell kerltek megemltsre a tartalomkezel rendszerek (CMS), amelyek felkeltettk az rdekl dsemet. Elhatroztam, hogy behatbban szeretnm tanulmnyozni ezeket a rendszereket, mint amennyire a gyakorlatok sz ks id kerete alkalmat adott. Erre j lehet sg knlkozott a szakdolgozati tma kivlasztsakor, amikor is az Informatika Tanszk ltal javasolt tmk kztt szerepelt egy szabadon vlasztott tartalomkezel rendszer felptsnek bemutatsa. gy gondoltam ez j alkalom a tartalomkezel rendszerek kzelebbi megismersre, a HTML s PHP nyelvek tern szerzett eddigi ismereteim b vtsre, valamint egy konkrt tartalomkezel rendszer ismerete el nyt jelenthet szmomra a ks bbiekben. Rengeteg fle tartalomkezel rendszer ltezik. Ezeknek egy rsze fizet s , ms rszk ingyenesen elrhet . n az ingyenesen letlthet , nylt forrskd, PHP nyelven rdott Drupal rendszert vlasztottam bemutatsra. A Drupal egy szles krben hasznlt rendszer, egy interneten tallt lista szerint a msodik legnpszer bb tartalomkezel . Mellette szlt az is, hogy ltezik magyar nyelvi kiegszts hozz, gy itthon is sokan hasznljk. Kszlt hozz magyar nyelv kziknyv, s a magyar Drupal oldalon tallhat frumokon is segtsget krhetek (http://drupal.hu). Mikzben sajt ismereteimet b vtem, remlem sikerl egy msok szmra is hasznos dokumentcit rnom a Drupalrl, ami jl hasznlhat segtsg lehet a rendszerrel ismerked knek.
-2-
Szab Blint
legpraktikusabb mdszere, ha azt a tartalom fejlesztsben, mdostsban leginkbb illetkes szemlyek vgzik, k azonban tbbnyire jratlanok a webes programozs tern. A tartalomkezel k lehet v teszik honlapok vltoztatst, frisstst tbbnyire bngsz alap, grafikus, felhasznlbart felleten, weblapksztsi ismeretek nlkl is. gy jelent sen lervidl a tartalom ltrehozsa s publiklsa kztt eltelt id . Tbbfle tartalomkezel rendszer ltezik. Ezeknek egy rsze az internetr l
ingyenesen letlthet . Rszletesebb bemutatsra n az egyik legnpszer bbet [1], a Drupal nev rendszer 4.6.3-as verzijt vlasztottam, mely ingyenes s nylt forrskd.
Hasznlata elterjedt, Magyarorszgon is szmos Drupal alap weboldal ltezik. A Drupal gyakorlatilag minden olyan rendszerre elrhet , ahol a PHP s valamely tmogatott adatbzis rendszer m kdik. Nem csak Apache s Microsoft IIS alatt, hanem szmos opercis rendszer alatt is futtathat, mint amilyen a Linux, a klnbz BSD-k, a Solaris, a Windows vagy akr a Mac OS X platformok. Br a legtbb Drupal alap oldalt zemeltet MySQL-t hasznl, ez nem mindenki szmra kzenfekv megolds. A Drupal vkony adatbzis fggetlent fellete
segtsgvel PostgreSQL hasznlata is lehetsges. Ms adatbzisokhoz krlbell egy tucat egyszer fggvny ltrehozsval illeszthetjk oldalunkat. [2]
-3-
Szab Blint
1. bra
Itt tudjuk regisztrlni magunkat, az els regisztrl lesz az adminisztrtor. Az adminisztrtor vgezheti el a belltsokat, s kldhet be tartalmakat, melyek az oldalon megjelennek. Alaprtelmezett llapotban a regisztrlt ltogatk olvashatjk a tartalmakat, hozzszlsokat rhatnak s msokra vlaszolhatnak, mg a regisztrlatlan ltogatk csak olvashatjk a tartalmakat s hozzszlsokat. Ezeket a jogokat az adminisztrtor sz ktheti s b vtheti is, valamint jabb felhasznli csoportokat hozhat ltre ms jogosultsgokkal.
-4-
Szab Blint
3.3. Belltsok
3.3.1. Felhasznl
A regisztrlt felhasznl a bejelentkezs utn a menb l (2. bra) megtekintheti, s mdosthatja a sajt adatait. Kivlaszthatja az oldal nyelvt engedlyezve van az alaprtelmezett l eltr nyelv , ha
megvltoztathatja
felhasznlnevt, jelszavt, j email cmet adhat meg. Megadhat egy alrst, mely minden hozzszlsa alatt megjelenik, valamint bellthatja a helyi id znjt, s gy az oldalon tallhat id pontok ennek megfelel en jelennek meg.
Felhasznli men
2. bra
3.3.2. Adminisztrtor
Adminisztrtori men
3. bra
-5-
Szab Blint
A Drupal CMS rendszer felptse A rendszer adminisztrtora a bejelentkezs utn egy b vebb ment kap, mint
a felhasznlk (3. bra). Az adminisztrci menpont alatt egy listt kapunk a bellthat sszetev kr l. Beviteli formk: Tartalmak bekldsekor kivlaszthatjuk, hogy milyen jelleg Alapesetben hrom lehet sg kzl vlaszthatunk: Filtered HTML : Egyszer HTML kdot adhatunk itt meg, de a hasznlhat elemek a tartalom.
korltozva vannak. Ezekt l eltr elemeket a rendszer nem veszi figyelembe. Az engedlyezett elemek listjt az adminisztrtor b vtheti s sz ktheti. A rendszer automatikusan elhelyezi a sortrseket a bert szvegben (<p>, <br>). A felhasznlk bekldtt hozzszlsai ezt a beviteli formt hasznljk. PHP code : A bekldtt tartalom PHP kdokat is tartalmazhat, ezek futtatst teszi lehet v. Alaprtelmezett esetben nincs benne HTML sz rs s automatikus sortrs. Biztonsgi okokbl clszer csak az adminisztrtornak engedlyezni ezt a beviteli formt. Full HTML : HTML elemeket hasznlhatunk minden korltozs nlkl.
Ezeken kvl az adminisztrtor hozhat mg ltre beviteli formkat, ahol a hrom sz r t (HTML sz rs, PHP kirtkel , Sortrs-talakt) tetsz legesen kombinlhatja. Belltsok: Itt el lehet vgezni a webhely alapvet belltsait. Megadhatjuk a webhely nevt s esetleg a jelmondatt, melyek az oldal tetejn jelennek meg hivatkozsknt a f oldalra. Megadhatjuk a webhely hivatalos email cmt, melyet a rendszer a felhasznlknak kldtt levelekben hasznl. Lerhatjuk az oldal cljt, s egy lblc zenetet, melyek az oldal tetejn illetve legaljn fognak megjelenni. Nevet adhatunk a -6-
Szab Blint
Lehet sgnk van rvid webcmek hasznlatra. Ebben az esetben a ?q= rsz nem jelenik meg az URL-ben. Ehhez szksg van a webszerver megfelel belltsra is. Nem tallhat, vagy nem hozzfrhet oldal krse esetn sajt hibajelent oldalt
hasznlhatunk, ezek elrsi tjt itt megadhatjuk. Lehet sgnk van belltani, hogy a hibazenetek csak a naplba, vagy a kperny re is kirdjanak, valamint a naplbejegyzsek megtartsnak id tartamt. Engedlyezhetjk az oldal gyorsttr hasznlatt. Ekkor a nvtelen felhasznlk ltal krt oldalakat egy adatbzisban trolja a Drupal, gy nem kell minden jabb krsre el lltani, hanem csak az adatbzisbl el venni. gy jelent sen gyorsul a kiszolgls, s cskken a szerver terhelse. Megadhatjuk annak a knyvtrnak a nevt, ahol a rendszer ltal kezelt fjlokat troljuk s egy ideiglenes (temp) knyvtrat. A file letltsi mdot privtra llthatjuk, ha szablyozni akarjuk a jogosultsgokat. Ezeken kvl mg a dtumra, naptrra vonatkoz belltsokat tehetjk meg. Blokkok: Az oldalon megjelenteni kvnt blokkokat kivlaszthatjuk s bellthatjuk. Ilyen blokkok pldul a belps, navigci vagy j felhasznlk blokkok. A blokkok megjelenst engedlyezhetjk mindenhol, sehol, bizonyos oldalakon, vagy bizonyos jelleg oldalakon. Szablyozhatjuk, hogy a felhasznlk testreszabhatjk -e maguknak a blokkokat. A blokkoknak sly rtket is adhatunk, ezzel tudjuk szablyozni az egymshoz viszonytott helyzetket (a nagyobb sly blokkok lesllyednek) [1-2 sz. mellklet]. Elrs szablyozs: Itt bellthatjuk a regisztrlt felhasznlk s a ltogatk jogosultsgait, valamint jabb felhasznli csoportokat hozhatunk ltre. Szablyokat vezethetnk be a regisztrci sorn megadand felhasznlnevekre s email cmekre. Felhasznlk A regisztrlt felhasznlk adatait megtekinthetjk s mdosthatjuk, j felhasznlkat adhatunk a rendszerhez. Itt sorolhatjuk a felhasznlkat azokba a csoportokba, melyeket az elrs szablyozs oldalon ltrehoztunk. Megadhatjuk a regisztrcis oldalon megjelen regisztrcis irnyelvek szveget, bellthatjuk az
A felhasznlk ltal bekldtt hozzszlsokat megtekinthetjk, trlhetjk, vagy szerkeszthetjk. Mdosthatjuk a megjelensket, s bellthatjuk a moderlsi szablyokat. Kategrik A tartalmakat kategrikba sorolhatjuk. Itt lehet sgnk van ltrehozni kategrikat. Modulok A Drupal egy modulokbl felpl rendszer. A modulok hasznlatt klnkln engedlyezhetjk, vagy tilthatjuk. Napl A rendszer ltal kldtt zenetek a naplba rdnak, ezeket tekinthetjk meg ezen az oldalon. Lehet sgnk van kategrinknt megnzni ket. Nyelvek A Drupal fellett msik nyelvre tudjuk lltani. Ehhez egy nyelvi llomnyt kell importlnunk, majd kivlasztani a listbl az j nyelvet. Lehet sgnk van nyelvi fjlba exportlni is. Sminkek A Drupal fellett teljes mrtkben testre lehet szabni gynevezett sminkekkel (theme). Ezek stluslapokkal (CSS) vltoztatjk meg az oldal kinzett. A rendszer magban foglal ngy sminket. Ezekhez tlthetnk le jabbakat az internetr l, vagy kszthetnk magunknak is. Tartalom Az eddig bekldtt tartalmakat szerkeszthetjk. Lehet sgnk van a tartalmakat cmlapra helyezni vagy eltvoltani, elrejteni, kiemelni, trlni. Korltozhatjuk az egy oldalon megjelen tartalmak szmt.
-8-
Szab Blint
-9-
Szab Blint
5. bra
4.1.1. Database
Ha belpnk a Drupal knyvtrba (5. bra), az els alknyvtr a database. Az els kt file a database.mysql s a database.pgsql. Ezek a Drupal rendszer
adatbzisnak a dumpjai MySQL s PostgreSQL rendszerekhez. A harmadik file az updates.inc. Ez egy include llomny, mely az update.php llomnyba van beillesztve. Ez a file tartalmazza a Drupal rendszer jabb verzira trtn frisstsekor szksges, adatbzis m veleteket vgrehajt PHP fggvnyeket.
4.1.2. Files
A rendszer ltal kezelt file-ok alaprtelmezett trolsi helye. Ide kerlnek a klnbz sminkek logkpei, a feltlttt egyb llomnyok, s ha publikus letltsi mdot vlasztottunk a belltsoknl, akkor itt tartjuk a letlthet llomnyokat. A pictures alknyvtrba kerlnek ha engedlyeztk a hasznlatt a felhasznlk
- 10 -
Szab Blint
4.1.3. Includes
Ebben a knyvtrban troldnak az include llomnyok. Bootstrap.inc: Az index.php, cron.php s az xmlrpc.php llomnyokba van beillesztve. Azokat a fggvnyeket tartalmazza, melyekre szksg van minden, a Drupalhoz rkezett krs esetn. Common.inc: Szintn az index.php, cron.php s xmlrpc.php llomnyokba van illesztve, olyan kzs fggvnyeket definil, melyeket sok modul hasznl. Azok a fggvnyek, melyeknek rendelkezsre kell llni ppen akkor, mikor egy cache-elt oldalt szolgltat a rendszer, a bootstrap.inc file-ban tallhatk. Database.inc A bootstrap.inc llomnyba van beillesztve. Az adatbzisszerver tpustl fggetlen, adatbzis-m veleteket vgrehajt fggvnyek defincijt tartalmazza. A MySQL vagy PostgreSQL specifikus adatbzis-kezel fggvnyek include
llomnybl kerlnek beillesztsre. Az adatbzis szervernek megfelel en a database.mysql.inc, vagy a database.pgsql.inc. File.inc A common.inc llomnyba van beillesztve. Ez tartalmazza a fjlkezelshez szksges fggvnyek s konstansok defincijt. Image.inc Szintn a common.inc llomnyba van beillesztve. Kpek kezelst vgz fggvnyek defincijt tartalmazza. Locale.inc A locale.module llomnyba van beillesztve. Klnbz kezelst, s a nyelvek kezelst lehet v tv oldalak nyelv hozzadsa nyelvi file-ok
importls, exportls, j
- 11 -
Szab Blint
Menu.inc A common.inc llomnyba van beillesztve. A Drupal menjnek m kdtetst vgz fggvnyek, s a men llapotrl informcit trol konstansok (flag)
defincijt tartalmazza. Module.inc A bootstrap.inc llomnyba van illesztve. A Drupal moduljainak vizsglatt, hasznlatt vgz fggvnyek definciit tartalmazza. Pager.inc A common.inc llomnyba van beillesztve. Olyan fggvnyek definciit tartalmazza, melyek az adatbzis-m veletek eredmnyeit egymssal kapcsolatban ll oldalak csoportjaknt jelentik meg (6. bra).
Egymsra mutat tblk
6. bra
Session.inc A bootstrap.inc llomnyba van beillesztve. A felhasznli munkamenetek (session) kezelst vgz fggvnyek definciinak gy jtemnye. Tablesort.inc A common.inc llomnyba van beillesztve. Olyan fggvnyek definciit tartalmazza, melyek segtik, hogy a felhasznl a megjelentett tblzatokat klnbz oszlopok szerint rendezhesse sorba (7. bra). Ehhez csak a tblzat cmsorban a megfelel helyre kell kattintani az egrrel.
- 12 -
Szab Blint
Rendezett tblzat
keresztl a Drupal megjelensnek, kperny kimenetnek a kezelst vgz fggvnyek definciit tartalmazza. Xmlrpc.inc, xmlrpcs.inc Az RPC protokoll tvoli kiszolglkon tallhat fggvnyek meghvst teszi lehet v. [3] Ennek egy fajtja az XML-RPC, melyet a Drupal is hasznl. Az xmlrpc.inc llomny az xml-rpc krsekhez, az xmlrpcs.inc a krsek kiszolglshoz szksges fggvnyeket tartalmazza.
4.1.4. Misc
Kpek s stluslap llomnyok tallhatk ebben a knyvtrban. Ezek a Drupal alaprtelmezett fellbrlni. megjelenshez szksgesek. A sminkekkel ezeket tudjuk
4.1.5. Modules
A Drupal rendszer modulris felpts . Minden funkcit egy nll modul lt el, amely ha nem alapfunkci kikapcsolhat vagy bekapcsolhat, gy a
- 13 -
Szab Blint
rendszer teljesen testreszabhat. Ezeknek a moduloknak a forrsllomnyai tallhatk ebben a knyvtrban. Az egyes modulok funkcijnak lersa a Drupal men
4.1.6. Scripts
Az ebben a knyvtrban tallhat llomnyok mintk Perl script-ek s Linux shellscript-ek rshoz.
4.1.7. Sites/default
Ebben a knyvtrban tallhat a settings.php llomny. Ez a Drupal alaprtelmezett, honlapunkra jellemz belltsokat tartalmaz konfigurcis
llomnya. Ebben az llomnyban adjuk meg az adatbzis szerver URL-jt ($db_url), s lehet sgnk van belltani egy el tagot az adatbzistbla-nevek el ($db_prefix). Meg kell adni a honlapunk kezd lapjnak URL-jt ($base_url). Bizonyos PHP belltsokat is eszkzlhetnk. Lehet sgnk van bizonyos fggvnyek viselkedsnek futsidej segtsgvel. befolysolsra az ini_set() fggvny
4.1.8. Themes
Sminkekkel (theme) a Drupal megjelense teljesen megvltoztathat (8. bra). A sminkek knyvtrai ebben a knyvtrban tallhatk. A sminkek tbb llomnybl llnak. Az oldal megjelenst egy vagy tbb stluslap (CSS) hatrozza meg. A sminkek lehetnek nllak, ekkor egy .theme kiterjeszts PHP llomny kezeli a megjelentst. Lehet sgnk van a Drupal Xtemplate sablon kezel je segtsgvel, egy HTML llomnnyal kezelni a kimenetet. Ekkor a fjl kiterjesztse .xtmpl. Ez a sablon a themes/engines/xtemplate/ knyvtrban tallhat, az xtemplate.engine llomny valstja meg a kapcsolatot az xtemplate llomnyok, s a Drupal sminkkezel rendszere (theme system) kztt.
- 14 -
Szab Blint
Klnbz sminkek
4.2.1. Blocks
A Drupal bizonyos funkcii kln blokkban jelennek meg a felhasznli felleten. Ebben a tblban ezeknek a blokkoknak a tulajdonsgai troldnak. Pldul a blokk sttusza (engedlyezett-e?), a slya, mely alapjn sorba rendezi a rendszer a megjelentett blokkokat, s a terlet azonostja, ahol megjelenik az adott blokk az oldalon bell.
- 15 -
Szab Blint
4.2.2. Cache
A rendszer a megjelentett sszetev ket gyorsttrazza, gy azok
4.2.3. Comments
A felhasznlk ltal bekldtt hozzszlsok troldnak ebben a tblban. A hozzszlsok azonostt kapnak (cid), ez lesz az els dleges kulcs. Troldik, hogy melyik tartalomhoz kapcsoldik (nid), ki a szerz je (uid), honnan rkezett (hostname) s mikor (timestamp), valamint az olvasktl kapott pontszmok.
4.2.4. Files
A rendszer ltal kezelt llomnyokrl tartalmaz informcikat. Azonostt rendel hozzjuk (fid), s tartalmazza, hogy melyik tartalomhoz kapcsoldnak (nid), a fjl nevt, elrsi tjt, tpust (filemime) s a mrett.
4.2.5. Node
A bekldtt tartalmakat trolja. A tbla els dleges kulcsa a tartalom azonostja, a nid mez (node id.), melyet tbb tbla is hasznl (pl.: comment, files). Troldik a tartalmak tpusa (oldal vagy rs), a cm, a bekld azonostja (uid), az, hogy engedlyezett-e a megtekintse (status), a ltrehozs s az utols vltoztats dtuma. Ezenkvl engedlyezett-e a hozzszlsok rsa-olvassa (0-minden tiltott, 1-csak olvashat, 2-rhat/olvashat), moderlhat-e, milyen sz r t alkalmaztak r (format: 1-sz rt HTML, 2-PHP kd, 3-teljes HTML), cmlapon megtallhat-e (promote=0/1), valamint a cmlap tetejn van-e (sticky=0/1).A teaser mez ben a bevezet , a body mez ben a hozzszls trzse troldik.
4.2.6. Role
A felhasznli csoportokat tartalmazza, melyekhez azonostt rendel. Alapesetben csak kt rtk van benne, anonymous user (rid=1) s authenticated user (rid=2), de az adminisztrtor b vtheti a listt.
- 16 -
Szab Blint
4.2.7. Search_index
A rendszer indexeli a tartalmakat a keress meggyorstshoz, ezek az adatok itt troldnak.
4.2.8. System
A rendszer f sszetev inek (modulok s sminkek) elrsi tja s rvid lersa tallhat ebben a tblban. A modulok s a rvid lersok a Drupal adminisztrci/modulok oldaln jelennek meg.
4.2.9. Users
A tbla els dleges kulcsa a felhasznl azonost, az uid mez (user id.), melyre tbb tbla is hivatkozik (comments, node, users_roles). A rendszer felhasznlirl tartalmaz informcikat, pldul a felhasznl jelszavt kdolt formban, az e-mail cmt, a hozzszlsok alatt megjelen alrst, az oldalon hasznlt nyelvet, az alaprtelmezett id znt. Ha a felhasznl tlttt fel magrl kpet, akkor ennek az elrsi tja is megtallhat, valamint a felhasznl ltrehozsnak s adatai utols mdostsnak dtuma id blyeg formban.
4.2.10. Users_roles
A regisztrlt felhasznlkhoz hozzrendel egy csoportazonost szmot (rid) a role tblban meghatrozottak kzl, annak megfelel en, hogy a felhasznl melyik csoportba tartozik.
4.2.11. Variable
A rendszerr l informcit szolgltat vltozk nevt s rtkt tartalmazza. Pldul az utols frissts dtuma (update_start), alaprtelmezett smink
(theme_default), az oldal neve (site_name), az oldal e-mail cme (site_mail), alaprtelmezett id zna (date_default_timezone), stb
4.2.12. Watchdog
A Watchdog a Drupal naplz rendszere, ebbe a tblba rja a rendszerzeneteket. Rgzti az zenet szvegt, tpust, az zenethez tartoz - 17 -
Szab Blint
felhasznl azonostjt (uid) s a host nevt, az zenet slyossgt, az oldalon belli helyet, ahol az zenet generldott, valamint a ltrejttnek idejt id blyeg formban.
- 18 -
Szab Blint
5. Fggvnyek feltrkpezse
A Drupal 4.6.3.-as verzija PHP4-ben rdott. Ebben a fejezetben a rendszer m kdshez legszksgesebb fggvnyeket fogom kiemelni. Az alap fggvnyek defincii a 4.1.3. fejezetben trgyalt include llomnyokban tallhatk. Ezeken kvl megemltek nhnyat a fontosabb modulok fggvnyei kzl. Ezek defincii a modules knyvtrban, .module kiterjeszts llomnyokban tallhatk.
5.1.1. User_load
Paramterknt egy tmbt kap, melyben a felhasznl bizonyos tulajdonsgai vannak. Ezek alapjn megkeresi a felhasznlt az adatbzisban, s onnan az rtkeket a $user objektumba tlti. Ez az objektum a fggvny visszatrsi rtke.
5.1.2. User_save
Paramterknt a $user (a user_load fggvny visszatrsi rtke) objektumot kapja. A felhasznli adatok mdostst vagy ltrehozst vgzi el. A felhasznlt az adatbzis tblban, az objektumban tallhat uid (user id) alapjn keresi meg, ha az nem nulla. Ekkor elvgzi a vltoztatsokat, majd jratlti az adatokat a user_load fggvny meghvsval. Ha az uid nulla, akkor ltrehozza az j felhasznlt, utna hasonlkppen jr el mint az el z ekben. A fggvny visszatrsi rtke a $user objektum.
- 19 -
Szab Blint
5.2.1. Node_load
A tartalmat a paramterknt kapott $conditions tmb alapjn keresi meg, mely a tartalom jellemz it tartalmazza. ltalban csak a nid (node id) tulajdonsg tallhat benne. A tartalom adatait egy $node objektumba tltik be, ez lesz a fggvny visszatrsi rtke.
5.2.2. Node_save
Paramterknt a $node objektumot kapja. Ez alapjn megllaptja, hogy ltezik e mr a tartalom. Ha nem, akkor az aktulis id pontot hozzadja a created s changed mez khz, s az adatbzisba menti a tartalom adatait az objektumbl. Ha ltezik mr a tartalom az adatbzisban, akkor csak a changed mez t rja fell, s frissti az adatbzis tblt az j adatokkal. Visszatrsi rtke a tartalom azonostja, a nid mez rtke.
(includes/database.$db_type.inc), ha ltezik. Ha nem ltezik, akkor hibazenetet kld. Visszatrsi rtke az aktv adatbzis URL-je.
5.3.2. Db_connect
Ltrehozza a kapcsolatot egy adatbzissal. A fggvny lehet v teszi, hogy ne a szoksos MySQL portot hasznljuk. Paramterknt az adatbzis URL-jt kapja, amit a PHP parse_url fggvnynek segtsgvel egy tmbb alakt. Ha az URL-ben portszm is meg volt adva, azt szvegknt, egy kett sponttal elvlasztva hozzf zi az - 20 -
Szab Blint
URL-hez. Ezutn ltrehozza a kapcsolatot a MySQL szerverrel (mysql_connect), s kivlasztja az adatbzist (mysql_select_db). A visszatrsi rtke, a mysql_connect ltal visszaadott kapcsolatazonost.
5.4.1. Init_theme
Ez a fggvny inicializlja a sminkrendszert. Paramtere nincs. Megvizsglja, hogy a kivlasztott smink rajta van-e az engedlyezett sminkek listjn. Ha nincs, akkor az alaprtelmezett Bluemarine sminket lltja be. Ha a kivlasztott smink egy nll smink, akkor beilleszti, ha pedig PHP- vagy Xtemplate smink, akkor a template motort illeszti be. Megkeresi a sminkhez hasznlt stluslapot, s azt is betlti. Visszatrsi rtke az aktulis smink neve.
5.4.2. Theme
Ez a fggvny vgzi a Drupal megjelentend sszetev inek talaktst a sminknek megfelel en. Paramtere nincs. Ha mg nincs inicializlva a smink, akkor meghvja az init_theme fggvnyt. Ezutn, ha a smink egy nll smink, akkor annak a fggvnyeit, ha valamelyik templete-et hasznlja, akkor a template motor fggvnyeit, ha pedig egyik sem, akkor a Drupal fggvnyeit hvja meg. Visszatrsi rtke a meghvott fggvnyek ltal generlt HTML kd.
- 21 -
Szab Blint
6. j smink ksztse
A Drupal fellett egy sminkkel teljesen megvltoztathatjuk. Smink rsra tbbfle lehet sgnk is van. rhatunk teljesen nll sminket, ekkor egy PHP llomnyt kell ksztennk .theme kiterjesztssel. Hasznlhatjuk azonban a Drupal valamelyik template motorjt is. Ebben a dolgozatban a legegyszer bb mdszerre nznk egy pldt, XTemplate segtsgvel hozunk ltre egy j sminket. Ehhez csak a HTML/XHTML nyelvet kell ismerni. Els lpsknt ltre kell hoznunk egy alknyvtrat a themes knyvtrban. Ennek a knyvtrnak a neve lesz az j smink neve, ez fog megjelenni a Drupal adminisztrcis felletn. Ebben a knyvtrban ktelez en csak egy llomnyt kell elhelyezni, egy xtemplate.xtmpl nev , HTML/XHTML llomnyt. Ezeknek a nyelveknek az elemeit hasznlja, illetve nhny specilis XTemplate tag is tallhat benne. Ezenkvl opcionlisan elhelyezhetnk mg a knyvtrban stluslapokat, kp vagy JavaScript llomnyokat. Ha stluslapot is elhelyeznk a knyvtrban, annak a neve legyen style.css, ekkor a Drupal automatikusan alkalmazni fogja, s nem kell neknk beillesztennk az XTemplate llomnyunkba. Ha a sminknk knyvtrn bell ltrehozunk egy jabb knyvtrat, s ebben is elhelyeznk egy style.css nev llomnyt, akkor az alknyvtr nevvel egy jabb sminket kapunk. Ez ugyanazt az XTemplate llomnyt fogja hasznlni, mint az el z , csak az j stluslappal. Az XTemplate llomnyokban kt klnleges elemmel b vlnek a
HTML/XHTML elemek. Az egyik a terletet jelli ki, ahol a megadott sszetev meg fog jelenni. Ezek kztt fognak elhelyezkedni az adott elemhez tartoz HTML elemek. Pl.: <!-- BEGIN: title --> <!-- END: title --> A msik az adott sszetev konkrt helyt jelli a HTML elemeken bell. Ezeknek a formja: Pl.: {title}
Szab Blint
<!-- BEGIN: title --> . . <h1 class="title">{title}</h1> . . <!-- END: title --> A kipontozott terletre egyb HTML elemek kerlhetnek, vagy ms sszetev k ehhez hasonl keretben, mivel ezek egymsba gyazhatk. Pl.: <!-- BEGIN: node --> <!-- BEGIN: title --> <!-- END: title --> <!-- END: node -->
sminket
vesznk alapul, s azt kezdjk mdostgatni. n a Drupal 4.6.3-as verzijban is megtallhat Pushbutton nev sminket vlasztottam ki talaktsra.
- 23 -
Szab Blint
7. sszefoglals
Szakdolgozatom clja az volt, hogy ltalnos kpet adjon a tartalomkezel rendszerekr l azoknak, akik weblapksztsi, webprogramozi ismeretekkel rendelkeznek, de a CMS-ek tmjban jratlanok. Ehhez a Drupal j eszkznek bizonyult, megfelel azoknak az elvrsoknak, melyeket egy tartalomkezel vel szemben tmaszthatunk. Hasznlata egyszer en tanulhat, felptse logikus. gy gondolom, hogy sikerlt egy olyan dolgozatot rnom, amely megfelel segtsg lehet a tartalomkezel rendszerekkel s a Drupallal ismerked k szmra. A dolgozat rsa kzben magam is sok j ismerettel gazdagodtam. Els sorban a Drupalrl s a tartalomkezel kr l tanultam sokat, de a fggvnyek vizsglata s a smink rsa ltal a PHP, HTML s CSS nyelvek tern is szereztem tapasztalatokat.
- 24 -
Szab Blint
8. Irodalomjegyzk
[1]. OpenSourceCMS http://opensourcecms.com/index.php?option=com_reporter&queryId=32&menu Group=OSCMS [2]. Lehet sgek, szolgltatsok | drupal.hu http://drupal.hu/kezikonyv/lehetosegek [3]. Egyttm kds tvoli szolgltatsokkal | Weblabor http://weblabor.hu/cikkek/xmlrpc [4]. http://cms.lap.hu [5]. Tartalomkezel rendszerek, tartalom menedzsment http://www.fixaidea.hu/tartalomkezelo_rendszerek_cms_tartalom_menedzsment [6]. Netrix CMS http://www.netrix.hu/cms/ [7]. Netrix CMS http://www.netrix.hu/cms/cms_reszletesen.php [8]. ACT International - DirACTor 2.0 tartalomkezel rendszer (CMS) http://www.act-int.hu/megoldasaink/interaktiv/cms.php [9]. Content management system - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Content_Management_System [10]. drupal.org | Community plumbing http://drupal.org [11]. drupal.hu | A Drupal tartalomkezel magyar honlapja http://drupal.hu [12]. functions | drupaldocs.org http://drupaldocs.org/api/4.6/function [13]. Blake Schwendiman PHP 4 Referenciaknyv - 2. ktet
- 25 -
Szab Blint
[14]. Theme developer's guide http://drupal.org/book/export/html/509 [15]. Rimr Mikls - Honlapok formzsi lehet sgeinek b vtse a CSS nyelv segtsgvel Szakdolgozat
Szegedi Tudomnyegyetem Blcsszettudomnyi Kar - Szeged [16]. [ H T M L i n f o v2.0 ] - online agytp webmestereknek s m kedvel knek http://htmlinfo.polyhistor.hu/html_ref/main.htm
- 26 -