tarnai lászló: webes tartalomkezelő rendszerek felépítése, fejlesztése (drupal, joomla!),...
DESCRIPTION
SZAKDOLGOZATWEBES TARTALOMKEZELŐ RENDSZEREK FELÉPÍTÉSE, FEJLESZTÉSE (DRUPAL, JOOMLA!), SAJÁT CMS KÉSZÍTÉSEKészítette: Tarnai László programtervező informatikus alapszakos (BSc) hallgatóNyíregyháza, 2011.TRANSCRIPT
SZAKDOLGOZAT
Tarnai László
NYÍREGYHÁZA, 2010.
NYÍREGYHÁZI FŐISKOLA
TERMÉSZETTUDOMÁNYI ÉS INFORMATIKAI KAR MATEMATIKA ÉS INFORMATIKA INTÉZET
WEBES TARTALOMKEZEL Ő RENDSZEREK FELÉPÍTÉSE, FEJLESZTÉSE (DRUPAL, JOOMLA!),
SAJÁT CMS KÉSZÍTÉSE
Konzulens: Készítette: Vegera József Tarnai László mérnöktanár programtervező informatikus alapszakos (BSc) hallgató
Nyíregyháza, 2011.
1
Tartalomjegyzék
Bevezetés ........................................................................................................ 5.
Főbb honlap típusok ..................................................................................... 7.
Céges weboldalak .......................................................................................................... 7.
Közösségi portálok ......................................................................................................... 8.
Blogoldalak .................................................................................................................... 9.
Alapfogalmak ismertetése ......................................................................... 11.
HTML ........................................................................................................................... 11.
CSS ............................................................................................................................... 11.
PHP ............................................................................................................................... 12.
MySQL .......................................................................................................................... 12.
CMS .............................................................................................................................. 12.
CMS rendszerek jellemzői ......................................................................... 13.
Mikor érdemes CMS rendszert alkalmazni? ................................................................ 16.
Alkalmazási területek ................................................................................................... 17.
Előnyök ........................................................................................................................ 18.
Melyik CMS-t válasszuk? ............................................................................................. 18.
Rendszerkövetelmények ............................................................................................... 19.
Tartalomkezelő rendszerek felépítése ...................................................... 20.
Motor ........................................................................................................................... 20.
Kiegészítők ................................................................................................................... 20.
MVC ............................................................................................................................. 21.
Az adminisztrációs felület ismertetése ..................................................... 21.
Tartalmak közzététele ................................................................................ 22.
Felhasználó kezelés a CMS rendszerekben ............................................. 22.
Bővítmények a tartalomkezelő rendszerekben ........................................ 24.
Modulok ....................................................................................................................... 24.
Sablonok ....................................................................................................................... 24.
Drupal .......................................................................................................... 26.
A Drupal legfontosabb jellemzői ................................................................................. 28.
A Drupal architektúrája ............................................................................ 28.
2
Drupal MVC ................................................................................................................. 29.
Telepítés ....................................................................................................... 30.
A telepítés lépései ......................................................................................................... 32.
A Drupal motorja ....................................................................................... 32.
Alapszolgáltatások ....................................................................................................... 33.
Alapmodulok ................................................................................................................ 33.
Szükséges elemek ......................................................................................................... 33.
Nem szükséges elemek ................................................................................................. 34.
Felhasználói felület ..................................................................................... 34.
Menük ........................................................................................................................... 34.
Navigációs menü .......................................................................................................... 34.
Blokkok ......................................................................................................................... 35.
Kezdőlap ...................................................................................................................... 35.
Modulok kezelése ........................................................................................ 36.
Telepítés és használat .................................................................................................. 36.
Adminisztráció ............................................................................................ 37.
Tartalom beküldése .................................................................................... 39.
Felhasználó kezelés ..................................................................................... 40.
Felhasználók létrehozása ............................................................................................. 41.
Jogosultságok ............................................................................................................... 41.
Sminkek ....................................................................................................... 42.
Telepítés és alkalmazás ................................................................................................ 42.
Eltávolítás .................................................................................................................... 43.
Drupal 7 ....................................................................................................... 44.
Jo omla! ........................................................................................................ 46.
Alapvető tulajdonságok ................................................................................................ 47.
A Joomla! architektúrája .......................................................................... 48.
Joomla! MVC ............................................................................................................... 48.
Joomla 1.5 .................................................................................................... 49.
Installálás .................................................................................................... 49.
3
A telepítés lépései ......................................................................................................... 50.
Telepítés utáni teendők ................................................................................................ 52.
Bővítmények, szolgáltatások és kiegészítők ............................................. 54.
Komponensek ............................................................................................................... 55.
Modulok ....................................................................................................................... 56.
Beépülő modulok .......................................................................................................... 57.
Sablonok ....................................................................................................................... 57.
Nyelvek ......................................................................................................................... 57.
Bővítmények telepítése és eltávolítása ......................................................................... 57.
Adminisztrációs felület .............................................................................. 59.
Vezérlőpult ................................................................................................................... 59.
A Vezérlőpult funkciói .................................................................................................. 61.
Globális beállítások ..................................................................................................... 64.
Új tartalom létrehozása ............................................................................. 67.
Felhasználói felület ..................................................................................... 69.
Szerkezeti felépítés ....................................................................................................... 70.
Felhasználó kezelés ..................................................................................... 72.
Joomla 1.6 .................................................................................................... 73.
Saját CMS készítése ................................................................................... 75.
Tervezés ....................................................................................................... 75.
Követelmények ............................................................................................................. 75.
Látványterv .................................................................................................................. 76.
Megvalósítás ................................................................................................ 77.
Mappaszerkezet ............................................................................................................ 77.
index.php ...................................................................................................................... 77.
config.php .................................................................................................................... 78.
class.php ...................................................................................................................... 79.
register.php .................................................................................................................. 84.
login.php ...................................................................................................................... 88.
logout.php .................................................................................................................... 90.
install.php .................................................................................................................... 90.
4
step1.php ...................................................................................................................... 90.
step2.php ...................................................................................................................... 91.
step3.php ...................................................................................................................... 94.
about.php ..................................................................................................................... 95.
get-content.php ............................................................................................................ 95.
add-content.php ........................................................................................................... 95.
manage-content.php ..................................................................................................... 96.
update-content.php ...................................................................................................... 97.
lastmember.php ............................................................................................................ 97.
links.php ....................................................................................................................... 97.
registration.php ............................................................................................................ 98.
search.php .................................................................................................................... 98.
Összegzés ..................................................................................................... 99.
Felhasznált irodalom ................................................................................ 100.
5
Bevezetés
Manapság az internet egyre nagyobb szerepet kap az élet számos területén, egyre szélesebb
körben terjed el, ugyanakkor igen jelentős szerepet játszik a kommunikáció és a marketing
területén is. Rengeteg helyen találkozunk web és e-mail címekkel – szórólapokon,
plakátokon, rádióban, televízióban – az internet jelenlétét ma már nem zárhatjuk ki a
mindennapjainkból. Akár számítógép nélkül is csatlakozhatunk a webre: az asztali PC-ken
és notebookokon túl egyre több eszközbe építenek WIFI adaptert (mobiltelefonok,
játékkonzolok, stb.).
Egyetlen cég sem hagyhatja figyelmen kívül a világhálóban rejlő lehetőségeket, hiszen az
egyik legfontosabb információforrássá vált. Azonban már nem csak a különböző vállalatok
birtokolják, ugyanis mindenki számára elérhetővé vált, bárki rendelkezhet
internetkapcsolattal otthonában.
A programozás világában számomra mindig is a webprogramozás, a weboldalak
létrehozása, üzemeltetése, és fejlesztése mutatkozott a legérdekesebb feladatnak; diplomám
megszerzését követően is e területen szeretnék elhelyezkedni. Már régóta foglalkozom a
HTML nyelvvel, melyet CSS ismeretek elsajátításával is bővítettem. Később, főiskolai
tanulmányaim során, az "Internet eszközök és szolgáltatások" című tantárgy keretein belül
megismerkedtem a php programozási nyelvvel is. Ezt követően az "Informatika és
ügyvitelszervezés" című szabadon választható tantárgyon keresztül találkoztam a
tartalomkezelő rendszerekkel, a Drupal és Joomla! CMS-ekkel, melyek felkeltették az
érdeklődésemet, így iskolán kívül is foglalkozni kezdtem ezek megismerésével,
használatával. Egy ideje – főiskolai teendőim mellett – egy webfejlesztő cégnél dolgozom,
ahol többféle tartalomkezelő rendszert is megismertem és használok; elsősorban a Joomla!
és a Magento CMS-eket.
A Matematika és Informatika Intézet által javasolt szakdolgozat címek között szerepelt
egy, a webes tartalomkezelő rendszerek felépítésére és fejlesztésére irányuló szakdolgozati
téma; úgy gondoltam, ezen keresztül szélesíthetem eddigi tudásomat a CMS-ekkel
kapcsolatban. Mindazonáltal úgy láttam, ez jó lehetőség arra, hogy HTML, CSS, php és
SQL tudásomat tovább bővítsem, megismerkedhessek a CMS rendszerek lehetőségeivel,
és még inkább elsajátítsam azok használatát, mely előnyt jelenthet számomra a
későbbiekben.
6
Régebben az internetet statikus HTML oldalak alkották; létrehozásuk egyszerű volt,
azonban frissítésük, karbantartásuk bonyolult és időigényes folyamatot jelentett. Az
internet térhódítása, és az egyre növekvő igények megkövetelték a dinamikus oldalak
megjelenését, azonban a folytonos változást egy erre alkalmas nyelv (például a php)
önmagában nem tudta ellátni – szükség volt az adatok tárolására egy adatbázisszerveren.
Ezen oldalak könnyű létrehozásának és kezelésének érdekében jelentek meg a webes
tartalomkezelő rendszerek.
Ma már sokféle tartalomkezelő rendszer létezik. Célom, hogy átfogó képet kapjak, illetve
adjak ezek felépítéséről, használatáról, alkalmazásáról. Korábbi ismereteimre alapozva, a
szakdolgozat címében megjelölt két tartalomkezelő rendszer – a Drupal és a Joomla! –
vizsgálatával és használatával foglalkoztam behatóbban, így a lentiekben ezeket szeretném
ismertetni.
Mindkettő ingyenesen letölthető, nyílt forráskódú, php nyelven íródott rendszer.
Mindegyik rendelkezik magyar nyelvi csomaggal, kézikönyvvel, használati útmutatóval –
így hazánkban is sokan használják őket –, illetve mindegyiknek van saját, szintén magyar
nyelvű honlapja is, melyek fórumain bárki segítséget kérhet.
Szakdolgozatom gyakorlati részeként egy saját fejlesztésű CMS tesz szolgálatot; ennek
részletes bemutatása is sorra kerül a későbbi fejezetek egyikében.
Remélem, hogy e szakdolgozat – azon túl, hogy segít saját ismereteim bővítésében – egy
mások számára is hasznos dokumentáció lesz, mely jól használható segítség lehet a webes
tartalomkezelő rendszerekkel ismerkedőknek; mindazoknak, akik érdeklődnek a téma
iránt, de még nem jártasak benne. Az iromány jó alapul szolgálhat azok számára is, akik
saját webes tartalomkezelő rendszer fejlesztésébe szeretnének kezdeni.
7
Az internet főbb honlap típusai
A CMS-ek feladata a webes tartalomkezelés megvalósítása. Ma már rengeteg vállalat
használ ilyen rendszert honlapja alapjául. Gombamód szaporodnak a különféle közösségi
oldalak, internetes portálok, melyek szintén épülhetnek CMS-re. Mindennek tetejében
bárkinek lehetősége van a manapság oly divatossá vált blogírásból is kivenni a részét egy
saját, egyéni blogoldallal, melyet építhet egy tartalomkezelő rendszerre.
Mivel web alapú rendszerekről van szó, érdemes áttekinteni a fentebb említett főbb honlap
típusokat, mielőtt megismerkednénk bármilyen tartalomkezelővel.
1. ábra: A New York State Senate weboldala (Drupal)
Céges weboldalak
Az 1990-es évek első felében néhány vállalat úgy döntött, interneten is hirdetik magukat,
így megkezdték a világháló meghódítását. Többnyire céges adatok webre vitelét hajtották
végre; eleinte csak a cég adatait (cég neve, elérhetősége, tulajdonos neve, vállalkozás
bemutatása, stb.) helyezték el ezeken az oldalakon, később a cég által nyújtott
szolgáltatások, termékek bemutatása is a weboldal feladata lett. Sok oldal még ma is ezt a
szemléletet követi. Elég egyszerű felépítésű oldalakról van szó – a kis- és
középvállalkozások jelentős része igen keveset használ ki a web lehetőségeiből.
8
Közösségi portálok
Ezen oldaltípus ismertetése előtt tisztázandó a portál definíciója. Legegyszerűbb
megfogalmazás szerint a portál egy olyan webes felület, amely egy megcélzott felhasználói
kör számára személyre szabott hozzáférést biztosít bizonyos információkhoz,
alkalmazásokhoz, és egyéb tartalmakhoz.
Legismertebb jelentése: kapu, porta. Eredetileg azt a feladatot teljesítették, hogyha valaki
leült egy internetkapcsolattal rendelkező számítógép elé, de még nem rendelkezett kellő
ismeretekkel annak használatáról, a portál útmutatást adott a világhálón történő
tájékozódáshoz. Más megközelítésben: a portál olyan webhely, mely tartalmazza a
mindennapi munkához, vagy éppen a felhasználó érdeklődéséhez, szórakozásához
szükséges dolgokat. Egy portál akkor jó, ha leköt, szórakoztat, eligazít és segítséget nyújt a
weben történő böngészésben.
A közösségi oldalak manapság a világháló egyik legnépszerűbb részei. Ennél az típusnál
kiemelendő a Web 2.0, azaz a "webkettő" kifejezést, mely olyan internetes szolgáltatások
gyűjtőneve, amelyek elsősorban a közösségre épülnek, azaz a felhasználók közösen
készítik a tartalmat, vagy megosztják saját, illetve egymás információit. Ezen ismerősök
közötti kapcsolatokra épülő rendszerekben lehetőségünk van keresni, üzeneteket váltani
vagy egyéb adatokat cserélni. A szerver gazdája csak a keretrendszert biztosítja, az oldal
tartalmát a felhasználók hozzák létre, töltik fel, osztják meg, vagy kommentálják. Rengeteg
lehetőség adódik egy ilyen oldalhoz történő csatlakozást követően: saját adatlapot (profilt)
készíthetünk, tagjai lehetünk kisebb közösségeknek (kluboknak), blogot írhatunk,
képalbumokat készíthetünk és apróhirdetéseket adhatunk fel.
A tartalom létrehozása általában AJaX technológiával történik, de egyre elterjedtebbek a
Java vagy Flash alapú felhasználói felületek. Léteznek különféle közösségi portálok,
melyek a személyes, magánéleti kapcsolatokat hivatottak összegyűjteni – napjainkban igen
divatossá vált szájtok tartoznak ide, mint például a Facebook, az iWiW, vagy a MyVIP.
Léteznek olyanok is, melyek valamilyen szakmai, vagy egyéb téma alapján állnak össze –
például a prog.hu programozói portál.
A portáloknak két főbb fajtája létezik:
� vertikális portál
Szigorúan egy adott témával, vagy emberek egy csoportjával foglalkozik. Az adott
témával jóval behatóbban foglalkozik más oldalakhoz képest, ebből adódóan
9
általában szűkebb közönséghez szólnak. A vertikális portálokat az emberek csak
alkalmi jelleggel, akkor keresik fel, ha az adott témával kapcsolatos információkra
van szükségük.
� horizontális portál
Témák sokaságával foglalkozó "populáris" portál, amelyet az emberek általában
napi rendszerességgel látogatnak. A vertikális portáloknál jóval kevesebb, és
általában jóval kevésbé megbízható információkat kínálnak.
Blogoldalak
A blog szó a "weblog" kifejezésből – mely az angol "web" és a "log" (napló) szavak
összetételéből áll – rövidüléssel keletkezett, és ragadt meg a hétköznapi nyelvben
világszerte. Kezdetben magamutogató fiatalok hoztak létre ilyen oldalakat, céljuk az
önkifejezés volt. Így alakultak ki az úgynevezett énblogok, melyek bárki számára
olvasható személyes naplók: az írásokból megismerhetjük a szerző érzelmi világát,
érdeklődési körét, vagy azt, hogy mik történtek a vele adott napon.
2. ábra: Joomla! alapú blogoldal
Mára a lista kibővült, az énblogok mellett megjelentek újabb webnapló típusok. Létrejöttek
tematikus blogok, melyek egy adott témára koncentrálnak; hírblogok, melyek
10
hírkivonatokat tartalmaznak egy adott témakörben; leírásblogok, melyek tippeket,
leírásokat adnak az olvasóknak valamilyen művelethez, és így tovább.
Az egyik blogok versenyeztetésével foglalkozó hazai oldal, a Goldenblog az alábbi főbb
kategóriákat különbözteti meg:
� Mainstream: Nagy olvasottságú portálok, kiadványok, szervezetek által bevezetett,
támogatott blogok.
� Gasztro: Gasztronómiai témájú webnaplók.
� Kulturális: Kultúrával foglalkozó blogok, beleértve a művészetekről író
(képzőművészet, irodalom, színház, zene, stb.), és azt művelő oldalakat is
(versblog, irodalmi igényességgel írt naplók, stb.).
� IT: Informatikával foglalkozó blogok.
� Szórakozás: Ezen naplók témái lehetnek különféle programok, TV, szabadidő,
sport, mozi, játék, humor.
� Tanácsadó: Egy adott téma szakértője rendszeres tájékoztatást nyújt olvasóinak,
tippeket, tanácsokat ad látogatóinak, képbe helyezi és orientálja őket.
� Hír: Egy adott téma eseményeinek rendszeres követése (közéleti, gazdasági és
egyéb tematikus híroldalak).
� Fotó: Rendszeresen frissülő, fényképekből álló fotónaplók.
� Helyi érték: Települési, regionális, utazási és "kiküldetési" blogok.
� Komplex: Olyan webnaplók, ahol a szerző személyes bejegyzéseit, tematikus
írásait, fotóit, közéleti észrevételeit egy felületen publikálja. A középpontban a
sorokat jegyző személy áll, ő értékel, elemez többféle témában.
A blogok rövidebb-hosszabb szöveges irományokból, úgynevezett bejegyzésekből, vagy –
az angol "post" szóból eredően – posztokból állnak. Ezek leggyakrabban fordított időrendi
sorrendben találhatók az oldalon – a legfrissebb bejegyzés kerül az oldal tetejére. Minden
bejegyzés saját, állandó, egyedi linket kap, ez az úgynevezett permalink.
A blogok egyik fontos része a hírcsatorna (feed), mely lehetővé teszi kedvenc blogjaink
összesített, egy helyen történő olvasását, továbbá értesít minket a webnapló frissüléséről, a
frissen publikált posztokról. A feedek legelterjedtebb formái az RSS 2.0 és az ATOM 1.0,
mindkettő XML alapú dokumentum.
11
Alapfogalmak ismertetése
Mivel a szakdolgozat tárgya a webfejlesztéssel kapcsolatos, illetve a CMS rendszerek web
alapúak, így érdemes tisztában lenni néhány ehhez kapcsolódó alapfogalommal, mielőtt
foglalkoznánk bármilyen tartalomkezelővel.
A webes tartalomkezelő rendszerek php nyelven íródnak. Mivel a hangsúly a tartalmon
van, és sok adatot tárolunk, ezért azokat adatbázisba rendezzük – épp ezért a
tartalomkezelők MySQL-re épülnek. Lentebb megismerkedünk ezen fogalmakkal is.
HTML
A HTML (HyperText Markup Language) a webes dokumentumok leírására szolgáló
jelölőnyelv, mely mára internetes szabvánnyá nőtte ki magát. Olyan speciális jelölőket
(tag) alkalmaz, melyek körülveszik a dokumentum adott részeit, és meghatározzák, hogy a
kliens eszköz hogyan értelmezze azokat.
Később megjelent az XHTML (eXtensible HyperText Markup Language) is, mely a
HTML kiterjesztett változata XML-ben (eXtensible Markup Language); jelentős eltérés
nincs a két nyelv között, csak szigorúbb formai követelményeket határoztak meg.
A HTML/XHTML statikus weboldalak írására alkalmas, azaz időben állandó viselkedésű
és kinézetű lapok készíthetők vele.
CSS
A CSS (Cascading Style Sheets) egy stílusleíró nyelv, melynek segítségével olyan
stíluslapok készíthetők HTML/XHTML típusú strukturált dokumentumokhoz, amik
formázzák a weblap kinézetét. Teljes körű stílust lehet megadni, befolyásolva az
elrendezést, a színt, a betűtípusokat.
Tervezése során a legfőbb szempontot az jelentette, hogy elkülönítsék a dokumentum
struktúráját (melyet a HTML ír le) a kinézettől (melyet a CSS határoz meg), ezzel növelve
a weblapok rugalmasságát, használhatóságát, illetve csökkentve a HTML dokumentumok
komplexitását.
(Megjegyzés: A CSS-nek a tartalomkezelő rendszerek szempontjából az egyedi kinézeteknél
– sminkek, témák – van igen jelentős szerepe.)
12
PHP
A php (Hypertext PreProcessor) az egyik legelterjedtebb
webes programozási nyelv. Nyílt forráskódú, HTML-be
ágyazott szerveroldali szkriptnyelv, legfőbb felhasználási
területe a dinamikus weboldalak készítése.
A php oldalak elkészítésénél a HTML-t gyakorlatilag csak mint formázást használják,
ugyanis ezek a lapok php-re épülnek. Amikor egy php nyelven megírt oldalt akarunk
elérni, a kiszolgáló először feldolgozza a php utasításokat, és csak a kész (HTML)
kimenetet küldi a böngészőnek, így a forráskód nem látható kliensoldalról. Ehhez szükség
van egy értelmezőre (interpreter), mely általában egy külső modulja a webszervernek.
A php tulajdonképpen nagymértékű kiegészítése a HTML-nek. Számos olyan feladatra
képes, amelyre az ügyféloldali szkriptek nem, vagy csak korlátozottan (pl. bejelentkezés,
adatbázis-kezelés, fájlkezelés, e-mailküldés, adatfeldolgozás, stb.).
MySQL
A MySQL a legnépszerűbb nyílt forráskódú SQL (Structured
Query Language) adatbázis-kezelő. Mivel nyílt forrású, ezért
ez a legelterjedtebb. Egyedi illesztő felülettel számos
programozási nyelvvel elérhető (pl. C, C++, Delphi, Java, php).
Tökéletesen alkalmazható dinamikus webhelyekhez, így egy tartalomkezelő rendszer
működését tekintve a MySQL elengedhetetlen összetevő.
Az adatbázisok könnyen kezelhetőek php-val, így egyszerűen megjeleníthetők a kívánt
adatok a weblapokon.
CMS
A CMS egy angol mozaikszó (Content Management System), jelentése: tartalomkezelő
rendszer. Többféle megfogalmazás is létezik a webes tartalomkezelő rendszerekre.
Manapság leginkább azokat a web alapú rendszereket hívjuk így, amelyekkel internetes
oldalak, honlapok, portálok készíthetők programozói tudás nélkül. Olyan
szoftverrendszerről van szó, amely nem strukturált információk több felhasználó általi
elkészítését, kezelését, karbantartását, és tárolását teszi lehetővé.
13
3. ábra: Népszerű CMS-ek logói (balról: Drupal, Joomla!, e107, Wordpress)
A CMS ezen túl gondoskodik a felvitt tartalmak strukturált megjelenítéséről, statisztikák
készítéséről, és lehetőséget nyújt kiegészítő funkciók hozzáadására is. Fontos megjegyezni,
hogy a rendszer használata – általában a honlap elindításánál – csekély mértékben
igényelhet webfejlesztői, programozói ismereteket, azonban főleg a tartalmakra kell
koncentrálnunk. Az alkalmazás jellegéből adódóan a weboldal rövid idő alatt összeáll.
CMS rendszerek jellemzői
A CMS-ek célja, hogy egyszerűen lehessen tartalmakat (szöveg, kép, csatolt állományok,
stb.) felvinni, és azokat elérhetővé tenni az oldalra látogatók számára. A tartalomkezelő
rendszerek egyik legfontosabb tulajdonsága a dinamizmus. A tartalmat, továbbá annak
megjelenését – megfelelő jogosultság esetén – bármikor, bárhonnan meg lehet változtatni;
a tartalmak adatbázisban tárolódnak, ahonnan a rendszer a felhasználó böngészőjének
kérésére közzéteszi azokat.
A tartalomkezelők sablonok (template) segítségével választják el egymástól a tartalmat és
az oldal megjelenését. A sablonokat felfoghatjuk "keretrendszerként" is, ugyanis ha egy
CMS alapú weboldalon arculatot váltunk, elegendő a meglévő sablont lecserélni, a
tartalom változatlan formában jelenik meg az új külsőn. Egy dinamikus honlapot
mindössze egyszer kell grafikailag megtervezni, onnantól kezdve a tartalom könnyedén,
tetszés szerint változtatható. A későbbiekben bármilyen új funkcióval bővítjük oldalunkat,
az mindennemű grafikai átalakítás nélkül beépül oldalunkba, a honlap érintett részét nem
kell újraszerkesztenünk – mint azt egyébként a statikus honlapok esetében szükséges.
A CMS rendszerek tehát lehetőséget adnak arra, hogy az oldal látogatói különböző
szerepkörökben és különböző jogosultságokkal használhassák a weboldalt. A legtöbb
látogatónak általában csak olvasni van lehetősége az oldalakat, persze nagyobb
jogosultságköröket is adhatunk az egyes felhasználóknak. Ahhoz, hogy minden látogató
14
pontosan azt tehesse meg a honlapon, amire az oldal tulajdonosa vagy adminisztrátora
feljogosítja, elengedhetetlen a látogató személyének beazonosítása. Ehhez a legcélszerűbb
a felhasználók számára egyedi azonosítót létrehozni (más néven beregisztrálni őket), majd
ezekhez rendeljük a jogosultságokat. A regisztrálásra került felhasználó a weboldal
későbbi használata esetén egyedi, általában általa megválasztott felhasználónevének és
jelszavának megadásával azonosítja magát, azaz bejelentkezik.
4. ábra: CMS rendszerek általános struktúrája
Egy CMS alapú weboldalnak tehát szüksége van egy adminisztrátorra, akinek az összes
jogosultság a kezében van; a honlapon olyan feladatokat is végrehajthat, amelyek senki
15
másnak nem engedélyezettek. Így tehát ő lesz az, aki a többi felhasználó számára kiosztja a
megfelelő jogosultságokat.
A tartalmak létrehozása, beküldése, szerkesztése általában csak regisztrált, és
bejelentkezett látogatók számára engedélyezett. Léteznek olyan beállítások, melyeket
alkalmazva a látogatók bejelentkezés nélkül is küldhetnek be tartalmakat; ez általában
fórum bejegyzések, megjegyzések, illetve kommentek beküldése esetén bárki számára
engedélyezett.
Az oldalra történő regisztráció kétféle módon történhet: saját magunk végezzük el, vagy az
adminisztrátor regisztrál. A két lehetőség közül az adminisztrátor dönti el, melyiket
alkalmazza az oldalon.
5. ábra: CMS-ek legfőbb funkciói
A tartalomkezelőkre jellemző a modulos felépítés, amellyel egyedivé tehetjük oldalunkat.
Általános jellemző a CMS-ekre, hogy a több felhasználós rendszerek, vagyis egyszerre
többen szerkeszthetik a tartalmakat, telepíthetnek kiegészítőket. A meglévő, illetve utólag
hozzáadott modulok segítségével az azonos rendszerű honlapok is teljes mértékben testre
szabhatók.
16
A legtöbb CMS-ben található beépített keresőrendszer, így a honlapon elhelyezett
tartalmak között könnyen keresgélhetünk, egyszerűen megtalálhatjuk a szükséges
tartalmakat.
A tartalomkezelő rendszerek között mind az alapfunkciók, mind a kiegészítők terén
számos különbség van.
Mikor érdemes CMS rendszer alkalmazni?
Tartalomkezelő rendszert leginkább az aktív kommunikáció szempontjából érdemes
alkalmazni; olyan területeken érdemes használni, ahol fontos az oldalra látogatókkal
történő kommunikáció (pl. portálok, webáruházak, fórumok). Kiváló megoldás lehet, ha
gyorsan és egyszerűen akarunk friss híreket közölni, illetve ha jelentős mennyiségű
tartalmat szeretnénk megosztani elektronikus formában a világhálón. Segítségével
magánszemélyek egyszerűen alakíthatnak ki személyes blogoldalakat, míg a vállalatok
létrehozhatják saját, céges webhelyüket. Vállalati weboldal esetén az adott cég
csökkentheti kiadásait egy CMS alkalmazásával; nem kell drágán megbíznia egy
webfejlesztő céget az oldal elkészítésével. Sok esetben az erre a feladatra felkért cég, vagy
informatikus lassan végzi el a szükséges frissítéseket, azonban egy tartalomkezelő rendszer
alkalmazásával a vállalat dolgozói is könnyedén naprakészen tarthatják a cég honlapját –
ezzel jelentősen lerövidítve a frissítések idejét.
6. ábra: A Nyíregyházi Főiskola kezdőlapja (http://www.nyf.hu)
17
Alkalmazási területek
Egy webes tartalomkezelő rendszer számos honlap típus megvalósítására alkalmas. Gyors
és folyamatos fejlődésüknek köszönhetően a világháló egyre nagyobb területét foglalják el,
egyre több webhely kap CMS alapot.
Néhány fontosabb terület, melyek megvalósíthatók CMS-sel:
� céges weboldalak, portálok
� online kereskedelem
� kis- és középvállalatok weboldalai
� nonprofit szervezeti weboldalak
� kormányzati oldalak
� testületi intranetek és extranetek
� oktatási intézmények és templomok weboldalai
� személyes honlapok
� közösségi portálok
� internetes magazinok
� blogok
7. ábra: Joomla! alapú webáruház
18
Előnyök
Számos előnye van egy tartalomkezelő rendszernek. A fentebb már említett dinamizmuson
túl kiemelendő a fejlett CSS kezelés. Ebből eredően teljes mértékben testre szabhatóak
oldalaink, egyszerűen illeszthetünk be általunk készített webdizájnt; a meglévő, illetve az
általunk készített sminkeken túl számtalan más kinézet letölthető az internetről, melyeket
egyszerűen adhatunk hozzá a rendszerhez. Minden oldalhoz akár saját sablon is rendelhető.
Moduláris felépítésük révén – a jó pár alap modul mellé – egyedi igények alapján
fejlesztett modulok beillesztése is lehetséges. Módunkban áll JavaScript, Flash, és videó
beágyazása a tartalmakba. A CMS rendszerek általában kezelik és támogatják a
keresőbarát URL-eket. Tartalmaznak beépített és online segítség, így ha elakadunk
munkánk során, könnyedén kereshetünk megoldást a problémákra. Fontos, hogy a
felhasználók és csoportok menedzselése egyszerű és rugalmas legyen – a legtöbb
tartalomkezelő rendszer természetesen ezt is biztosítja.
Összefoglalva, a CMS-ek az alábbi főbb előnyökkel rendelkeznek:
� széleskörű alkalmazási terület
� sokoldalú bővíthetőség
� egyszerű tartalom feltöltés és kezelés
� költséghatékony honlap üzemeltetés
� beépített keresőoptimalizálás
� egyszerűen cserélhető dizájn
Melyik CMS-t válasszuk?
Sokféle tartalomkezelő rendszer közül választhatunk. A szabad licencű, ingyenes, és
általában nyílt forráskódú rendszerek mellett sok a kereskedelmi termék, és az egyedi
fejlesztés is. Léteznek egyszerűbb, illetve komplexebb rendszerek, kezdetlegesek és jól
kiforrottak. A népszerűbbek magyar nyelven is "beszélnek" hozzánk, ám léteznek olyanok
is, melyek csak külföldi nyelveket tartalmaznak. Választhatunk különféle
szerverkörnyezeten üzemeltethetőek közül (pl. Java, php, .Net). Vannak általános célú
CMS-ek, illetve speciális verziók (pl. e-learning).
Fontos szempont lehet, hogy a választás előtt ki tudjuk-e próbálni az adott rendszert.
Ebben rejlik az ingyenes, illetve nyílt forrású rendszerek egyik előnye: lehetőségünk van
az interneten, előre telepített rendszerek kipróbálására. A magyar nyelven is használható,
19
nyílt forrású CMS-ek nagy része a CMS Award oldalon tesztelhető, ezen felül még több
(angol nyelvű) rendszer kipróbálható az OpensourceCMS oldalon.
(Megjegyzés: az ingyenes és a nyílt forrású rendszer fogalma nem ugyanazt jelenti, sokszor
azonban – különösen a CMS-ek esetében – az ingyenes programok nyílt forrásúak is.)
Nem elhanyagolható szempont az sem, ha egy CMS aktív felhasználóiból álló közösség is
elérhető, akiktől szükség esetén segítséget kérhetünk, vagy megoszthatjuk velük
tapasztalatainkat.
A magyar felhasználók körében legelterjedtebb CMS-ek a Drupal, a Joomla!, a Moodle és
a Wordpress. Előbbi kettő általános célú rendszer, míg a Moodle oktatási oldalak, a
Wordpress pedig blogok esetén a legnépszerűbb.
8. ábra: A CMS Award kezdőlapja (http://cmsaward.hu)
Rendszerkövetelmények
A tartalomkezelők nagy részére jellemző, hogy platform függetlenek, azaz nem számít,
milyen operációs rendszert telepítettünk a számítógépre; lehet ez akár a Windows verziók
egyike (pl. NT, Millennium, XP, Vista, Se7en), valamilyen Linux disztribúció (pl.
openSUSE, Ubuntu, Debian), vagy akár egyéb más rendszer.
20
Fontos, hogy telepítve legyen számítógépünkre egy, a követelményeknek megfelelő php
fordító, amely elősegíti a CMS kódjainak értelmezését. Szükséges ezen kívül egy
adatbázis-kezelő rendszer megléte is; ez a tartalomkezelőtől függ, hogy melyiket
támogatja. A harmadik összetevő – mely elengedhetetlen a CMS működése szempontjából
– egy webszerver; a legelterjedtebb az Apache. Végezetül szükség van egy kliensre, mely
jelen esetben egy böngésző programot takar (pl. Internet Explorer, Firefox, Opera,
Chrome); munkánk nagy része ezzel zajlik.
Tartalomkezelő rendszerek felépítése
Egy tartalomkezelő rendszer két fő részre bontható: a CMS motor központi magja és a
kiegészítők között teszünk különbséget.
Motor
A CMS alapfunkcionalitásait megvalósító alkalmazás, illetve alkalmazások összessége.
Már önmagában is rendkívül sok szolgáltatást nyújt, ám alapvetően a különböző funkciók
hatékony összefogása a feladata. Mivel a motor alkotja rendszerünk magját, fontos, hogy
az itt található kódok kifogástalanok legyenek, ezért ezek garantáltan teszteltek, az esetek
döntő többségében korrektek és használhatóak. Az esetleges hibákat gyorsan javítják, mely
bekerül a soron következő frissítésbe.
Kiegészítők
Az adott CMS-sel foglalkozó közösség által készített kiegészítő funkcionalitások,
szolgáltatások (modulok), kinézetek (sminkek), felületfordítások és dokumentációk
összessége. Nincsenek olyan szigorú ellenőrzés alatt, mint a motor, ezért nem csak
tökéletesen működő komponenseket találhatunk; kellő óvatossággal kell a kiegészítőket
használnunk. Sajnos az is előfordul, hogy a fejlesztő egy idő után már nem foglalkozik az
általa megírt kiegészítővel; nem fejleszti tovább, nem tartja karban, nem javítja ki az
esetleges hibákat, nem frissíti.
A fejlesztés szempontjából a készítők további két kategóriát határoztak meg: mind a mag,
mind a kiegészítők esetén megkülönböztetnek stabil és fejlesztői változatot. Utóbbiakat
csakis nagy körültekintéssel használjuk, továbbá amennyiben lehetőségünk van, ne
alkalmazzuk őket a már elkészült, működő oldalunkon.
21
MVC
Az MVC egy angol mozaikszó (Model-View-Controller), mely a Modell-Nézet-Vezérlő
kifejezést takarja. Az MVC egy szerkezeti minta, melyet olyan rendszereknél alkalmaznak,
ahol sok adat jelenik meg a felhasználók előtt.
Célja, hogy az adathoz (Model - modell) és a felhasználói felülethez (View - nézet) tartozó
dolgokat szétválassza, annak érdekében, hogy a felhasználói felület ne befolyásolja az
adatkezelést, és az adatokkal történő munka se változtasson a felhasználói felületen. Az
MVC ezt úgy oldja meg, hogy elkülöníti az adatelérést a megjelenítéstől, a felhasználói
interakcióktól egy közbülső összetevő, a vezérlő (Controller) bevezetésével.
A legtöbb CMS is ezt a mintát követi.
9. ábra: Az MVC általános sémája
Az adminisztrációs felület ismertetése
Egy tartalommenedzsment rendszer használatához nincs szükség HTML ismeretekre. A
változásokat weboldalunkon egy úgynevezett adminisztrációs felület segítségével
végezhetjük el, amely az internetről elérhető, de csak regisztrációval – felhasználónévvel
és jelszóval – rendelkező felhasználók férnek hozzá. A változtatások azonnal megjelennek
22
oldalunkon, így a feladatokat jelentősen rövidebb idő alatt végezhetjük el, mintha egy
általunk megbízott programozó, vagy cég frissítésére várunk. A rendszer bármilyen igény
felmerülése esetén gyorsan és könnyedén bővíthető.
Tartalmak közzététele
A tartalomkezelők alapja a tartalom, e köré épülnek a CMS rendszerek. Alapvető céljuk,
hogy a tartalom előállításához ne legyen szükség programozói szaktudásra. Épp ezért a
rendszernek a tartalmak létrehozásához, szerkesztéséhez egy szövegszerkesztőhöz hasonló
megoldást kell biztosítaniuk a felhasználó számára.
Egy tartalomkezelő rendszernek sokféle tartalomtípust kell kezelnie. Ezek közül a
legegyszerűbbek a szöveges dokumentumok, a különböző írások, hírcikkek, melyek
pusztán szöveget tartalmaznak. A CMS-ek biztosítják a képkezelést is: különféle
formátumú képeket tölthetünk fel és ágyazhatunk be a létrehozott tartalmakba. Akár webes
fotóalbumokat is kreálhatunk, ha beépítjük rendszerűnkbe az ehhez szükséges
kiegészítőket. Megoszthatunk hanganyagokat, zenéket, sőt videókat is, bár ezek kezelésére
nagy valószínűséggel kiegészítő modulok letöltésére és telepítésére van szükség.
Létrehozhatunk fórumtémákat, szavazásokat, blogbejegyzéseket, közzétehetünk különféle
fájlokat; a lehetőségek tárháza szinte kimeríthetetlen.
Az oldalakon közzétett tartalmak függvényében kialakíthatunk bizonyos portálokat:
hírportált, internetes naplót, vagy alkothatunk olyan webhelyet, melyen online zene és
videó lejátszásra adunk lehetőséget a látogatók számára (mint például a Youtube nevezetű
oldalon).
A tartalmakat más szempontok alapján is megkülönböztetjük. Vannak publikus tartalmak,
és vannak olyanok, melyeket az oldal tulajdonosa ugyan már létrehozott, de még nem tette
közzé. Ezeket csak az adminisztrátor látja, az oldal látogatói és az internetes
keresőrendszerek mindaddig nem érik el, míg az adminisztrátor nem élesíti.
Felhasználó-kezelés a CMS rendszerekben
A dinamikus weblapok és az adminisztráció megjelenése megkövetelte a felhasználók
kezelését. Mivel az oldal adminisztrátora nem biztos, hogy a közzétett tartalmakat
mindenkivel meg akarja osztani, elengedhetetlenné válik, hogy felhasználókat hozzunk
23
létre, regisztráljuk őket a rendszerbe, és különböző jogosultságokkal lássuk el őket. Egy
CMS-nek erre is lehetőséget kell biztosítania, azaz rugalmas felhasználó-kezeléssel kell
rendelkeznie.
Minden rendszernek van egy adminisztrátora, aki teljes jogkörrel rendelkezik, bármit
megtehet az oldalon. Ha az oldal tulajdonosa úgy határoz, nevezhet ki újabb
adminisztrátorokat is maga mellé.
Az oldalra látogatók két csoportba sorolhatók:
� Azonosított felhasználók, akik már regisztrált tagjai a rendszernek, saját
felhasználónévvel és jelszóval rendelkeznek, mellyel beléphetnek a webhelyre.
Jogosultságaik korlátozottak, a jogokat az adminisztrátor rója ki.
� Ismeretlen felhasználók, akik ugyan ellátogatnak a webhelyre, de még nem
tagjai annak, nem rendelkeznek saját regisztrációval. Ezen felhasználók
általában csak a közzétett tartalmakat olvashatják, illetve menthetik le, egyéb
jogosultságuk nincs. Bizonyos esetekben számukra is nyitott néhány opció:
publikus szavazásokban vehetnek részt, vagy anonimként hozzászólásokat
fűzhetnek bizonyos tartalmakhoz. Ezekről szintén az adminisztrátor
rendelkezik.
A weboldal típusától függően hozhatunk létre különböző jogosultsági köröket. Mivel a
tartalomkezelő rendszerek alapvetően a tartalmak csoportos létrehozására, szerkesztésére,
karbantartására lettek kifejlesztve, így célszerű e szerint rendezni a felhasználókat.
Lehetnek olyanok, akik csak híreket, cikkeket tehetnek közzé, és létrehozható olyan kör is,
melynek tagjai az oldalhoz tartozó fórum kezelésére hivatottak.
A létrehozott webhelyre eleinte csak pár látogató érkezik, ám számuk az idő múlásával
valószínűleg egyre növekszik, így bizonyos létszám felett nehézkessé válhat a felhasználók
menedzselése, és a különböző jogosultságok kiosztása. Ezen probléma áthidalására
fejlesztették ki a CMS-ekben a tagok csoportosítását: csoportokat alakíthatunk ki, így nem
felhasználónként egyesével, hanem csoportokra oszthatjuk ki a kívánt jogokat. Ez a
módszer lényegesen leegyszerűsíti és felgyorsítja a felhasználó-kezelést.
24
Bővítmények a tartalomkezelő rendszerekben
Modulok
Egy CMS alaprendszer igen széleskörű tudással bír, ám meglehet, hogy az alap modulok
és szolgáltatások nem elégítik ki az adminisztrátor, vagy épp az oldalra látogatók igényeit.
A legtöbb tartalomkezelő rendszer filozófiája az, hogy a rendszermag gyors és flexibilis
legyen, illetve minél egyszerűbb legyen az egyedi kiegészítések integrációja.
A bővítményeket két fő csoportra oszthatjuk:
• beépített
Az alaprendszer része, megkapjuk őket a letöltött CMS-sel együtt. A különböző
rendszerbővítmények felett szabadon rendelkezhetünk, hogy használni szeretnénk-e
őket, vagy sem.
• letölthető
Mások által fejlesztett kiegészítők, melyeket az alaprendszer nem tartalmaz. Az
egyes letölthető bővítmények elsősorban az adott CMS hivatalos weboldalán
érhetők el.
Sablonok
10. ábra: A RocketTheme kezdőlapja
25
A tartalomkezelő rendszerek annak lehetőségét is biztosítják, hogy gyorsan, könnyen,
egyszerűen megváltoztathassuk a látogatók elé táruló webhely külcsínét. Találunk
alapsablonokat, melyeket a CMS telepítését követően élesíthetjük, módosíthatjuk az egyes
paramétereit (színek, fejléckép, stb.).
Ha szerénynek találjuk az alaprendszer nyújtotta megjelenést, lehetőségünk van egyedi
fejlesztésű témák (template-ek, skinek) letöltésére és alkalmazására. Bizonyos
fejlesztőcsapatok kifejezetten sablonok készítésére, szerkesztésére specializálódtak, tőlük
számos egyedi dizájnnal rendelkező minőségi sminket szerezhetünk be saját
rendszerünkhöz. Ilyen például a RocketTheme – a csapat prémium szintű külsőket készít
Drupal, Joomla!, Wordpress, Magento és phpBB rendszerekhez.
26
Drupal
A Drupal egy php-ben írt nyílt forráskódú tartalomkezelő rendszer.
Legszívesebben kollaboratív (csoportos) CMS-nek hirdetik,
melyet a teljes felhasználói körre kiterjedő szerzői lehetőségeknek
köszönhet – a látogatók regisztrálásával.
Fejlesztése során központi figyelmet kap a szabványos kódok
alkalmazása; fontos, hogy a cél kimenet a lehető legkevesebb
HTML szemetet tartalmazza, illetve megfeleljen az XHTML és CSS 2 szabványoknak.
A Drupal filozófiája a kész kódok minél nagyobb újrahasznosítása. Gyakran a különféle
modulok egymás mellé települve – kihasználva egymás tulajdonságait – sokkal több
funkcionalitást nyújtanak.
A rendszer egyik legnagyobb erénye az úgynevezett taxonómia-kezelés. Ez az összes
kategorizálási problémát hivatott áthidalni (hírrovatok, fórum kategóriák, blog tagek, stb.).
A taxonómia sokoldalú farendszerek létrehozását teszi lehetővé szinonimákkal, a
végpontok közötti kapcsolatokkal, és számos más szolgáltatással.
Egy másik fontos tulajdonsága a rendszernek, hogy szinte minden tartalom úgynevezett
node-okban tárolódik. Egy node a taxonómiák szerint kategorizálható, lehetnek különböző
verziói, hozzászólások tartozhatnak hozzá, és még számos tulajdonsággal rendelkezik.
11. ábra: A Drupal hivatalos honlapja (http://drupal.org)
27
Az alaprendszer az általánosságban használt modulokat tartalmazza (cikkek, fórumok,
hozzászólások, blogger API támogatás, stb.), továbbá alkotóeleme egy fejlett RSS
aggregátor, így arra is képes, hogy a webhely tartalmát RSS formában is elérhetővé tegye.
A rendszer több kategóriát is megvalósít:
� Tartalomkezelő rendszer (CMS - Content Management System)
� Tartalomkezelő keretrendszer (CMF - Content Management Framework)
� Web alkalmazásfejlesztő keretrendszer (WAF - Web Application Framework)
A Drupal legfontosabb jellemzői
• Rendszer
o Többféle, könnyen testre szabható sablonrendszer támogatása
o Blogger API
o Naplózás és statisztikák készítése
o Automatikus védelem túlterhelés esetén
o Kiváló bővíthetőség
• Adminisztráció
o Beágyazott adminisztrációs felület
o Könnyen megjegyezhető URL álnevek támogatása
o Csoportos, tartalom szintű jogosultság kezelés
o Többféle beviteli formátum
o Verziókezelés
o Beépített súgó
• Tartalomkezelés
o Rengeteg beépített tartalom típus (oldal, fórum, blog, stb.)
o Űrlapok
o Szavazások
o Szálkövető hozzászólások
o Vitafórumok
o Saját tartalomtípusok kialakításának lehetősége
o Indexelt keresés
28
A Drupal architektúrája
12. ábra: A Drupal architektúrája
Drupal MVC
13. ábra: A Drupal MVC szerkezete
29
Telepítés
A Drupal CMS-t elérjük a http://drupal.hu oldalon, magyar felületen, melyhez ugyaninnen
letölthető a rendszer honosítása is. Két éppen aktuális verzió közül választhatunk: a 6-os és
a 7-es verziók legújabb kiadása áll rendelkezésünkre. A Drupal 6 egy kiforrottabb
rendszer, támogatottsága nagyobb, a modulok és sminkek zöme is ez alá íródott. Azoknak,
akik még ismerkednek a CMS rendszerekkel, illetve a Drupallal, ajánlatos ezt a verziót
letölteniük; tanulásra alkalmasabb, mint az újabb 7-es Drupal. Utóbbi verziót a haladó
felhasználóknak célszerű használniuk: fejlettebb képességekkel bír, de még jóval kevesebb
hozzá való kiegészítő és smink kering az interneten.
14. ábra: Az "Aktuális kiadások" doboz a drupal.hu-n
Amennyiben fontos a bővíthetőség, és rendszerünket szeretnénk minél több
funkcionalitással ellátni, a 6-os verziót válasszuk, ha viszont kevésbé számít a kiegészítők
számának gyarapítása, megelégszünk az alapmodulokon túl néhány plusz kiegészítéssel, és
szeretnénk a legfrissebb rendszert használni, a Drupal 7 lesz számunkra alkalmasabb.
A letöltött fájl egy .tar.gz kiterjesztésű tömörített állomány, melyet egy arra alkalmas
tömörítőprogrammal (pl. WinRAR) csomagoljunk ki merevelemezünk egy tetszőleges
könyvtárába. Amennyiben azt szeretnénk, hogy a telepítő, illetve a frissen telepített
rendszer egyből magyarul "szóljon" hozzánk, úgy a magyarosítás csomagot is bontsuk ki
ugyanebbe a mappába – az esetleges egyezések esetén természetesen írjuk felül a régebbi
fájlokat. Az így kapott struktúrát kell elhelyeznünk a webszerveren. A telepítésről az
install.php gondoskodik, mely elsőként fut le, ha begépeljük oldalunk címét a böngésző
címsorába. Kövessük a képernyőn megjelenő utasításokat.
30
A telepítésről, illetve annak konfigurálásáról bővebb információkat kaphat a felhasználó a
Drupal kézikönyvben, melyet a magyar Drupal oldalon ér el.
A telepítés lépései
1. Nyelv kiválasztása
Kezdőlépésként meg kell választanunk rendszerünk nyelvét: a beépített angol nyelv mellett
látnunk kell az általunk hozzáadott magyart is – amennyiben a fentiek szerint hozzáadtuk a
honosítást a CMS-hez.
2. Követelmények ellenőrzése
A telepítő figyelmeztet minket egy elvégzendő feladatra: a telepítés előfeltétele, hogy
másolatot készítsünk a szerveren található ./sites/default/default.settings.php fájlról. Az új
fájl neve settings.php legyen, mely ugyancsak a ./sites/default könyvtárban helyezkedjen
el. Fontos, hogy nem elegendő a meglévő fájlt átnevezni, ugyanis a másolat mellett meg
kell tartanunk az eredetit is. A settings.php jogosultságait úgy kell beállítani, hogy a fájl a
webszerver számára írható legyen.
15. ábra: Előfeltétel problémát jelző hibaüzenet a Drupal 6 telepítése során
31
Az imént leírtak elvégzését követően kattintsunk az "érdemes újra próbálkozni"
hivatkozásra, ezzel frissítjük a telepítőt. Ekkor leellenőrzi a létrehozott fájlt, illetve minden
más telepítési előfeltételt, és ha mindent rendben talál, folytatódik az installáció.
3. Adatbázis beállítás
Harmadik lépésként el kell végezni az adatbázis beállításokat. Az Alapvető beállítások
szekcióban meg kell adni a MySQL adatbázis nevét, a hozzátartozó felhasználói nevet és
jelszót, melyeket a webszerver szolgáltatójától kaptunk.
A Haladó beállítások blokkot lenyitva a következőket találjuk: az adatbázis hoszt
(alapértelmezésként localhost), az egyedi adatbázis port, és a táblanév előtag megadására
van lehetőségünk.
Ügyeljünk a mezők pontos kitöltésére!
4. Webhely telepítése
Ha a szükséges adatokat helyesen adtuk meg, megkezdődik a Drupal 6 telepítése. Itt egy
folyamatjelző csík tájékoztat minket a művelet állapotáról, továbbá azt is kiírja a telepítő,
hogy a rendszer mely része került épp telepítésre.
5. Fordítások betöltése
A Drupal automatikusan importálja a felületfordításokat a rendszerbe. Ennek állapotáról
ugyancsak folyamatjelző informálja a felhasználót.
6. Webhely beállítása
A hatodik lépésben meg kell adnunk néhány adatot weboldalunkról. Kötelesek vagyunk
megválasztani webhelyünk nevét – ez jelenik meg oldalunk fejlécén, illetve böngészőnk
ablakának címében, illetve a különféle keresőszolgáltatók is ezen a néven jelenítik meg
oldalunkat a találati listában. Ezenfelül szükség van egy létező e-mail címre is, melyről
majd a rendszer küldi a felhasználók számára a különböző üzeneteket és értesítőket (pl. a
regisztráció megerősítéséről szóló e-mailt). Mindkét adat módosítható a későbbiekben.
Lentebb az adminisztrátori adatokat kell megadnunk: ezzel regisztrálásra kerül az
adminisztrátor a rendszerben. Ehhez egy felhasználói név, egy létező e-mail cím, és egy
tetszőleges jelszó megadására van szükség.
A legalsó szekcióban beállíthatjuk az alapértelmezett időzónát, továbbá – ha szerverünk
szolgáltatásai lehetővé teszik – bekapcsolhatjuk a rövid webcímek kezelését. A beállítás
32
lehetővé teszi, hogy megszabaduljunk a Drupal webcímekben található ?q= résztől.
Aktiválhatjuk a rendszer frissítéseinek automatikus ellenőrzését is – segítségével az
adminisztrátor üzenetet kap új verzió megjelenése esetén. Célszerű bekapcsolni, ugyanis a
későbbiekben – biztonsági okokból – javallott a rendszer folyamatos frissítése. Megeshet,
hogy ezen opció sem aktiválható, oka, hogy némelyik szolgáltatónál a HTTP kérések nem
engedélyezettek.
(Megjegyzés: A rendszer egy, a lap tetején található szövegdobozban értesít minket arról,
hogy a ./sites/default/settings.php fájlon módosításokat hajtott végre.)
7. Fordítások betöltése
A Drupal újra megvizsgálja, illetve betölti a szükséges fordításokat.
8. Kész
Az utolsó lapon értesülünk a telepítés sikerességéről. Az esetlegesen felmerülő hibákról –
melyek az installáció befejezését nem befolyásolják – értesít minket a Drupal.
Most már lehetőségünk van működő weboldalunkra lépni, és használatba venni frissen
telepített Drupal 6 CMS-ünket.
A Drupal motorja
Alapszolgáltatások
A következő lista a System alapmodul fontosabb szolgáltatásait ismerteti:
� Adminisztrációs smink: Az adminisztrációs oldalak megjelenésének beállítása.
� Beviteli formák: Az oldalhoz adott tartalmak szűrésének beállításaira, valamint HTML
és php kód szűrés be- és kikapcsolására van lehetőségünk
� Dátum és idő: A Drupal rendszer dátum és idő megjelenítésével kapcsolatos
beállításait találjuk itt, továbbá az alapértelmezett időzónát is módosíthatjuk.
� Fájlrendszer: Megadhatjuk a fájlrendszer mappáját a szerveren, az ideiglenes fájlok
helyét, illetve a letöltési módot.
� Hibajelentés: Ezen az oldalon beállíthatjuk, hogy rendszerünk mit válaszoljon a
403-as (tiltott hozzáférés) és 404-es (nem található) eseményekre a felhasználóknak.
� Képkezelő eszközkészlet: A feltöltött JPEG képek átméretezési minőségét adhatjuk
meg.
33
� Nyelvek: A rendszerfelület nyelvének beállítása.
� Rövid webcímek: Be-, illetve kikapcsolhatjuk a rövid webcímek kezelését.
� RSS közzététel: Az alapértelmezett RSS hírcsatorna beállításait adhatjuk meg.
� Teljesítmény: Oldalunk teljesítményének finomhangolása végezhető el itt.
� Webhely információk: Alapvető webhely adatok beállítása.
� Webhely karbantartás: A karbantartási mód engedélyezése, vagy tiltása.
Alapmodulok
A következő néhány pontban áttekintjük a Drupal CMS fontosabb alapfunkcionalitásait.
Ezeket az Adminisztráció/Webhelyépítés/Modulok menüpont alatt találjuk meg. A
későbbiekben az általunk a rendszerhez adott modulok is itt jelennek meg, egy külön
szekcióban.
Két csoportra oszthatjuk az alapmodulokat: vannak olyan modulok, melyek működését
nem állíthatjuk le (kikapcsolásuknak nem is lenne értelme), és vannak olyanok, mely
funkciókból igény szerint válogathat az adminisztrátor.
Szükséges elemek
� Block: Az oldalak fő tartalma körül megjelenő dobozokat kezeli.
� Filter: A tartalmak szűrésének kezelését végzi, mielőtt azok megjelenésre
kerülnének.
� Node: Tartalmak beküldését és megjelenítését lehetővé tevő alapmodul.
� System: A webhely általános beállításait kezeli.
� User: Felhasználók regisztrációját és beléptetését biztosítja.
Nem szükséges elemek
� Aggregator: RSS, RDF, és ATOM formátumú tartalmak olvasását teszi lehetővé.
� Blog: Aktiválja a blog tartalomtípust, melynek segítségével blogbejegyzéseket
hozhatunk létre.
� Color: Bekapcsolásával bizonyos felületek (sminkek) színeit változtathatjuk meg
tetszés szerint.
� Comment: Megadja a hozzászólások lehetőségét a felhasználók, illetve az oldalra
látogatók számára.
34
� Forum: Segítségével fórumot (fórum tartalomtípust) hozhatunk létre
weboldalunkon.
� Help: A súgókat kapcsolja be.
� Locale: Biztosítja a felületfordítást, így rendszerünk az alapértelmezett angol
nyelven túl képes más nyelveket is használni.
� Menu: Lehetővé teszi a navigációs menük beállítását.
� Path: Ezen funkcióval elfedhetjük az alapértelmezett webcímeket álnevekkel.
� Poll: Egyszerű szavazásokat (szavazás tartalomtípust) hozhatunk vele létre.
� Profile: Testre szabható felhasználói profilok támogatása.
� Search: Aktiválja az oldalon a kulcsszavas keresőt.
� Taxonomy: Tartalmak kategorizálását teszi lehetővé.
� Tracker: Biztosítja a friss tartalmak követését.
� Upload: Fájlok feltöltését és csatolását teszi lehetővé.
Felhasználói felület
Menük
A Drupal technikailag kétféle módon rendezi a menüket. Az egyik a vízszintes felső
menüként szereplő Elsődleges linkek megvalósítás, a másik, hogy az egyes menüpontok
valamelyik oldalsávon, menüblokkban, függőlegesen jelennek meg. A menük beállításait
az Adminisztráció/Webhelyépítés/Menük oldalon találjuk.
Az Elsődleges linkek helyzete smink kérdése – az alapértelmezett Garland smink a
fejlécen helyezi el. Bizonyos témák nem jelenítik meg, míg mások a Másodlagos linkeket
is kezelik.
Navigációs menü
Ebben a menüben jelennek meg a honlap adminisztrálásához szükséges menüpontok. Az egyes
menüpontokat fa hierarchiába rendezték.
Beállításait az Adminisztráció/Webhelyépítés/Menük/Navigáció alatt találjuk. A menüelemek
sorrendje megváltoztatható, emellett további menüpontokat engedélyezhetünk, vagy
meglévőket tilthatunk. Mindezen túl új menüpontokat vehetünk fel, illetve törölhetjük a már
létezőket is – kivéve azokat, melyek alapból a rendszer részét képzik.
35
(Megjegyzés: Ha új menüpontokat szeretnénk felvenni, új menüben tegyük meg, a
Navigáció menüt érdemes eredeti állapotában hagyni.)
Blokkok
A menük – az Elsődleges linkek kivételével – blokkokban helyezkednek el. A blokkok
azonban nem csak menüket tartalmazhatnak.
Az Adminisztráció/Webhelyépítés/Blokkok lapon érhetők el az ide kapcsolódó beállítások.
Jól látszik, milyen alap blokkok alkotják a Drupalt; fejléc, lábléc, tartalom, bal oldalsáv,
jobb oldalsáv. Ha nem érnénk be a rendszer által generáltakkal, hozzáadhatunk saját
blokkokat is, illetve vannak olyan sminkek, melyek készítenek magunknak újabbakat.
További beállításokat adhatunk meg, ha a blokkok listájában az egyes blokkok neve
melletti beállítás linkre kattintunk. Megadhatunk címet (mely felülírja a menütől kapottat),
szabályozhatjuk, hogy a tagok kikapcsolhassák-e az adott blokkot, megjelenítését
jogosultsághoz is köthetjük (alapértelmezés szerint mindenki elérheti azokat). Végezetül
megadhatunk útvonalakat, azaz hogy mely oldalakon jelenjen, vagy épp ne jelenjen meg a
blokk.
Kezdőlap
1. Az oldal felső része a Fejléc. Ide kerül a cím, a jelmondat, a webhely logója, és az
Elsődleges linkek. Bizonyos sminkek tartalmaznak fejlécképet, amit tetszés szerint
lecserélhetünk.
36
2. Az oldal alsó része a Lábléc. Alapértelmezés szerint ide egy apró Drupal logó
kerül, mely a hivatalos honlapra hivatkozik – ezt természetesen kikapcsolhatjuk, ha
nincs rá szükségünk. Továbbá itt nyílik lehetőségünk feliratkozni az oldal RSS
hírfolyamára.
3. Az oldal legnagyobb részét a Tartalom teszi ki, mely általában középre kerül.
Többnyire látható a tartalom címe, a szerző neve, a publikálás dátuma, és
természetesen maga a közzétett tartalom.
4. A bal oldali blokk a Bal oldalsáv. Itt találhatjuk a bejelentkezéshez szükséges
menüt, mely belépés után átvált a Navigáció menüre. A Bal oldalsávra többnyire
modulok kerülnek; helyezhetünk el szavazásokat, vagy az online tagokról
információkat szolgáltató dobozt is.
5. A jobb oldali blokk a Jobb oldalsáv. Nem különbözik a fentebb részletezett Bal
oldalsávtól: moduljainkat pakolhatjuk rá, illetve különböző információkat
jeleníthetünk meg rajta – például a friss tartalmak címeit, vagy a legutóbbi fórum
hozzászólásokra mutató hivatkozást. A Drupal telepítése után alapértelmezettként
ez a blokk üres, nem tartalmaz elemeket.
Modulok kezelése
A Drupal alapcsomagjában található modulok igen sok szolgáltatást nyújtanak számunkra.
Rendszerünk további modulokkal bővíthető – az interneten több ezer kiegészítő modul
érhető el. Azonban ezen modulok nagy részében nem bízhatunk meg úgy, mint az
alapmodulokban, de körültekintő alkalmazásukkal igen sok programozói munkától
kímélhetjük meg magunkat, és rengeteg hasznos funkcióval bővíthetjük rendszerünket.
Telepítés és használat
A http://drupal.org/project/modules oldalról tölthetünk le modulokat. Alkalmazás előtt
célszerű minden ismeretlen modult tesztkörnyezetben kipróbálni. A fejlesztői (dev)
verziókat csak kellő óvatossággal érdemes éles rendszerünkben használni. A modulok
letöltése előtt válasszuk az alaprendszerünkhöz illő verziót.
Minden modult .tar.gz kiterjesztésű tömörített állomány formájában tölthetünk le, melynek
tartalmát a sites/all/modules könyvtárba kell feltöltenünk webszerverünkre. A tömörített
állományokban találunk a telepítésre, illetve a modul működésére vonatkozó, úgynevezett
37
"readme" fájlt is, melyet érdemes átolvasnunk, mielőtt a bővítményt beintegrálnánk a
Drupalba.
A feltöltés végeztével a rendszerhez adott modul nem lesz aktív, nekünk kell azzá tenni.
Ezt az Adminisztráció/Webhelyépítés/Modulok menüpont alatt tehetjük meg. Az
alapmodulok mellett a listában látnunk kell az általunk rendszerhez adott kiegészítőket is.
Az aktiváláshoz helyezzünk pipát a modul címe előtt található jelölőnégyzetbe, majd
kattintsunk a Beállítások mentése gombra. Ezzel új modulunk aktívvá válik.
16. ábra: A Drupal modulok listája (részlet)
A modul tényleges használata előtt konfigurálnunk is kell azt. Ez többnyire az
Adminisztráció oldalon megjelenő újabb menüpontok segítségével tehetjük meg – újabb,
általában a rendszerhez adott modul nevével egyező menüpontok keletkeznek.
Amennyiben szeretnénk egy modult eltávolítani a rendszerből, helytelen megoldás lehet a
webszerverre feltöltött fájlokat és könyvtárakat szimplán letörölnünk. Helyette kapcsoljuk
oldalunkat offline módba, majd deaktiváljuk a modult. Ezt követően az
Adminisztráció/Webhelyépítés/Modulok menüben kattintsunk az Eltávolítás fülre, majd
távolítsuk el a modult. Ellenőrizzük oldalunk helyes működését, és ha mindent rendben
találunk, töröljük le a modul állományait. Ha mindezzel végeztünk, kapcsoljuk újra online
módba oldalunkat.
Adminisztráció
A regisztrált felhasználó bejelentkezés után megtekintheti, illetve módosíthatja adatait.
Átállíthatja magának az oldal nyelvét, ha engedélyezve vannak más, az alapértelmezettől
38
eltérő nyelvek. Megváltoztathatja felhasználónevét, jelszavát, új e-mail címet adhat meg.
Beállíthat aláírást, mely minden hozzászólása alatt megjelenik, valamint módosíthatja az
időzónát, ha az adminisztrátor által meghatározott zóna számára nem megfelelő.
Az adminisztrátor a bejelentkezést követően egy bővebb menüt kap, mint a felhasználók.
Az Adminisztráció menüpont alatt konfigurálhatjuk be oldalunkat.
Itt öt szekciót találunk:
� Tartalom kezelés: Itt kezelhetjük a létrehozott tartalmakat. Megtekinhetjük
létrehozott tartalmainkat, szerkeszthetjük, vagy törölhetjük őket. Beállíthatjuk,
hogy a címlapon hány tartalom jelenjen meg, milyen hosszú legyen a bevezető
szövegük, illetve kötelezővé tehetjük az előnézet használatát. Kategorizálhatjuk
meglévő tartalmainkat, beállíthatjuk az RSS közzététel formáját. Kilistázhatjuk a
webhelyre érkezett hozzászólásokat, illetve itt van lehetőségünk a moderálásra.
� Felhasználó kezelés: Rendszerünkbe regisztrált felhasználóinkat kezelhetjük.
Csoportokat hozhatunk létre, illetve szerkeszthetjük azokat. Megadhatjuk a
rendszerbe való regisztráció feltételeit, illetve a rendszer által a felhasználóknak
küldött e-mailek szövegét. Beállíthatjuk az elérési szabályokat: felhasználók, e-mail
címek, és IP címek tiltásait konfigurálhatjuk. A különböző csoportoknak más-más
elérési szabályokat adhatunk meg a szolgáltatásokra vonatkozóan.
� Naplók: Rendszer eseménynaplókat és más állapotadatokat tekinthetünk meg itt.
Kérhetünk a rendszerről állapotjelentést – az esetleges hibák kilistázásával – illetve
megnézhetjük a tiltott oldalakkal (403) és nem található oldalakkal (404)
kapcsolatos hibákat.
� Webhely építés: Oldalunk megjelenésének beállításai tartoznak ide. Beállíthatjuk,
hogy a weboldal blokkjaiban milyen összetevők jelenjenek meg, vagyis az oldal
elrendezésén változtathatunk. Kezelhetjük a webhely navigációs menüjét, új
menüpontokat hozhatunk létre, illetve szerkeszthetjük, vagy törölhetjük a
meglévőket. Be- és kikapcsolhatjuk a különféle kiegészítő modulokat, valamint új
sminket állíthatunk be oldalunkra.
� Webhely beállítása: A rendszer működésére vonatkozó beállítások és funkciók
összessége. Ez a System alapmodul, részeit fentebb, az "Alapszolgáltatások"
témakörben részleteztük.
39
Tartalom beküldése
A tartalmak beküldését bejelentkezve végezhetjük el, ehhez a Navigáció menüben a
Tartalom beküldése menüpontra kell kattintanunk. Alapesetben két tartalomtípus közül
választhatunk: oldal vagy írás. Amennyiben engedélyezve van rendszerünkben a Blog,
vagy a Forum modul, úgy ezekhez kapcsolódóan megjelennek további válaszható
tartalomtípusok. Bármelyikre kattintunk, folytatásként ugyanazt a felületet kapjuk.
Megadhatjuk a tartalom szerzőjének nevét és a beküldés időpontját. Lehetőségünk van a
hozzászólások olvasását és írását engedélyezni, vagy tiltani. Eldönthetjük, hogy a tartalmat
közzétesszük-e – a felhasználók csak ebben az esetben olvashatják azt. Megadhatjuk, hogy
a tartalom címlapra kerüljön-e, illetve kiemelhetjük azt az oldal tetejére, a többi meglévő
tartalom fölé. Elhelyezhetjük menüben, megadhatjuk a menüpontként megjelenő nevét,
rövid leírást, a szülő menüpontot, illetve a tartalom prioritását.
17. ábra: Írás tartalomtípus beküldése Drupalban
40
A szövegtörzs beviteli formáját három típus közül választhatjuk ki:
� szűrt HTML (Filtered HTML)
� teljes HTML (Full HTML)
� PHP kód (PHP Code)
Ezek a felhasználók által megadható szövegek különböző feldolgozási módjait határozzák
meg. Mindegyik saját tulajdonságokkal rendelkezik, segítségükkel nem kívánt részeket
szűrhetünk ki a begépelt szövegből (például rosszindulatú HTML elemeket). Sok esetben a
felhasználók nem választhatnak, általában csak egy beviteli forma engedélyezett számukra.
Használatuk csoportokhoz köthető, és egy alapértelmezett forma is megadható, melyet minden
felhasználó elérhet. A beviteli formákat a Webhely beállítása/Beviteli formák menüpont alatt
módosíthatjuk.
Különféle szűrőket alkalmazhatunk az egyes beviteli formákra. A HTML szűréssel
korlátozhatjuk a felhasználók HTML beküldési lehetőségeit. Az URL szűrő átalakítja a
begépelt web és e-mail címeket linkekké, továbbá aktiválhatjuk a Sortörés átalakítót is,
mely a szövegbe írt sortöréseket HTML sortörésekké alakítja (<p> és <br> tagek
alkalmazásával). Találunk itt egy php kiértékelő nevezetű szűrőt is, mellyel php kódokat
futtathatunk, azaz php kódot ágyazhatunk a felvitt tartalomba.
A Beállítás fülre kattintva elvégezhetjük finomhangolást is. Megadhatjuk az URL szűrő
számára a linkek szövegének maximális hosszát. Beállíthatjuk a HTML szűrést is;
megadhatjuk a tiltott HTML elemek kezelési módját, felsorolhatjuk az engedélyezett
HTML tageket, valamint bekapcsolhatjuk a Drupal HTML súgóját. Aktiválhatjuk a
Kéretlen link eltérítőt is, melynek bekapcsolása után a rendszer figyelmen kívül hagyja a
tartalomban elhelyezett összes linket.
Felhasználó kezelés
Az eddigiekben az adminisztrátor egyedül alakította ki a honlapot, egymaga tette meg a
szükséges beállításokat, és vitte fel az oldalra a tartalmakat. Ez idáig kétféle felhasználóval
találkozott a webhely: az adminisztrátorral, aki mindent megtehet az oldallal, és a névtelen,
nem azonosított felhasználókkal, akik csak a publikus tevékenységeket hajthatják végre.
Ahhoz, hogy az oldalt más felhasználók is építhessék, vagy nem szeretnénk bizonyos
tartalmakat mindenki számára elérhetővé tenni, szükség lesz a felhasználók kezelésére.
41
Felhasználók létrehozása
Első körben meg kell határoznunk, hogy adminisztrátorként csakis mi magunk hozhatunk
létre új felhasználókat, vagy megnyitjuk a regisztrációt bárki számára
(Adminisztráció/Felhasználókezelés/Felhasználó beállításai).
Három lehetőség közül választhatunk:
� Csak a webhely karbantartói hozhatnak létre új felhasználót.
� A webhely látogatói létrehozhatnak felhasználót adminisztrátori jóváhagyás nélkül.
� A látogatók regisztrálhatnak új felhasználót, de csak adminisztrátori elfogadással.
További beállítási lehetőség az e-mail cím ellenőrzés; a biztonság szempontjából érdemes
alkalmazni, ugyanis ezzel ellenőrizhetjük, hogy valós címet adnak-e meg azok, akik
rendszerünkbe szeretnének regisztrálni. Ezen felül megadhatunk regisztrációs irányelveket,
továbbá engedélyezhetjük a tagoknak az egyedi aláírás és kép megadását is.
Új felhasználót az Aminisztráció/Felhasználókezelés/Felhasználók oldalon hozhatunk létre.
Ugyanitt találjuk a rendszer felhasználóinak listáját, adataikat az adminisztrátor bármikor
módosíthatja.
Jogosultságok
A jogosultságok határozzák meg, melyik felhasználó mit tehet meg a webhelyen. A
felhasználók regisztrációjának tehát az egyik legfőbb oka, hogy annyi joggal
rendelkezzenek az oldalon, amennyivel az adminisztrátor felruházza őket. Mivel egy
webhelynek több ezer regisztrált tagja is lehet, lehetetlen lenne minden egyes
felhasználónak külön meghatározni a jogokat. Épp ezért alakították ki, hogy a Drupal
csoportonként lássa el a tagokat jogosultságokkal. Egy tag egyszerre több csoportba is
tartozhat, ekkor a kapott jogok összeadódnak.
Alapértelmezésben két állandó csoport létezik a Drupalban:
� Anonim, be nem jelentkezett látogató
� Azonosított felhasználó
Új csoportot az Adminisztráció/Felhasználókezelés/Csoportok oldalon hozhatunk létre. Itt
található a csoportok listája, melyek neve mellett található jogosultságok szerkesztése
feliratra kattintva adhatók meg a jogosultságok. A beállításokat elvégezhetjük itt is –
42
csoportonként egyesével –, vagy az Adminisztráció/Felhasználókezelés/Jogosultságok
oldalon összesített formában szerkeszthetjük azokat.
Fontos, hogy az azonosított felhasználónak adott jog minden további, az adminisztrátor
által létrehozott csoportnak is megadja a jogot, hiszen ezen csoportok tagjai is
azonosítottak a rendszerben, vagyis az azonosított felhasználó csoport részeit képezik.
A többi csoport oszlopaiban csak a további speciális jogokat kell bejelölnünk.
Sminkek
A modulokhoz hasonlóan számos sminket letölthetünk az internetről, mellyel egyedi külsőt
varázsolhatunk oldalunknak. Fontos megjegyeznünk, hogy az egyes témák minőségileg
jelentősen eltérnek egymástól. Épp ezért egy egyedi smink alkalmazását követően további
hibajelenségek jelentkezhetnek:
� nem lefordítható szövegek kerültek a sminkbe
� hibás karakter megjelenítés (eltérések a kódolásban)
� az új smink bizonyos kimeneti információkat nem jelenít meg
� bizonyos moduloktól a smink szétesik
� a rendszerben megadottaktól eltérő dátumformátum megjelenítés
Mielőtt bármilyen új "ruhába" bújtatnánk rendszerünket, érdemes az adminisztrációs
sminket beállítanunk valamelyik, a Drupalban megtalálható alap sminkre (érdemes a
telepítés után látható Garland sminket választanunk). Ez azért szükséges, hogy könnyebben
elháríthassuk az esetleges hibákat, melyek egy új kinézet alkalmazása után
jelentkezhetnek.
Keressük meg az Adminisztráció/Webhely beállítása/Adminisztrációs smink oldalt, ahol a
legördülő listából válasszuk ki a rendelkezésre álló témák egyikét.
Telepítés és alkalmazás
A hivatalos Drupal oldal Themes szekciójában (http://drupal.org/project/Themes) találunk
különböző sminkeket. Ne hagyjuk figyelmen kívül a smink verziószámát és minőségi
jellemzőjét! Akárcsak a modulok esetében, itt sem érdemes dev változatot használnunk
rendszerünkben.
43
18. ábra: A Dark Elegance nevezetű Drupal smink
A telepítés nem sokban tér el a moduloknál alkalmazott folyamattól. A letöltött fájlt egy
arra alkalmas tömörítőprogrammal csomagoljuk ki, majd töltsük fel őket webszerverünk
sites/all/themes alkönyvtárába. Miután ezzel végeztünk, az új sminket az
Adminisztráció/Webhelyépítés/Sminkek oldalon élesíthetjük.
A kívánt téma kiválasztása után testre is szabhatjuk azt. Bekapcsolhatjuk az oldal
logójának, nevének, jelmondatának, missziójának, illetve a webhely ikonjának
megjelenítését, aktiválhatunk keresődobozt, vagy azt, hogy a felhasználók képe
megjelenjen-e a beküldött tartalmak mellett, mindezen felül megadhatunk a beküldési
információkra vonatkozó beállításokat is.
(Megjegyzés: Előfordulhat, hogy bizonyos opciók inaktívak, amennyiben a smink nem
támogatja azokat.)
Eltávolítás
Amennyiben egy sminkre nincs tovább szükségünk, és azt szeretnénk, hogy ne látszódjon a
listában, úgy el kell távolítanunk.
Ha az éppen alkalmazott témától akarunk megszabadulni, elsőként módosítanunk kell az
aktív sminket. Ehhez keressük fel az Adminisztráció/Webhelyépítés/Sminkek oldalt, majd
válasszunk ki egy másik sminket a rendszer számára.
44
Ha a törölni kívánt külső (már) nem aktív, eltávolíthatjuk. Ez egyszerűen zajlik. Keressük
meg a webszerveren a sites\all\themes könyvtárban a smink mappáját, és egyszerűen
töröljük le.
Kellő programozói (HTML, CSS, php) ismeretekkel új témák is írhatók, illetve
módosítások végezhetők el a Drupalhoz adott meglévő sminkeken. Lecserélhetjük a
képeket és vizuális elemeket, továbbá CSS formázásokat végezhetünk el a sminkhez
tartozó style.css fájl módosításával. A php nyelvben jártasak komolyabb szerkezeti
átalakításokat is végezhetek, továbbá az esetleges hibákat is kijavíthatják.
Drupal 7
2011. január 5-én érkezett meg az internetes felhasználók közé a
Drupal új, 7-es számmal fémjelzett verziója. Ezt követően az 5-ös
újabb verziói már nem kerültek ki a világhálóra, fejlesztése leállt, a
6-os és 7-es változatok kerültek a Drupal fejlesztőinek és
felhasználóinak fókuszába.
Ezen verzió fejlesztése során előtérbe helyezték a felhasználói élmény növelését, valamint
a stabilitás és a sebesség növelését. A Joomla! nagy előnye az volt, hogy már a "csupasz"
alaprendszer is fejlettebb tartalomszerkesztési és médiakezelési lehetőségekkel bírt a
Drupallal szemben – a hetedik főverzióval ez megszűnt.
A Drupal 7 megjelenése mellett napvilágot látott jó néhány fontos modul újabb verziója is,
melyek már kompatibilisek az új generációs CMS-sel. Egyes modulok bekerültek a magba,
ezzel az alaprendszer tudása jelentősen kibővült. A népszerű és igen hasznos Views modul
teljes egészében, az ugyancsak fontos CCK modul jelentős része, valamint a FileField és
ImageField is belekerült a Drupal core-ba – utóbbi kettő kiváltotta a régi Upload modult.
A Drupal 7 újdonságai:
• jobb média- és dokumentumkezelés
• beépített automatikus egységtesztelési környezet
• nagyobb stabilitás
• beépített képkezelés (vágás, méretezés, stb.)
• az egyedi tartalomtípusok és az egyéni adatmezők bekerültek a magba
45
• közvetlen adatkezelés bármely tartalomtípushoz, felhasználóhoz vagy
taxonómiához
• fejlettebb fordítás támogatás
• továbbfejlesztett felhasználói felület
• a Views modul belekerült a magba
• beépített WYSIWYG szövegszerkesztő
• egyszerűbb rendszerfrissítés
• megnövelt teljesítmény
• továbbfejlesztett gyorstárazás
• finomhangolt kereső
• jobb import/export funkciók
• javított node hozzáférés rendszer
• verziókövetés és frissítés, Drupal 6-ról Drupal 7-re történő költözés támogatása
• adatbázis absztrakciós réteg; többféle adatbázis használatának támogatása
(Microsoft SQL Server, Oracle, MySQL, SQLite, PostgreSQL, MongoDB,
MariaDB)
Rendszerkövetelmények:
� HTTP szerver, ajánlott Apache 2.0 (vagy újabb verzió)
� PHP 5.2.4 (vagy újabb verzió)
� SQL szerver: MySQL 5.0, PostgreSQL 8.3, SQLite 3.4.2 (vagy újabb verziók)
46
Joomla!
A Joomla! egy PHP nyelven írt, MySQL adatbázist használó,
nyílt forráskódú webes tartalomkezelő rendszer, melyet a
díjnyertes Mambo rendszer programozói fejlesztettek ki.
Valójában a két rendszer megegyezik, illetve a Joomla! a
Mambo újabb verziójának tekinthető.
A rendszer egészére a GNU/GPL licenc érvényes; szabadon felhasználható, szerkeszthető.
A legtöbb CMS-hez hasonlóan a Joomla! is platformtól független; Windows, Linux, Unix-
alapú, vagy más rendszereken is futtatható, amennyiben a számítógépre telepítve vannak a
szükséges programok (PHP, MySQL, Apache, XAMPP, stb.).
Első verziója (v1.0.0) 2005. szeptember 16-án jelent meg – ez a Mambo 4.5.2.3-as
verziójának felelt meg. Két és félévi fejlesztés után, 2008. január 22-én a Joomla!
különvált a Mambo-tól, ekkor jelent meg a rendszer 1.5 verziószámú stabil kiadása. Ez
jelentette projekt új, önálló korszakának kezdetét.
Fejlesztőcsapata egységes alkalmazás keretrendszer létrehozására törekszik, nem a
portálrendszerekre általában jellemző bővítményekre, modulokra. Emiatt alaprendszere
rendkívül hatékony, és mindenki számára megkönnyíti az igény szerinti bővítést. Az alap
Joomla! számos modult tartalmaz, melyek egyedi beállításával teljesen testre szabott
weboldalt alakíthatunk ki.
19. ábra: A Joomla! hivatalos honlapja (http://www.joomla.org)
47
Nem szükséges a HTML nyelv ismerete, mivel beépített WYSIWYG szövegszerkesztő
segítségével a Wordhöz hasonlóan formázható a szöveg. Nincs szükség a dokumentumok
FTP-n keresztüli feltöltésére; csak el kell menteni a begépelt szöveget, majd publikálni, és
a weboldal, illetve annak tartalma máris megtekinthető bárki számára.
A Joomla! a következő alkalmazási területeket fedi le:
• Portál típusú weboldalak frissítése hírekkel, cikkekkel és képekkel
• MS Word, MS Excel és Acrobat PDF dokumentumok publikálása
• Fejléc, lábléc és hirdetések kezelése
• Szavazóűrlapok készítése
• Linkgyűjtemények kezelése
• GYIK-ok (Gyakran Ismételt Kérdések) kezelése
• Médiafájlok kezelése
• Hírforrások (RSS) kezelése
• Archivált oldalak kezelése
Alapvető tulajdonságok
• Rendszer
o Hatékony sablonkezelő rendszer
o Statisztikák
o Kiváló bővíthetőség
o Saját tartalomkezelő makró nyelv (Mambot)
• Adminisztráció
o Fejlett, elkülönített adminisztrációs rendszer
o Hierarchikus, csoportos felhasználó kezelés
o Média feltöltési és kezelési felület
o Fejlett csomag-, bővítmény-, és sablontelepítő rendszer
o Többféle vizuális tartalomszerkesztő (WYSIWYG)
o Beépített súgó
• Tartalomkezelés
o Egyszerűen szerkeszthető szöveges tartalom
48
o Szavazások
o Űrlapok
o Lehetőség a tartalmak értékelésére (szavazás, értékelés)
o Időzíthető tartalom megjelenés
A Joomla! architektúrája
20. ábra: A Joomla! architektúrája
Joomla! MVC
21. ábra: A Joomla! MVC felépítése
49
Joomla! 1.5
A CMS ezen verziója 2008. január 22-én jelent meg, Khepri fedőnévvel. A rendszer sokat
finomult az előző verzióhoz képest; egyszerűsödött a cikkek kezelése, a bővítmények
installálása. Kibővült a karakterkészlet (többek között a jobbról-balra írásirányúakkal), és
új API-t (alkalmazásprogramozási felület) is kapott.
Az alábbiakban a Joomla! 1.5-ös verzióján keresztül ismerjük meg a rendszer telepítését,
konfigurálását, használatát. Lentebb az 1.6-os változat is áttekintésre kerül.
Installálás
Hasonlóan zajlik a telepítés a Joomla! esetében is, mint bármely más CMS-nél. A
http://www.joomla.org.hu oldalról tölthetjük le a rendszert. A felhasználónak itt annyiból
kényelmesebb a dolga, hogy nem szükséges külön a CMS-t és külön a magyarosítást
letöltenie, ugyanis a Joomla! készítői egybeépítették a két csomagot, így a felhasználónak
már nem kell külön a honosítással bajlódnia, a kitömörített fájlokat azonnal másolhatja a
webszerverre.
22. ábra: Az "Új bővítmények" doboz a magyar Joomla! oldalon
További pluszt jelent az is, hogy kétféle fordítás létezik a Joomla!-hoz: egy tegező és egy
magázó változat, a felhasználó a neki tetsző stílusban "szólaltathatja meg" weboldalát. A
lementett fájl .zip kiterjesztésű.
A telepítéssel kapcsolatban segítséget a http://wiki.joomla.org.hu oldalon találunk.
50
A telepítés lépései
1. Nyelv
Az első oldalon a telepítő, illetve a rendszer nyelvének kiválasztása a feladat. Amennyiben
kijelöltük a listában a kívánt nyelvet, kattintsunk a Tovább gombra – a telepítő egyes
állomásait is ezzel hagyhatjuk el a későbbiekben.
2. Telepítés előtti ellenőrzés
A telepítő leellenőrzi, hogy minden megfelel-e a minimális követelménynek (PHP, Zlib,
XML, MySQL, stb.). Amennyiben valamely elem sorában a Nem szó szerepel, úgy azon
feltételt teljesíteni kell, máskülönben a telepítés nem folytatható. Ha a feltételek
teljesítéséhez szükséges módosításokat végrehajtottuk, az Újraellenőrzés gombra kattintás
után a rendszer újabb vizsgálatot végez el. Amely feltételek rendben vannak, azok sorában
az Igen szó olvasható – mindegyik sorban ennek kell szerepelnie.
A második ellenőrzési egységben a PHP beállításokat részletezi a rendszer. Az első oszlop
az ajánlott, a második a jelenlegi beállítást mutatja. Ha ezek a beállítások nem
megfelelőek, attól a Joomla! működni fog, a telepítés folytatható.
(Megjegyzés: Ingyenes tárhely-szolgáltatónál ezek a beállítások általában nem
módosíthatók.)
3. Licenc
Ebben a pontban a Joomla! végfelhasználói licencszerződése olvasható. Semmilyen
beállítást nem kell megadnunk, innen egyszerűen továbbléphetünk.
4. Adatbázis
Ez a lépés a telepítés legfontosabb állomása. Itt adjuk meg a rendszer működése
szempontjából elengedhetetlen paramétereket.
Jelöljük ki a használt adatbázis típusát – általában mysql, amit a rendszer
alapértelmezésként fel is ajánl. A következő a kiszolgáló neve. Ez szinte minden esetben
localhost. Amennyiben nem az, úgy a beállításról a webszerver szolgáltatójánál kaphatunk
tájékoztatást. A Felhasználónév mezőben a tárhely szolgáltatójánál regisztrált nevet kell
megadnunk. Ha saját számítógépen dolgozunk (pl. Apache-csal), akkor ez a név általában
az alapértelmezett root MySQL felhasználónév. A Jelszó mezőbe a tárhely regisztrációja
51
során megválasztott jelszavunk kerüljön. Az adatbázis nevét a szolgáltatótól kapjuk –
általában felhasználóinév.szolgáltatóneve.sql (pl.: weboldalam.extra.sql).
A Speciális beállítások alatt kiválaszthatjuk, milyen műveletet hajtson végre a Joomla!, ha
adatbázisunk nem üres. Eldobhatja a létező táblákat, vagy biztonsági mentést készít róluk.
Adhatunk meg a táblaneveinknek előtagot – a telepítő figyelmeztet, hogy ne használjuk a
’_bak’ előtagot, ugyanis azzal a biztonsági mentések neveit látja el a rendszer.
Ha minden adatot helyesen adtunk meg, folytatódhat az installálás.
5. FTP beállításai
Ez a pont a Linux és Unix rendszerek használóit érinti. Nekik szükséges az FTP
fájlrendszer réteg engedélyezése, és az ehhez kapcsolódó beállítások megadása: FTP
felhasználónév, FTP jelszó, FTP gyökérútvonal. Lehetőség van az FTP elérési út
automatikus keresésére, továbbá az FTP beállítások ellenőrzésére.
A Speciális beállítások blokkban megváltoztathatjuk az FTP állomás címét és portját,
azonfelül kérhetjük az FTP jelszó tárolását.
6. Beállítások
Az első mezőben adjuk meg webhelyünk nevét – ez szerepel majd a fejlécben, és a
böngészőablak címében.
A következő egységben adjuk meg az első felhasználó, azaz az oldal adminisztrátorának e-
mail címét és a bejelentkezéshez szükséges jelszavát.
Lentebb két lehetőség kínálkozik fel a telepítés befejezése előtt: alapértelmezett
mintaadatok telepítése vagy áttelepítő parancsfájl betöltése. Ha új felhasználók vagyunk, és
még nem rendelkezünk korábbi Joomla! rendszerrel, vagy kezdő felhasználók vagyunk,
válasszuk az első pontot, majd kattintsunk a Mintaadatok telepítése gombra. Ha már
haladó felhasználók vagyunk, és rendelkezünk Joomla! kompatibilis SQL parancsfájllal,
úgy abból betallózhatjuk beállításainkat. Hasznos lehet, ha régebbi webhelyünket
szeretnénk költöztetni.
7. Befejezés
Az utolsó oldalon tájékoztatást kapunk a telepítés sikerességéről, illetve a további
teendőkről. Hogy megkezdhetjük a rendszer használatát, el kell távolítanunk az installation
mappát a webszerverről – ez afféle óvintézkedés a rendszer biztonsága érdekében, ahogy a
52
telepítő is leírja. Nem fontos letörölni a könyvtárat, elegendő átnevezni, így a rendszer a
továbbiakban nem érzékeli, viszont szükség esetén egyszerűen visszaállítható.
A Joomla! azt is közli, hogy a bejelentkezéshez szükséges név az admin lesz.
Felül két gombot találunk: a Webhely gombbal már elkészült weblapunkra mehetünk, az
Adminisztráció gombbal pedig megnyitjuk az adminisztrációs felületet, ahol
megkezdhetjük a webhely kiépítését.
Ha még nem töröltük az installation mappát, újabb figyelmeztetést kapunk, és mindaddig
nem dolgozhatunk a webhellyel, amíg nem teszünk eleget a rendszer követelésének.
Telepítés utáni teendők
A telepítés befejező oldaláról két helyre léphetünk tovább:
� Webhely: a telepített rendszer felhasználói oldalának megnyitása
� Adminisztráció: a Joomla! kiszolgáló oldalának (adminisztrációs felületének)
megnyitása
Telepítés után a felhasználói oldalon még nincs lehetőség sem regisztrációra, sem
bejelentkezésre. Ha el szeretnénk kezdeni az éles munkát, a webhely beállításainak
konfigurálását, a felhasználói oldal kiépítését, a kiszolgáló oldalra kell jutnunk. Ehhez
vagy a fentebb említett Adminisztráció gombra kell kattintanunk, vagy – ha már bezártuk a
telepítőt – a következő formában kell begépelnünk oldalunk címét a böngésző címsorába:
http://oldalam.hu/administrator. Adjuk meg felhasználónevünket és jelszavunkat. Ha
szükséges, állítsuk át a nyelvet, majd klikkeljünk a Belépés gombra.
Első lépésként ajánlatos elzárni a felhasználói oldalt a látogatók elől.
Ehhez a következő lépéseket kell elvégeznünk:
1. Kattintsunk a Webhely menü Globális beállítások pontjára, vagy az ikonok között
található Globális beállítások gombra.
2. A Webhely beállításai szekcióban, A webhely offline sorban válasszuk az Igen
opciót.
Ha szeretnénk módosítani az üzemen kívüli üzenetet, tetszés szerint átírhatjuk a
dobozban található szöveget.
3. Kattintsunk a Mentés gombra.
Visszakerülünk a kiszolgáló oldal első lapjára.
53
4. Az Előnézet linkre kattintva ellenőrizhetjük a változtatást.
23. ábra: A telepített Joomla! rendszer felhasználói oldala offline módban
A második fontos intézkedés, hogy a regisztrációt, illetve a bejelentkezést elérhetővé
tegyük a felhasználói oldalon is. Néhány egyszerű lépéssel ez a probléma is megoldható.
1. Kattintsunk a Bővítmények menü Modulkezelő pontjára.
2. A megjelenő lapon nyomjuk meg az Új gombot.
3. A megjelenő listában jelöljük ki a Belépés modult.
4. Kattintsunk a Következő gombra.
5. A Cím mezőbe gépeljük be a modul címét (ez jelenik meg a modul címsorában).
Ha nem tartunk igényt a cím megjelenítésére, lehetőségünk van annak
kikapcsolására.
A többi opció alapértelmezés szerint megfelelő.
6. Kattintsunk a Mentés gombra.
Visszakerülünk a Modulkezelő lapjára.
7. Az Előnézet linkre kattintva ellenőrizhetjük az új modult.
54
24. ábra: A Belépés modul a Joomla! felhasználói oldalán
Innentől kezdve a látogatóknak lehetőségük van a regisztrációra, az adminisztrátor pedig
megkezdheti a webhely kiépítését, a tartalmak felvitelét.
Bővítmények, szolgáltatások és kiegészítők
A Joomla! CMS is alkalmas különböző beépülő funkcionalitások kezelésére. A rendszer
tudása növelhető, ha az adminisztrátor a rendszerhez ad olyan kiegészítőket, melyeket az
alapcsomag nem tartalmaz. Számtalan funkcióval ruházhatjuk fel webhelyünket; ehhez
különféle komponensek és modulok telepítése szükséges. Egyedi külsőt varázsolhatunk
felhasználói oldalunknak, ha új sablont alkalmazunk rajta. Amennyiben igény van rá,
módunkban áll a webhely többnyelvűségének biztosítása; a felhasználók tetszés szerint
választhatják meg az oldal nyelvét, ha erre lehetőséget adunk.
Ötféle csoportot különböztethetünk meg:
� komponensek
� modulok
� beépülő modulok
� sablonok
� nyelvek
55
25. ábra: A Joomla! bővítmények típusai – szemléltetve
Komponensek
A komponens a legnagyobb és legbonyolultabb bővítménytípus a Joomla!-ban,
tulajdonképp mini-alkalmazásnak tekinthető. Két részre osztható: webhely komponens,
mely a felhasználói oldalon jelenik meg; adminisztrátori, mely a kiszolgáló oldalon
funkcionál.
Az oldal fő részeit alkotják; mindegyikhez kapcsolódik menüpont, és minden egyes
menüpont egy-egy komponenst hív meg. A Joomla! weboldalak minden egyes
betöltődésekor egy komponens kerül meghívásra, amely visszaküldi a fő oldaltörzset
(például a com_registration komponens a regisztrációt kezeli).
A komponenseket az adminisztrátori főlap Komponensek menüjében találjuk.
Menüpontok:
� Hirdetés: A Hirdetéskezelőbe visz minket. Meglévő hirdetéseinket szerkeszthetjük,
vagy újakat kreálhatunk, illetve kategorizálhatjuk azokat kategóriák létrehozásával.
Ezek grafikus hirdetések vagy szövegek, amelyek a Joomla! felhasználói oldal
bizonyos részein jelennek meg.
56
� Kapcsolat: A Kapcsolatkezelőbe irányítja az adminisztrátort, ahol a webhely
kapcsolattartási adatait vihetjük fel (név, cím, telefonszám, e-mail cím). Itt is
lehetőség van kategóriák alkotására.
� Hírcsatornák: A Hírcsatorna-kezelőre hivatkozik, ahol már webhelyek hírcsatornáit
rögzíthetjük rendszerünkben – természetesen kategorizálva, ha úgy szeretnénk.
� Szavazások: Megnyitja a Szavazáskezelőt, ahol egyszerű szavazásokat
készíthetünk, illetve bonyolíthatunk le oldalunkon. A felhasználóknak lehetőségük
lesz a feltett kérdésre válaszolniuk, a megadott válaszlehetőségek közül kiválasztva
egyet. Egy szavazáshoz maximum tizenkét válaszadási lehetőség tartozhat.
� Keresés: A Keresési statisztika képernyő jeleink meg, ahol összegzést kapunk arról,
hány alkalommal kerestek rá egyes kulcsszó-kombinációkra, és hány találatot adtak
vissza a keresések.
� Webes hivatkozások: A Webes hivatkozás kezelőbe kerülünk; más webhelyek
hivatkozásait vehetjük fel, linkgyűjtemény előállítására és kezelésére szolgál,
melynek segítségével az általunk kedvelt és mások számára ajánlott honlapok
címeit gyűjthetjük össze. Itt ugyancsak lehetőség nyílik kategóriákba rendezésre.
Modulok
A modulok kisebb és rugalmasabb alkalmazások. Szerepük az oldal felépítésében,
megjelenítésében, elrendezésében van. A különféle sablonok különböző modul
elrendezéseket valósítanak meg.
Néha kapcsolódnak komponenshez is (például a Legfrissebb hírek, amely a com_content
komponenshez kapcsolódik; a legújabb tartalmi elemeket jeleníti meg listaként).
Menüpontokhoz rendelhetjük őket, azaz eldönthetjük, hogy adott menüponthoz
(komponenshez) megjelenjen-e egy bizonyos modul, azonban nem feltétlenül szükséges
komponensekhez, vagy egyáltalán bármihez kötni őket. Tartalmazhatnak HTML kódot
vagy szöveget is.
A modulokat leginkább kis dobozokat alkotnak, melyek egy komponens köré
csoportosulnak (például ilyen a bejelentkezés modul). A lábléc is egy modult testesít meg.
A modulok Vezérlőpultban, a Bővítmények menü Modulkezelő pontja alatt érhető el.
Ha az Új gombra kattintunk, látatjuk, milyen modulokkal bővíthetjük a felhasználói oldalt
(Webhely), vagy épp a kiszolgáló oldalt (Adminisztrátor).
57
Beépülő modulok
A beépülő modulok nélkülözhetetlenek az eseménykezelésben. A rendszer bővítmények
legfejlettebb típusát képezik.
A Joomla! bármely részének végrehajtásához – legyen az alapfunkció, modul, vagy
komponens – előidézhető egy esemény. Ekkor az eseményhez kapcsolt beépülő modul
kezeli a végrehajtást. A korábbi 1.0-ás verziókban ezen feladatokat a mambotok látták el.
A beépülők listáját a kiszolgáló oldal főmenüjében, a Bővítmények menü Beépülő modul-
kezelő pontja alatt éri el az adminisztrátor (például itt találjuk a TinyMCE nevű
WYSIWYG szövegszerkesztőt).
Sablonok
A sablon biztosítja a Joomla! webhely külső megjelenését; cseréjével megváltoztathatjuk,
hogyan is nézzen ki oldalunk. A sablonok különböző mezőket tartalmaznak, melyekben a
komponensek és modulok megjelennek.
Viszonylag egyszerű megalkotni, módosítani őket (HTML és CSS ismeret szükséges
hozzá), és a lehető legnagyobb rugalmasságot nyújtják az oldal stílusának létrehozásához.
Sok-sok ingyenes Joomla! kinézetet lehet letölteni, de léteznek kereskedelmi sablonklubok
is, melyektől tagsági díj fejében minőségi sablonok vásárolhatók.
Ahhoz, hogy elérjük a rendszer sablonjait, adminisztrációs felületen kattintsunk a
Bővítmények menü Sablonkezelő pontjára.
Nyelvek
A nyelvi csomagok a felhasználói és a kiszolgáló oldal nyelvének módosítását egyaránt
lehetővé teszik. Kétféle nyelvi csomag létezik a Joomla!-hoz: alapcsomag és bővítmény. A
csomagok tartalmaznak egy XML fájlt is, melyek a PDF tartalom generálásához összegzik
a nyelv és a betűtípus információkat. A nyelvi fájlok kulcs/érték párokat tartalmaznak,
ezek a párok teszik lehetővé a statikus szövegláncok fordítását, amelyek a rendszer
forráskódjához rendeltek.
A nyelvek menedzselése a Bővítmények menü Nyelvkezelő menüpontja alatt található.
Bővítmények telepítése és eltávolítása
A különféle bővítményeket többnyire .zip formátumú archívumba csomagolva leljük fel a
világhálón. Ahhoz, hogy a Joomla! használni tudja ezen modulokat, nem elegendő a
58
tömörített állomány tartalmát feltöltenünk a webszerverre, hanem az adatbázis megfelelő
tábláiba is be kell jegyeznünk őket. Ez elvégezhető kézzel is, de sokkal kényelmesebb, ha a
telepítést választjuk.
Egy bővítmény telepítését a Bővítménykezelő segítségével végezhetjük el, melyet a
Bővítmények menü Telepítés/Eltávolítás pontja alatt érünk el.
26. ábra: A bővítmények telepítésére szolgáló oldal a Joomla!-ban
Több lehetőségünk is van. A telepítendő fájlt nem feltétlenül kell letöltenünk, mindössze a
távoli fájl webcímére van szükségünk, melyet a Telepítési URL mezőbe kell bemásolnunk,
majd a Telepítés gombot megnyomnunk. Amennyiben a telepíteni kívánt bővítmény
tömörített állományát valamilyen háttértárolóról szeretnénk Joomla! rendszerünkhöz adni,
egyszerűen tallózzuk be a fájlt, majd kattintsunk a Fájl feltöltése & Telepítés gombra.
A Modulkezelőben listába rendezve láthatjuk az eddig meglévő modulokat. A kezelő
logikusan két részre osztott menüjének egyike a honlap modulok kezelésére szolgál, másik
menüpontja pedig az adminisztrátori modulokéra. A honlap modulok leginkább abban
különböznek az adminisztrátori moduloktól, hogy nem tartalmaznak adminisztrátori
elemeket, illetve tartalmuk a webes felületen jelenik meg.
A modulok kezelése mindig az adminisztrációs felületen történik. Létrehozhatunk, vagy
törölhetünk egy modult, megváltoztathatjuk általános beállításait (név, hozzáférési szint,
59
megjelenés helye az oldalon, stb.). Mindegyiknek van egy típusa (pl.: mod_mainmenu),
továbbá különféle paramétereket adhatunk meg nekik.
Adminisztrációs felület
A Joomla! – számos CMS-től eltérően – teljesen elkülönített felületen oldja meg a
weboldal adminisztrációs feladatait. Ezt az alkalmazást nevezik adminisztrációs felületnek
(backend).
Vezérlőpult
A Vezérlőpult segítségével az adminisztrátor könnyen kiismerheti magát a Joomla!
rendszerben. Itt találunk minden, a tartalmak létrehozásával, a felhasználók kezelésével, és
a rendszer hangolásával kapcsolatos beállítást.
A Vezérlőpult megjelenése és elrendezése nagyon hasonlít az e107 admin területéhez. Az
oldal tetején a fejléc található; baloldalán a Joomla! logó és a webhely neve, jobb oldalán a
rendszer verziószáma olvasható.
A fejléc alatt vízszintes menüt találunk, melyben minden opciót megtalálunk,
kategorizálva.
A Webhely alatt hivatkozást találunk a Vezérlőpultra, továbbá megnyithatjuk a
Felhasználókezelőt, a Médiakezelőt, és a Globális beállításokat. A Kilépés paranccsal
elhagyhatjuk az adminisztrációs felületet, befejezhetjük munkánkat.
A Menük alatt a Menükezelőbe navigálhatjuk magunkat. A Menüpont kuka a még nem
véglegesen törölt menüpontokat rejti. A választóvonal alatt az egyes menüket láthatjuk (az
alaprendszer egyetlen menüt tartalmaz, ez a Főmenü).
A Tartalom menü a Cikk-kezelő, és az ahhoz tartozó Cikk kuka egységeket takarja.
Találunk még itt hivatkozást a Szekciókezelő, Kategória-kezelő, és Címlapkezelő részekre
is.
A Komponensek menü már összetettebb. Itt érjük el a jelenlegi hirdetéseket, kapcsolatokat,
hírcsatornákat, webes hivatkozásokat, az aktív szavazásokat, és a keresési statisztikát.
A Bővítmények menü alatt van lehetőségünk a Bővítménykezelő megnyitására, ahol
kiegészítőket telepíthetünk, vagy távolíthatunk el, továbbá módunkban áll a Modulkezelő, a
Beépülő modul-kezelő, a Sablonkezelő, és a Nyelvkezelő megnyitása is.
60
27. ábra: A Joomla! vezérlőpultja
Az Eszközök menü biztosítja, hogy elolvashassuk bejövő üzeneteinket, vagy új levelet
írhassunk. Lentebb a Tömeges levelek menüponttal találkozunk, melynek segítségével
egyszerre több felhasználónak küldhetünk üzenetet. A Globális visszavétel segítségével a
félbehagyott tartalmakat menedzselhetjük. Az alsó két opcióval a cache tisztítható meg:
Gyorsítótár kiürítése törli a cache összes elemét, míg A lejárt gyorsítótár kiürítése funkció
csak a már nem aktív cache elemektől szabadítja meg a rendszert.
A Súgó menüben a Joomla! súgó érhető el, a Rendszerinformáció menüponttal pedig a
telepített rendszerről kaphatunk részletes leírást (alapinformációk, PHP beállítások,
könyvtárengedélyek, stb.).
A horizontális menütől jobbra hivatkozást találunk a kiszolgáló oldalra; munkánk közben
az Előnézet linkre kattintva ellenőrizhetjük a webhelyen végzett módosításokat. Láthatjuk
az olvasatlan levelek és a bejelentkezett felhasználók számát, a Kilépés linkkel pedig
kijelentkezhetünk a rendszerből.
Az oldal legnagyobb része két blokkra osztott. A baloldali ikonokkal elérjük a rendszer
minden egységét; tulajdonképp ez tartalmazza a Vezérlőpult különböző főbb egységeit.
A jobboldali részben különféle információkat, statisztikákat kapunk; megnézhetjük az
aktív felhasználók listáját, melyek a legnépszerűbb cikkek, a legújabb elemek, és egy
menüstatisztikát is megtekinthetünk.
Az oldal lábléce egy-egy hivatkozást tartalmaz a hivatalos Joomla! weboldalra, és a GNU
honlapjára.
61
A Vezérlőpult funkciói
� Új cikk
Itt hozható létre új cikk.
Műveletek:
- Előnézet: megnyit egy előugró ablakot, melyben megtekinthetjük, hogyan fest
majd a cikk a felhasználói oldalon (WYSIWYG szerkesztő használata esetén –
mint például a TinyMCE – erre nincs szükség)
- Mentés: menti a változtatásokat, majd átirányít a Cikk-kezelőbe
- Alkalmaz: menti a változásokat, de ugyanazon az oldalon marad
- Bezárás: munkánk megszakítása mentés nélkül (minden nem mentett változás
elvész)
- Súgó: az Új cikk súgójának megnyitása
(Részletesebben a „Tartalom beküldése” témakör taglalja.)
� Cikk-kezelő
A létrehozott cikkek kezelése.
Műveletek:
- Archívumból: egy vagy több cikk archivált állapotának eltávolítása
- Archiválás: egy vagy több cikk archiválása; az archivált cikkek megőrzésre
kerülnek a webhelyen, de nem tehetők közzé, amíg archiválva vannak
- Közzététel: még nem élesített cikkek aktiválása
- Visszavonás: közzétett cikkek deaktiválása
- Áthelyezés: cikkek áthelyezése; új képernyőt nyit meg, melynek baloldalán a
lehetséges célterületek, jobboldalán az áthelyezésre kijelölt cikkek listája
látható
- Másolás: cikkek másolása; új képernyőt nyit meg, melynek baloldalán a
lehetséges célterületek, jobboldalán a másolásra kijelölt cikkek listája látható
- Törlés: kijelölt cikkek törlése; a törölt cikkek előbb a kukába kerülnek, ahonnan
később még visszaállíthatók
- Módosítás: meglévő cikkek szerkesztése
- Új: új cikk létrehozása
- Paraméterek: a cikkekre vonatkozó globális beállítások képernyőjének
megnyitása
62
- Súgó: a Cikk-kezelő súgójának megnyitása
� Címlapkezelő
Itt szabályozható, hogy mely cikkek és milyen sorrendben jelenjenek meg a címlapon.
Műveletek:
- Archiválás: egy vagy több cikk archiválása; az archivált cikkek megőrzésre
kerülnek a webhelyen, de nem tehetők közzé, amíg archiválva vannak
- Közzététel: még nem élesített cikkek aktiválása
- Visszavonás: közzétett cikkek deaktiválása
- Eltávolítás: kiválasztott elemek eltávolítása a címlapról; az elemek nem
törlődnek, csak a címlapról tűnnek el, más oldalakon továbbra is elérhetőek
lesznek
- Súgó: a Címlapkezelő súgójának megnyitása
� Szekciókezelő:
A Szekciókezelőben módosíthatók a már létező szekciók, illetve hozhatók létre újak.
Műveletek:
- Közzététel: még nem élesített szekciók aktiválása
- Visszavonás: közzétett szekciók deaktiválása
- Másolás: szekciók másolása; új képernyőt nyit meg, melynek baloldalán a
lehetséges célterületek, jobboldalán a másolásra kijelölt szekciók listája látható
- Törlés: kijelölt szekciók törlése
- Módosítás: meglévő szekciók szerkesztése
- Új: új szekció létrehozása
- Súgó: a Szekciókezelő súgójának megnyitása
� Kategória-kezelő
Új kategóriák létrehozása, illetve a létrehozott kategóriák módosítása.
Műveletek:
- Közzététel: még nem élesített kategóriák aktiválása
- Visszavonás: közzétett kategóriák deaktiválása
- Áthelyezés: kategóriák áthelyezése; új képernyőt nyit meg, melynek baloldalán
a lehetséges célterületek, jobboldalán az áthelyezésre kijelölt kategóriák listája
látható
63
- Másolás: kategóriák másolása; új képernyőt nyit meg, melynek baloldalán a
lehetséges célterületek, jobboldalán a másolásra kijelölt kategóriák listája
látható
- Törlés: kijelölt kategóriák törlése
- Módosítás: meglévő kategóriák szerkesztése
- Új: új kategória létrehozása
- Súgó: a Kategória-kezelő súgójának megnyitása
� Médiakezelő
A feltöltött médiafájlok karbantartására szolgál.
Ez az oldal eltér a többi Vezérlőpult elem oldalától. A Médiakezelő megnyitását követően
egy egyszerű fájlkezelőt kap kézhez az adminisztrátor. Baloldalon a Media könyvtár
fastruktúrája látható – mely fizikailag a webszerver images könyvtára –, jobboldalon az
aktuálisan kijelölt mappa fájljai között lehet mozogni. Utóbbi nézete módosítható: a
Bélyegképek nézet és a Részletek nézet áll rendelkezésre.
Mód van új mappa létrehozására: a mappanév begépelése után a Könyvtár létrehozása
gombra kell kattintani.
Fájl feltöltésére is adott a lehetőség: a kívánt fájl betallózását követően A feltöltés indítása
gombban kezdhetjük meg a folyamatot.
Műveletek:
- Törlés: kijelölt fájlok törlése
- Súgó: a Médiakezelő súgójának megnyitása
� Menükezelő
A Menükezelő felelős a Joomla! menüinek kinézetéért és működéséért.
Műveletek:
- Másolás: menü másolása; a ráklikkelést követően írható be az új menü címe és
modulneve (a cím az, mely a Menükezelőben a menüre hivatkozik, a modulnév
az, mely a Modulkezelőben a modulra hivatkozik)
- Törlés: kijelölt menük törlése
- Módosítás: meglévő menük szerkesztése
- Új: új menü létrehozása
- Súgó: a Menükezelő súgójának megnyitása
64
� Nyelvkezelő
A Nyelvkezelőben állítható be Joomla! felhasználói és kiszolgáló oldalának
alapértelmezett nyelve.
Műveletek:
- Alapértelmezett: az alapértelmezett nyelv kiválasztása
- Súgó: a Nyelvkezelő súgójának megnyitása
� Felhasználókezelő
Itt tekinthető meg a regisztrált felhasználók listája, továbbá lehetőség van a felhasználók
adatainak módosítására, és új felhasználók hozzáadására is.
Műveletek:
- Kilépés: kijelölt felhasználók kijelentkeztetése
- Törlés: kijelölt felhasználók törlése
- Módosítás: meglévő felhasználók szerkesztése
- Új: új felhasználó létrehozása
- Súgó: a Felhasználókezelő súgójának megnyitása
(Részletesen a „Felhasználó-kezelés” témakör taglalja.)
� Globális beállítások
Ezen az oldalon végezhető el a telepített Joomla! rendszer beállításainak testre szabása.
Műveletek:
- Mentés: menti a változásokat, majd átirányít a Vezérlőpultba
- Alkalmaz: menti a változásokat, de ugyanazon az oldalon marad
- Bezárás: munkánk megszakítása mentés nélkül (minden nem mentett változás
elvész)
- Súgó: a Globális beállítások súgójának megnyitása
(Részletesen a „Globális beállítások” témakör taglalja.)
Globális beállítások
Itt a Joomla! működésének testre szabása, az egész rendszerre kiterjedő beállítások
megadása végezhető el. A változások elmentését követően a configuration.php fájl
tartalma módosul – a biztonság érdekében a mentés után érdemes írásvédetté tenni.
65
• Webhely
Felhasználói felületre vonatkozó beállítások.
A Webhely beállításai blokkban offline módba rakhatjuk oldalunkat, és megadhatjuk az
ehhez tartozó üzemen kívüli üzenetet. Módosíthatjuk a (telepítés során automatikusan
létrehozott) webhely nevét, ami megjelenik a fejlécen. Beállíthatjuk az alapértelmezett
WYSIWYG szövegszerkesztőt (alapértelmezésben TinyMCE), a listák és hírcsatorna-
tételek számát, és a hírcsatorna e-mail címét.
A Metaadatok beállításai dobozban megadhatjuk a webhely globális meta leírását,
kulcsszavakat a keresőrobotok számára, a cím és a szerző megjelenítésének módját.
A Keresőoptimalizálás beállításai blokkban keresőbaráttá tehetjük a webhely URL-jeit,
bekapcsolhatjuk az utótag URL-hez fűzését, továbbá – Apache szervert használók –
rendelkezhetnek a mod_rewrite használatáról (könnyebben megjegyezhető, "beszédes"
URL-k létrehozásához).
• Rendszer
A rendszer működését szabályzó beállítások.
A Rendszerbeállítások rész mutat egy titkos szót, melyet a Joomla! generált a telepítés
során, biztonsági okokból. Módosíthatjuk a naplózás elérési útját, engedélyezhetjük a
webszolgáltatásokat, és beállíthatjuk a súgókiszolgálót. Utóbbi alapértelmezésben English
(GB) – help.joomla.org, melyet átállíthatunk magyarra: a legördülő menüben keressük meg
a Hungarian – joomla.org.hu sort.
A Felhasználó beállításai blokkban a regisztrációs rendszerrel kapcsolatos beállításokat
adhatjuk meg: a felhasználók regisztrációjának engedélyezése, az újonnan regisztrált
felhasználók típusa, az új felhasználói fiókok aktiválása, és a tagok adatainak
megjelenítése a felhasználói oldalakon.
A Média beállításai egységben a webhelyre feltölthető engedélyezett fájltípusok listáját
adhatjuk meg, kiköthetjük a fájlok maximális méretét (bájtban), megváltoztathatjuk a
média és a képeket tároló könyvtárak elérési útját. Korlátozhatjuk a fájlfeltöltést: teljesen
letilthatjuk, vagy adott felhasználócsoportnak engedélyezhetjük. Beállíthatjuk a MIME
típusok vizsgálatát (alapértelmezés szerint aktív), az engedélyezett és nem engedélyezett
MIME típusok listáját, továbbá a megengedett és mellőzött képfájl típusokat. Itt
kapcsolhatjuk be a Flash feltöltőt is.
A Hibakeresés beállításai két opciót foglal magába: be-, illetve kikapcsolhatjuk a
hibakeresést a rendszerben és a nyelvben.
66
A Gyorsítótárazás beállításai a cache-re vonatkoznak. Aktiválhatjuk a gyorsítótárazás,
megadhatjuk az időtartamát (percben), és a kezelő típusát.
A Munkamenet beállításai dobozban az egyes munkamenetek élettartamának idejét
szabhatjuk meg (percben), illetve a kezelő típusát választhatjuk meg.
• Kiszolgáló
A kiszolgálóval (szerverrel) kapcsolatos beállítások. Itt a telepítés során megadott
paraméterekkel találkozunk viszont – néhány egyéb opció kíséretében.
A Kiszolgáló beállításai alatt az ideiglenes fájlok könyvtárának elérési útját írhatjuk át,
engedélyezhetjük a GZIP oldaltömörítést, megválaszthatjuk a hibajelentés módját, és az
SSL kényszerítés területét.
A Területi beállítások az időzóna meghatározására szolgál.
Az FTP beállításai az FTP réteg opcióit tartalmazza. Engedélyezhetjük vagy tilthatjuk az
FTP-t. A kiszolgáló nevét az Ügyfélkapura bejelentkezve tudjuk leolvasni a
Rendszeradatok menüpont alatt. A port minden esetben a 21-es. A felhasználónév és jelszó
megegyezik az Ügyfélkapu belépési azonosítóival. A gyökér részhez azt a könyvtárnevet
kell megadni, amelyben a Joomla! oldal megtalálható. Ez általában a domain névvel
megegyező azonosító (például az oldalunk címe oldalam.hu, akkor a mezőbe a /oldalam.hu
elérési utat kell megadni).
Az Adatbázis beállításai blokk a telepítés során megadott adatbázis adatokat foglalja
magában: adatbázis típusa, kiszolgáló neve, felhasználónév és jelszó, adatbázis táblák
előtagja.
A Levelezés beállításai értelemszerűen a levelezéssel kapcsolatos lehetőségeket rejti.
Kiválaszthatjuk a postázó (levélküldés) típusát, megadhatjuk a feladó e-mail címét és nevét
(alapértelmezés szerint ez az adminisztrátor, melynek adatait a Joomla! automatikusan
elhelyezi a megfelelő mezőkben). Amennyiben rendelkezünk a Sendmail postázóval,
megadhatjuk annak pontos elérési útját. Lentebb az SMTP beállításokkal találkozunk:
hitelesítés kérése, biztonság típusa, port száma, SMTP felhasználónév, jelszó, és
kiszolgáló.
67
Új tartalom létrehozása
Ha bejelentkeztünk a rendszerbe, Vezérlőpulton az Új cikk gombbal hozhatunk létre
tartalmat. A megjelenő oldalon begépelhetjük a tartalom címét, majd a vagylagos címet.
Utóbbival egy meglévő menüpontra mutató hivatkozást hozhatunk létre – ez a dupla
tartalom elkerülése szempontjából lehet fontos.
28. ábra: Új cikk beküldése a Joomla!-ban (felső rész)
Megadhatjuk, hogy a cikk a mentést követően legyen közzétéve, vagy sem, illetve
címlapra kerüljön-e. Amennyiben vannak létrehozott szekcióink és kategóriáink, úgy
azokba besorolhatjuk a cikket.
Ezen opciók alatt találjuk a munkaterületet, mely a Wordre hasonlító WYSIWYG
szövegszerkesztőből áll. A nagy mezőbe a cikk tartalmát írjuk. Felette a
szövegszerkesztőkben megszokott gombokkal találkozunk (igazítás, felsorolás és
számozás, táblázat, stb.).
Alul lehetőségük van az Oldaltörés gomb használatával több oldalra bontani a cikket, a
Bővebben gombbal két részre bontani, bevezetőre és teljes nézetre – ilyenkor szekció- és
kategórianézetben csak a bevezető jelenik meg –, illetve a Kép gomb használatával képet
szúrhatunk be a cikkbe egy egyszerű képfeltöltő segítségével, amely a Joomla!
Médiakezelőjéhez csatlakozik. A Szerkesztő átváltása gombbal megválhatunk a
WYSIWYG szerkesztőtől, és egy egyszerű szövegdobozt kapunk, melyben HTML kódok
segítségével formázhatjuk meg a begépelt szöveget.
68
29. ábra: Új cikk beküldése a Joomla!-ban (alsó rész)
A munkaterülettől jobbra található blokkban láthatjuk aktuális cikkünk információit;
állapot, találatok, javítások, a létrehozás, valamint a módosítás dátumát. Beállíthatjuk a
cikk további paramétereit: a szerzőt, melynek megadhatunk alternatív nevet is, a
hozzáférési szintet (mely felhasználócsoport érheti el a cikket), a létrehozás dátumát,
valamint a közzététel kezdetét és végét (mely időintervallumban legyen aktív a tartalom).
30. ábra: Cikk információk és paraméterek a Joomla! szerkesztőjében
Mindezen felül, alkalmazhatunk speciális beállításokat is: legyen-e bevezetője a
cikkünknek, megjelenjen-e a szerző, a szekció, vagy a kategórianév, látsszon-e a
létrehozás, módosítás dátuma és időpontja. Megadhatjuk, hogy mely elemek jelenjenek
meg a létrehozott cikkben hivatkozásként (cím, szerző, szekció, kategória), átállíthatjuk
69
cikkünk nyelvét, valamint aktiválhatjuk a PDF, Nyomtatás, és E-mail ikonokat is. Ha nem
módosítunk semmit, a globális beállítások érvényesülnek a cikken.
A Metaadatok alatt begépelhetünk egy rövid leírást a cikkhez, továbbá megadhatunk
kulcsszavakat, melyek az oldalon történő keresést teszik hatékonyabbá a későbbiekben.
Amennyiben begépeltük cikkünk szövegét, megformáztuk, megszerkesztettük, majd
minden beállítást elvégeztünk rajta, az Mentés gomb segítségével tárolhatjuk a
változásokat. Munkánkat menet közben többször is elmenthetjük az Alkalmaz gombbal. Ha
szeretnénk megtekinteni, hogyan fest majd a tartalom végeredményben a felhasználói
oldalon, az Előnézet gombbal megtehetjük. Ha nem kívánjuk a cikket létrehozni,
kattintsunk a Mégse gombra, mely után a Cikk-kezelőbe visz minket a rendszer. Ha
munkánk során elakadnánk, a Súgó gomb megnyomásával segítséget kérhetünk a
rendszertől.
Felhasználói felület
Szerkezeti felépítés
A Joomla! szerkezete háromszintű: tartalom, kategória, szekció.
Az első szinten található a tartalom. Ezt hozzá kell rendelni egy kategóriához – egy
kategória tartalmazhat egy vagy több tartalmat is. A kategóriákba a dinamikus tartalmak
kerülnek, vagyis azok a tartalmak, melyek folyamatosan változnak, frissülnek (pl. hírek).
Ezek megjelenése a rajtuk, illetve az oldalon alkalmazott moduloktól függ. A kategóriát
hozzá kell rendelni egy szekcióhoz, mely tartalmazhat akár több kategóriát is. A tartalmak,
a kategóriák, valamint a szekciók közvetlenül hozzárendelhetők az egyes menükhöz. A
menü független a struktúrától, tehát lehet több mint háromszintű is.
Amikor létrehozunk egy weblapot, azt különböző tartalmakkal töltjük fel – ezeket később
rendszereznünk kell. A tartalom lehet kategória része is, vagy önállóan is megjelenhet a
menüben (statikus tartalom). A statikus tartalmat nem kell külön rendszerezni; önálló
tartalom, amely megjelenik a menüben, amelyhez integráltuk.
70
31. ábra: A Joomla! szerkezete
Szerkezeti elemek
1. Főmenü
Ennek a segítségével navigálhatunk a különböző oldalakra (pl. Hírek, Blog, Linkek,
GYIK). Innen bármikor törölhetünk meglévő menüelemeket, illetve hozzáadhatunk újakat.
2. Bejelentkezés modul
Itt léphetünk be az oldalra, hogy a védett tartalmakat is láthassuk, kommentálhassuk
(amennyiben van rá lehetőség), illetve itt regisztrálhatnak a webhelyre a látogatók.
3. Fejléc
A weboldal egyedi fejlécképét (header), a webhely főcímét és alcímét hivatott
megjeleníteni. Elhelyezhetők benne dinamikus és statikus tartalmak egyaránt, valamint
Flash animációk is (pl. diavetítés).
71
4. Szavazás
Webhelyünkön különféle témákban indíthatunk szavazásokat, melyek ebben a blokkban
kerülnek ki a frontendre.
5. Friss hírek
Linkkatalógus formájában szedi össze a legfrissebb híreket. A dobozban a hírek címe
jelenik meg hivatkozásként, az egyes linkek időrendi sorrendben visszafelé helyezkednek
el (a legfrissebb kerül a legfelső helyre).
6. Népszerű cikkek
A friss hírek formáját követve, szintén linkkatalógust állít össze – a cikkek olvasottsága
alapján. A legolvasottabb kerül az első helyre (legfelülre).
7. Keresés
Segítségével kereshetünk a webhelyen található cikkek, blogbejegyzések, fórumtémák
között.
8. Banner
A banner felületen különböző reklámok elhelyezésére van lehetőség – az egyes reklámok
egyben hivatkozások is a reklámozott termék vagy szolgáltatás oldalára.
32. ábra: Egy alapértelmezett banner a Joomla! frontend oldalán
9. Hirdetés
Egyszerű hirdetések megjelenítésére, illetve azok linkjeinek összegyűjtésére szolgál.
10. Lábléc
Az oldal készítőinek információit, RSS feed linket, hivatkozást a Joomla! hivatalos
honlapjára, valamint XHTML és CSS validációról szóló igazolást tartalmazhat.
72
11. Tartalom
A webhely legnagyobb egysége; mely a felvitt tartalmakra (híreket, cikkeket) terjed ki.
Általában tartalmazza a tartalom címét, magát a szövegtörzset, a szerző megjelölését, a
létrehozás dátumát, címkéket, valamint hivatkozást a tartalomhoz fűzött hozzászólásokhoz.
Felhasználó kezelés
Mint minden CMS, a Joomla! is elkülöníti az adminisztrációs felületet (backend) a
felhasználói oldaltól (frontend) - ez lényeges szempont a felhasználó kezelés tekintetében.
A Joomla! a phpGACL rendszeren alapul, így hozzáférés vezérlése (ACL, access control
list) is ezen nyugszik, ezért három fő felhasználócsoportot definiál:
• Mindenki: az oldal olyan látogatói, akik semmiféle joggal nem rendelkeznek; csak
a felhasználói oldalon, mindenki számára közzétett (publikus) tartalomhoz
férhetnek hozzá.
• Regisztráltak: a webhely olyan részeinek hozzáférésére jogosultak, melyekhez nem
mindenki férhet hozzá. Három csoportra tagolódik, az egyes csoportok különböző
jogokkal bírnak: szerzők, szerkesztők, közzétevők.
• Speciális: a backendhez és a frontendhez egyaránt hozzáférő felhasználók (kezelők,
adminisztrátorok, főadminisztrátorok).
A telepítés során a rendszer főadminisztrátori jogot ad a telepítést végző személynek, így
ez az ember lesz az, aki majd minden jogosultsággal rendelkezik.
A későbbiekben lehetőség van a felhasználók másik felhasználócsoportba történő
áthelyezésére. Ehhez nyissuk meg a Webhely/Felhasználókezelő menüpont által meghívott
oldalt, ahol keressük meg a mozgatni kívánt tagot. Kattintsunk a nevére, a betöltődő
oldalon a Csoport választómezőben jelöljük ki az új csoportot, majd az eszköztáron
kattintsunk a Mentés vagy az Alkalmaz gombra.
Ha vannak olyan cikkeink, melyek nem mindenki számára láthatóak, akkor a Globális
beállítások képernyő Rendszer fülén, a Felhasználó beállításai részben állítsuk igenre A
felhasználók regisztrálásának engedélyezése beállítást. Ebben az esetben az Új felhasználói
fiók aktiválása opciót is javallott igenre módosítani.
73
Joomla! 1.6
A Joomla! 1.6-os verziójának első bétaverziója 2010. május
17-én jelent meg. A végleges változatra kevesebb, mint egy
évet kellett várni; az 1.6.0-ás verzió 2011. január 10-én
debütált a CMS hivatalos honlapján.
A fejlesztők a rendszer jelentős részét alapjaitól újjáépítették.
Újabb célokat tűztek ki az új generációs Joomla! számára; egy kiterjesztett hozzáférés
szabályozási rendszer, a többszintű kategóriák megvalósítása, valamint szabványos
Modell-Nézet-Vezérlő (MVC) fejlesztőkörnyezet alkalmazása.
A Joomla 1.6 készítése során nagy hangsúlyt fektettek a fejleszthetőségre; a fejlesztők
immár a tervezés, a telepítés és frissítés valamennyi szakaszában könnyebben tudnak
bővítményeket építeni.
A külső megjelenés, illetve a template-ek területén történt fejlesztések a grafikai tervezők
kezébe ad nagyobb rugalmasságot. A tervezők gyakorlatilag minden kimenetet felül
tudnak bírálni a Joomla! adminisztrációjából. Egyedi adminisztrációs sablonok rendelhetők
hozzá az egyes felhasználókhoz, ami bármilyen speciális igény teljesítését lehetővé teszi a
webmesterek számára.
Számos változtatás és új funkció látott napvilágot:
o új ACL (Access Control List) jogosultság rendszer
1. új felhasználói csoportok létrehozása
2. felhasználók csoportokhoz rendelése
3. csoportok hozzáférési szintekhez rendelése
4. hozzáférési szintek tartalmi elemek tulajdonságaihoz rendelése
o többszintes kategória rendszer
o MooTools v1.2
A MooTools segítségével látványos effektek helyezhetők a rendszerbe.
o a kommentrendszert a Joomla! magba építették
o nincs "Örökölt mód" a Joomla! 1.6-ban
Az örökölt módot a Joomla! 1.5-ben láthattuk először. Célja az volt, hogy a korábbi
bővítmények futhassanak az új verzióban is, de a mód használata jelentős lassulást
okozott, sőt, olykor nem is működött megfelelően.
o teljesen átírt menü- és modulkezelő
74
o többstílusú variációs lehetőség a sablonoknál (egy sablonnak egyszerre több stílusa
lehet)
o átalakított bővítménykezelő
1. bővítmények automatikus frissítése
2. új bővítmények felfedezése
o URL átirányítási lehetőség
o a szavazáskezelőt kiszedték a Joomla! magból
o megtekintési szintek finomítása, a tartalmak megjelenítésének és szerkesztésének
csiszoltabb hozzáférés szabályozása
o átalakított telepítő, új funkciók a telepítés egyes szakaszaiban
o kibővített nyelvi támogatás
o meghatározható a modulok közzétételének kezdő és záró időpontja
o magasabb szintű modul felügyelet
o új sablonok; szemantikus jelölések alkalmazása
o korszerűbb, egyszerűsített munkafolyamatok
Rendszerkövetelmények:
� Apache v2.x
� PHP v5.2.4 (vagy újabb verzió)
� MySQL v5.0.4 (vagy újabb verzió)
75
Saját CMS készítése
Tervezés
Minden programfejlesztést egy alapos tervezés előz meg, melynek során a fejlesztő felméri
az igényeket, és meghatározza, milyen feladatokat kell teljesítenie az általa lekódolt
programnak.
Jómagam egy képzeletbeli hírportált (NYF CMS) terveztem, mely néhány egyszerű
funkció ellátására hivatott: tartalmak közzététele, szerkesztése, törlése, valamit
felhasználók regisztrációja, beléptetése a rendszerbe.
Két fő egysége van az oldalnak:
- felhasználói felület: itt az oldal látogatói csak olvashatják a tartalmakat, de nem
szerkeszthetik azokat, valamint nem adhatnak az adatbázishoz új hírelemeket, és
nem törölhetnek a meglévő hírek közül egyet sem
- szerkesztő felület: az oldalra látogató személy a regisztrációt és a belépést követően
megkapja azokat a plusz funkcionalitásokat, melyek segítségével hozzáadhat,
szerkeszthet és törölhet tartalmakat
A portál megvalósítása során főként php kódokat alkalmaztam, de találhatók a forrásban
HTML tagek is, melyekkel néhány statikus tartalom kerül megjelenítésre. Az oldal
kinézetéért egy CSS stíluslap felelős.
Az adatokat egy MySQL adatbázisban tárolom, mivel php kódok segítségével egyszerűen
lehet vele dolgozni, valamint bizonyos SQL parancsok (SELECT, INSERT, CREATE,
DELETE, UPDATE) futtatása is könnyedén megoldható.
Az adatbázis, valamint az egyes adattáblák létrehozásáért szintén egy php kód felelős – ez
lesz a CMS telepítője.
Követelmények
A rendszer fejlesztéséhez és használatához szükséges egy webszerver, egy php értelmező,
valamint egy MySQL kezelő program. Mindezek összehangolására létezik keretrendszer
76
is, mely csupán egy egyszerű telepítés után használható. Ilyen a XAMPP vagy az AppServ.
Én az utóbbi mellett döntöttem – a CD mellékleten megtalálható.
Telepítést követően a C:\AppServ\www\nyfcms könyvtárban dolgoztam – itt zajlik a
fejlesztés, később a használat is. Ahhoz, hogy a munkát ellenőrizhessem, illetve a
felhasználó megnyithassa a rendszert, tetszőleges böngészőprogram címsorába kell
begépelni a következőt: http://localhost/nyfcms.
Látványterv
33. ábra: Az NYF CMS látványterve
77
Megvalósítás
Mappaszerkezet
gyökér /admin /includes /install /style
index.php
A fájlt egy php szkripttel kezdjük: meghívjuk az osztályainkat tartalmazó class.php-t, majd
elindítjuk a munkamenetet. Ezt követően példányosítjuk az osztályunkat, és csatlakozunk
az adatbázishoz.
Az adminisztrációhoz tartozó oldalak kódjainak mindegyikét a session_start();
függvénnyel kell kezdeni, hogy a főoldalon megkezdett munkamenet ne szakadjon meg.
<?php require ( 'includes/class.php' ); session_start(); ob_start(); $obj = new sajatCMS (); $obj -> connect (); ?>
A következő kódrészlet a főmenüt valósítja meg. A Főoldal hivatkozás minden oldalon
megjelenik, a Tartalom hozzáadása és a Tartalom szerkesztése hivatkozások csak a
regisztrált is bejelentkezett tagok számára válik láthatóvá.
A CMS többi oldalán is ez a séma lesz érvényben a főmenüre.
<div id="menubar"> <ul id="menu"> <li class="selected"><a href="index.php">F őoldal</a></li> <li> <?php if ($_SESSION[ 'logged_in' ] == true ) { print "<a href=\"admin/add-content.php\">Tartalom hozzáad ása</a>" ; } ?></li>
78
<li> <?php if ($_SESSION[ 'logged_in' ] == true ) { print "<a href=\"admin/manage-content.php\">Tartalom szer kesztése</a>" ; } ?></li> </ul> </div>
Az alábbi kód a jobb oldali sávon megjelenő modulokat include-olja a rendszerbe:
bejelentkezés modul, Regisztráció gomb, kereső modul, hasznos linkek modul. Ha valaki
belép a rendszerbe, a Regisztráció gomb eltűnik, továbbá megjelenik egy újabb modul,
mely kiírja annak az öt felhasználónak a nevét, akik legutóbb beregisztráltak. Lentebb
áttekintésre kerülnek ezek a modulok is.
Akárcsak a főmenü esetében, az oldalsáv is ezt a mintát használja az összes aloldalon.
<div class="sidebar"> <?php require ( 'login.php' ); require ( 'includes/registration.php' ); print "<br />" ; include ( 'includes/search.php' ); print "<br />" ; include ( 'includes/links.php' ); ?> </div>
A következő kóddarab két feltételből áll: ha nincs aktív bejelentkezés (munkamenet), a
get-content.php kerül meghívásra, azaz az oldal tartalma csak olvasható, nem bővíthető
vagy szerkeszthető. Ha viszont a bejelentkezés munkamenet igaz értékkel tér vissza,
átirányítás történik az admin/index.php-ra, ahol már szerkesztési feladatok is elvégezhetők.
<?php if ( $_SESSION[ 'logged_in' ] != true ) { require ('admin/get-content.php'); } if ( $_SESSION[ 'logged_in' ] == true ) { header ( 'Location: admin/index.php' ); } ?>
config.php
Ebből a fájlból olvasom ki az adatbázis csatlakozáshoz szükséges adatokat (host,
felhasználónév, jelszó, adatbázis neve). Mindegyikhez deklarálok egy-egy változót.
79
A fájl csupán ennyit tartalmaz:
<?php $db_host = "localhost" ; $db_username = "root" ; $db_password = "password" ; $db = "nyfcms" ; ?>
class.php <?php class sajatCMS {
Függvény – adatbázis csatlakozási adatok beállítása:
function set_data () { if ( isset ( $_POST[ 'host' ]) && isset ( $_POST[ 'username' ]) && isset ( $_POST[ 'password' ])) { $file = "../includes/config.php" ;
A config.php tartalmának törlése, mielőtt új adatokat mentünk bele:
$fp = fopen( "../includes/config.php" , "w" ); fwrite( $fp , "" ); fclose( $fp ); $tofile = "<?php\n\t \$db_host = \"" . $_POST[ 'host' ] . "\";\n\t \$db_username = \"" . $_POST[ 'username' ] . "\";\n\t \$db_password = \"" . $_POST[ 'password' ] . "\";\n\t \$db = \"nyfcms\";\n?>" ; $fp = fopen( $file , "a" ); fwrite( $fp , $tofile ); fclose( $fp ); } }
Függvény – csatlakozás az adatbázishoz:
Ha a csatlakozási paraméterek nem megfelelők (a config.php-ben), átirányítás történik az
install.php-re, egyébként megtörténik a csatlakozás.
function connect () { include ( 'config.php' );
80
$con = mysql_connect( $db_host , $db_username , $db_password ) or die ( '<meta http-equiv="refresh" content="3; install.php ">' );
UTF-8 kódolás beállítása:
mysql_query( 'SET NAMES utf8' ); mysql_query( 'SET CHARACTER_SET utf8' );
Kiválasztja az adatbázist, amihez csatlakozni szeretnénk (nyfcms), amennyiben nem tud, a
kód futása megszakad:
mysql_select_db( $db , $con ) or die (mysql_error()); }
Függvény – tartalom lekérése az adatbázisból:
A tartalom lekérése sorszám (id) alapján történik. Deklarálok egy $return változót, mely a
kezdőlapra hivatkozik – ez minden egyes bejegyzés alatt megjelenik majd, amikor
rákattintunk a bejegyzés címére.
Ha nem kattintunk egyetlen bejegyzés címre sem, a tartalmak megjelennek a főoldalon – id
alapján csökkenő sorrendben, azaz a legfrissebb kerül a legelső helyre (felülre).
function get_content ( $id = '') { if ( $id != ""): $id = mysql_real_escape_string( $id ); $sql = "SELECT * FROM cms_content WHERE id = '$id'" ; $return = '<p><a href="index.php">Vissza a f őoldalra...</a></p>' ; else : $sql = "SELECT * FROM cms_content ORDER BY id DESC" ; endif ; $res = mysql_query( $sql ) or die (mysql_error());
Itt történik meg az egyes adatmezők kiolvasása (és egyben formázása) a cms_content
táblából. Ha olyan id-t kérünk le a táblából, ami nem létezik, hibaüzenetet kapunk.
if (mysql_num_rows( $res ) != 0): while ( $row = mysql_fetch_assoc( $res )) { print '<h1><a href="index.php?id=' . $row [ 'id' ] . '">' . $row [ 'title' ] . '</a></h1>' ; print '<p>' . $row [ 'body' ] . '</p>' ;
81
print '<h4>Írta: ' . $row [ 'author' ] . ' | Dátum: ' . $row [ 'date' ] . '</h4>' ; } else : print "<p>A kért oldal nem létezik!</p>" ; endif ; print $return ; }
Függvény – tartalom hozzáadása:
Deklarálom az egyes adatmezőkhöz tartozó változókat (cím, törzs, szerző, dátum).
function add_content ( $p) { $title = mysql_real_escape_string( $p[ 'title' ]); $body = mysql_real_escape_string( $p[ 'body' ]); $author = $_SESSION[ 'nickname' ]; $postdate = date( 'Y-m-d' );
Leellenőrzöm, hogy a cím mező és a törzs szövegdoboz kitöltésre került-e (tartalmaz-e
karaktereket). A felhasználó mindaddig hibaüzenetet kap, amíg nem tölti ki mindkét
beviteli egységet.
Ha mindkét mező kitöltésre került, az új adatokat beszúrom az adatbázisba. A sikerességről
tájékoztatást kap a felhasználó.
if (! $title || ! $body ): if (! $title ): print "<p>Cím megadása kötelez ő!</p>" ; endif ; if (! $body ): print "<p>Törzs megadása kötelez ő!</p>" ; endif ; print '<p><a href="../admin/add-content.php">Próbálja újra!</a></p>' ; else : $sql = "INSERT INTO cms_content VALUES (null, '$title', '$body', '$author', '$postdate')" ; $res = mysql_query($sql) or die (mysql_error()); print "<p>Hozzáadás sikeres!</p>" ; endif ; }
82
Függvény – tartalom szerkesztése:
Kiolvasom az adatokat a cms_content táblából.
function manage_content () { print '<div id="manage">' ; $sql = "SELECT * FROM cms_content ORDER BY id DESC" ; $res = mysql_query( $sql ) or die (mysql_error()); while ( $row = mysql_fetch_assoc($res)): ?>
Két hivatkozást hozok létre, az egyikkel módosíthatom (update-content.php), a másikkal
törölhetem a meglévő tartalmakat. A megfelelő tartalmat id alapján azonosítom.
<div> <h2 class="title"> <?=$row [ 'title' ] ?></h2> <span class="actions"> <a href= "update-content.php?id= <?=$row [ 'id' ]; ?>"> Szerkesztés </a> | <a href= "?delete= <?=$row [ 'id' ]; ?>"> Törlés </a> </span> </div> <?php endwhile ; print '</div>' ; }
Függvény – tartalom törlése:
Ha egy tartalmat kijelöl a felhasználó törlésre, akkor az ahhoz tartozó id-t jelöli ki az
adattáblában. Törlés esetén az adott sorszámhoz tartozó mezőket törli az adattáblából. A
sikeres törlésről tájékoztatást kap a felhasználó.
function delete_content ( $id ) { if (! $id ): return false ; else : $id = mysql_real_escape_string( $id ); $sql = "DELETE FROM cms_content WHERE id = '$id'" ; $res = mysql_query( $sql ) or die (mysql_error()); print "Törlés végrehajtva!" ; endif ; }
83
Függvény – tartalom frissítése (módosítások mentése):
Az adattáblából történő kiolvasás után egy – az új tartalom létrehozásánál látott – űrlapot
hozok létre. Az egyes mezőkben megjelenik a hozzájuk tartozó tartalom, melyet a
felhasználó átírhat.
function update_content_form ( $id ) { $id = mysql_real_escape_string( $id ); $sql = "SELECT * FROM cms_content WHERE id = '$id'" ; $res = mysql_query($sql) or die (mysql_error()); $row = mysql_fetch_assoc( $res ); ?> <form method= "post" action= "index.php" > <input type= "hidden" name="update" value= "true" /> <input type= "hidden" name="id" value= "<?=$row['id']?>" > <div> <label for= "title" >Cím: </label> <input type= "text" name="title" id= "title" value= " <?=$row['title']; ?>" /> </div> <br /> <div> <label for= "body" >Törzs: </label> <textarea name= "body" id= "body" rows= "8" cols= "40"> <?=$row['body']; ?></textarea> </div> <br /> <input type= "submit" name="submit" value= "Módosítás" /> </form> <?php } function update_content ( $p) { $title = mysql_real_escape_string( $p[ 'title' ]); $body = mysql_real_escape_string( $p[ 'body' ]); $id = mysql_real_escape_string( $p[ 'id' ]);
Itt is ellenőrizni kell, hogy nem maradt-e üresen valamelyik beviteli egység. Ha nem, akkor
végrehajtható a módosítás – sikerességéről üzenet kerül kiírásra.
84
if (! $title || ! $body ): if (! $title ): print "<p>Cím megadása kötelez ő!</p>" ; endif ; if (! $body ): print "<p>Törzs megadása kötelez ő!</p>" ; endif ; print '<p><a href="update-content.php?id=' . $id . '">Próbálja újra!</a></p>' ; else : $sql = "UPDATE cms_content SET title = '$title', body = '$body' WHERE id = '$id'" ; $res = mysql_query($sql) or die (mysql_error()); print "<p>Módosítás befejezve!</p>" ; endif ; } } ?>
register.php <center> <?php include ( 'includes/class.php' ); $obj = new sajatCMS (); $obj -> connect ();
Alapértelmezett időzóna beállítása:
date_default_timezone_set( 'Europe/Budapest' );
Változók deklarálása: felhasználónév (becenév), jelszó (kódolással), jelszó megerősítése
(kódolással), e-mail cím, IP cím, dátum, idő.
if ( isset ( $_POST['registration'])) { $nickname = $_POST[ 'nickname' ]; $password = md5( $_POST[ 'password' ]); $confirm = md5( $_POST[ 'confirm' ]); $email = $_POST[ 'email' ]; $ip = $_SERVER[ 'REMOTE_ADDR']; $date = date( 'Y-m-d' ); $time = date( 'H:i:s' );
85
A regisztrációs űrlap kitöltöttségének ellenőrzése kerül sorra. Minden egyes hibáról,
hiányosságról értesítést kap a regisztrálni kívánó személy.
if ( $nickname == NULL | $password == NULL | $confirm == NULL | $email == NULL) { print "<b>Minden mez ő kitöltése kötelez ő!</b>" ; } elseif (strlen( $_POST[ 'nickname' ]) < 3) { print "<b>A felhasználónév túl rövid.</b>" ; } elseif (strlen( $_POST[ 'nickname' ]) > 100) { print "<b>A felhasználónév túl hosszú.</b>" ; } elseif (!ereg( '^[0-9a-zA-Z\.\-\_áéíóöüó űÁÉÍÓÖÜŐŰ]+$' , $_POST[ 'nickname' ])) { print "<b>Helytelen felhasználónév formátum.</b>" ; } elseif (strlen( $_POST[ 'password' ]) < 3) { print "<b>A jelszó túl rövid.</b>" ; } elseif (strlen( $_POST[ 'password' ]) > 30) { print "<b>A jelszó túl hosszú.</b>" ; } elseif (strlen( $_POST[ 'email' ]) < 10) { print "<b>A megadott e-mail cím túl rövid.</b>" ; } elseif (strlen( $_POST[ 'email' ]) > 75) { print "<b>A megadott e-mail cím túl hosszú.</b>" ; } elseif ( $_POST[ 'email' ] == (!eregi ("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$" , $_POST[ 'email' ]))) { print "<b>Helytelen e-mail cím formátum.</b>" ; } else { if ( $_POST[ 'password' ] != $_POST[ 'confirm' ]) { print "<b>A két jelszó nem egyezik!</b>" ; }
86
Felhasználónév és e-mail cím foglaltságának ellenőrzése:
else { if (!get_magic_quotes_gpc()) { $_POST[ 'nickname' ] = addslashes( $_POST[ 'nickname' ]); } $nickcheck = $_POST[ 'nickname' ]; $check_nickname1 = mysql_query( "SELECT nickname FROM cms_user WHERE nickname = '$nickcheck'" ) or die (mysql_error()); $check_nickname2 = mysql_num_rows( $check_nickname1 ); if ( $check_nickname2 != 0) { print "<b>A megadott felhasználónév (" . $_POST[ 'nickname' ] . ") már létezik. Kérem, válasszon másikat!</b>" ; } if (!get_magic_quotes_gpc()) { $_POST[ 'email' ] = addslashes( $_POST[ 'email' ]); } $emailcheck = $_POST[ 'email' ]; $check_email1 = mysql_query ("SELECT email FROM cms_user WHERE email = '$emailcheck'" ) or die (mysql_error()); $check_email2 = mysql_num_rows( $check_email1 ); if ( $check_email2 != 0) { print "<b>A megadott e-mail cím (" . $_POST[ 'email' ] . ") már létezik. Kérem, válasszon másikat!</b>" ; }
Ha minden rendben van az űrlap kitöltésével, beillesztjük az értékeket a cms_user
adattábla megfelelő mezőibe. Természetesen itt is üzenetet kap a felhasználó, hogy
regisztrációja sikeresen befejeződött, majd a rendszer átirányítja a kezdőlapra, ahol
bejelentkezhet.
else { $sql = "INSERT INTO cms_user (nickname, password, email, ip, regdate, regtime) VALUES('$nickname', '$ password', '$email', '$ip', '$date', '$time')" ; mysql_query( $sql ) or die (mysql_error()); print '<meta http-equiv="refresh" content="5; index.php">' ; print "<b>A(z) " . $nickname . " felhasználó regisztrációja sikerült.<br />Most már bejelentkezh et felhasználónevével és jelszavával.<br />Hamarosan átirányítjuk a kezd őoldalra..." ; }
87
} } } ?>
Bejelentkezés űrlap a következő elemekkel: felhasználónév, jelszó, jelszó megerősítése, e-
mail cím, Regisztráció gomb.
<h1>Regisztráció </h1> <form action= "register.php" method= "post" > <table> <tr> <td align= "right" > Felhasználónév: <input type= "text" size= "15" maxlength= "25" onclick= "this.value='';" onfocus= "this.select()" onblur= "this.value=!this.value?'':this.value;" name="nickname" > </td> </tr> <tr> <td align= "right" > Jelszó: <input type= "password" size= "15" maxlength= "25" onclick= "this.value='';" onfocus= "this.select()" onblur= "this.value=!this.value?'':this.value;" name="password" > </td> </tr> <tr> <td align= "right" > Jelszó meger ősítése: <input type= "password" size= "15" maxlength= "25" onclick= "this.value='';" onfocus= "this.select()" onblur= "this.value=!this.value?'':this.value;" name="confirm" > </td> </tr> <tr> <td align= "right" > E-mail cím: <input type= "text" size= "15" maxlength= "25" onclick= "this.value='';" onfocus= "this.select()" onblur= "this.value=!this.value?'':this.value;" name="email" > </td> </tr> <tr> <td align= "center" > <input type= "submit" value= "Regisztráció" name="registration" > </td> </tr> </table>
88
</form> </center>
login.php
Ez a fájl felel a tagok bejelentkezéséért.
<?php require ( 'includes/config.php' ); mysql_connect( $db_host , $db_username , $db_password ); mysql_select_db( $db );
Leellenőrzöm a felhasználó által elküldött adatokat (felhasználónév és a kódolt jelszó). Ha
az adatok helyesek és a mezők nem üresek, megtörténik a bejelentkezés, elindul a
munkamenet az adott felhasználónak. A munkamenet a kijelentkezéssel ér véget.
if ( $_SESSION[ 'logged_in' ] != true ) { if (isset( $_POST[ 'login' ])) { $nickname = $_POST[ 'nickname' ]; $password = md5( $_POST[ 'password' ]); $sql = "SELECT * FROM cms_user WHERE nickname='$nickname' AND password='$password'" ; $query = mysql_query( $sql ); if (mysql_num_rows( $query ) != NULL) { $_SESSION[ 'nickname' ] = $_POST[ 'nickname' ]; $_SESSION[ 'logged_in' ] = true ; header( "Location: " . $_SERVER[ 'PHP_SELF' ]); }
Ha valamely mezőt üresen hagyta a felhasználó, vagy rossz jelszót ad meg, értesítést kap
róla – a bejelentkezés természetesen nem történik meg.
else { if ( $nickname == NULL || $password == NULL) { print "Minden mez ő kitöltése kötelez ő!\n" ; } elseif ( $query [ 'password' ] != $password ) { print "Helytelen jelszó!\n" ; } } }
89
?>
Bejelentkezés űrlap, felhasználónév és jelszó mezővel, valamint a Bejelentkezés gombbal.
<center> <form action= " <?php print $_SERVER[ 'PHP_SELF' ]; ?>" method= "post" > <table> <tr> <td align= "center"> Felhasználónév: </td> </tr> <tr> <td> <input type= "text" name="nickname" /> </td> </tr> <tr> <td align= "center"> Jelszó: </td> </tr> <tr> <td> <input type= "password" name="password" /> </td> </tr> <tr> <td> <center> <input type ="submit" name="login" value= " Belépés " /> </center> </td> </tr> </table> </form> </center> <?php }
Ha épp van aktív bejelentkezés, a fenti űrlap helyén megjelenik a bejelentkezett
felhasználó neve, alatta egy link, mellyel kijelentkezhet. Ha erre kattint, megszakítja a
hozzá tartozó munkamenetét, onnantól csak olvashatja a meglévő tartalmakat.
else { print "<center>Bejelentkezve: " . $_SESSION[ 'nickname' ] . "<br />" ; print "<br />" ; print "<a href=\"../logout.php\">[ Kijelentkezés ]</a></c enter>" ; } ?>
90
logout.php
Ez a fájl akkor kerül meghívásra, amikor a bejelentkezett felhasználó kilép a rendszerből.
Az ekkor lefutó szkript lezárja a folyamatban lévő munkameneteket, majd átirányítja a
kijelentkezett tagot a kezdőlapra.
<?php session_start(); unset ( $_SESSION[ 'logged_in' ]); unset ( $_SESSION[ 'nick' ]); header( 'Location: index.php' ); ?>
install.php
Ez a fájl akkor kerül lefutásra, ha az adatbázishoz történő csatlakozás nem sikerül:
helytelenek a csatlakozási adatok vagy nem létezik az adatbázis, illetve az abban lévő
táblák.
Az install.php kódjának lényegi része a következő:
<p>A folytatáshoz kattintson a Telepítés gombra gombra ! </b> <table id= "anim_button" width= 0 cellpadding= 0 cellspacing= 0 border= 0> <tr> <td style= "padding-right: 0px" > <a href= "install/step1.php" style= "background-image: url(style/install.png); width: 175px; height: 50px; display: block; "><br/> </a> </td> </tr> </table>
Ez a kód megjelenít egy gombot, melyre kattintva új oldal töltődik be (install/step1.php),
mely a telepítési folyamat első lépése lesz.
step1.php
A fájl kódja egy űrlapot kreál, melynek segítségével a config.php fájlba mentheti a
felhasználó a MySQL csatlakozási adatokat (hoszt, felhasználónév, jelszó, adatbázis neve).
91
<table width= "400" border= "0" > <tr> <td align= "center" > <form action= "step2.php" method= "post" name="install" > <b> MySQL host: <font color="#FF0000"> * </font></b> <br /> <input type= "text" size= "50" name="host" onclick= "this.value='';" onfocus="this.select()" onblur= "this.value=!this.value?'localhost':this.value;" value= "localhost" style= "margin-left: 10" /> <br /><br /> <b> MySQL felhasználónév: <font color="#FF0000">*</font></b><br /> <input type= "text" size= "50" name="username" onclick= "this.value='';" onfocus="this.select()" onblur= "this.value=!this.value?'root':this.value;" value= "root" style= "margin-left: 10" /> <br /><br /> <b> MySQL jelszó: </b> <br /> <input type= "password" size= "50" name="password" onclick= "this.value='';" onfocus= "this.select()" onblur= "this.value=!this.value?'':this.value;" value= "" style= "margin-left: 10" /> <br /><br /> <input value= " Rögzítés " type= "submit" > </form> </td> </tr> </table>
Ha helyesen töltöttük ki az űrlap mezőit, betöltődik a következő szkript, illetve fájl.
step2.php
Első lépésként az előző oldalon kitöltött űrlapon megadott adatokat beleírja a config.php-
be, hogy később létrejöhessen a MySQL kapcsolat. Az esetleges sikertelenségről
tájékoztatást ír ki a képernyőre.
<?php include ( '../includes/class.php' );
92
if ( isset ( $_POST[ 'host' ]) && isset ( $_POST[ 'username' ]) && isset ( $_POST[ 'password' ])) { $file = "../includes/config.php" ; $fp = fopen( "../includes/config.php" , "w" ); fwrite( $fp , "" ); fclose( $fp ); $tofile = "<?php\n\t \$db_host = \"" . $_POST[ 'host' ] . "\";\n\t \$db_username = \"" . $_POST[ 'username' ] . "\";\n\t \$db_password = \"" . $_POST[ 'password' ] . "\";\n\t \$db = \"nyfcms\";\n?>" ; $fp = fopen( $file , "a" ); fwrite( $fp , $tofile ); fclose( $fp ); print "Adatbázis beállítások mentése sikeres." ; } else { print "Adatbázis beállítások mentése sikertelen." ; } ?>
A szkript második feladata az adatbázis, valamint a táblák létrehozása.
<?php
UTF-8 kódolás beállítása:
mysql_query( 'SET NAMES utf8' ); mysql_query( 'SET CHARACTER_SET utf8' );
MySQL kapcsolódás megkísérlése:
$con = mysql_connect( "localhost" , "root" , "password" ); if (! $con ) { die ( '<b><i>Csatlakozás sikertelen!</i></b><br />' . mysql_error()); }
Adatbázis létrehozása (nyfcms):
if (mysql_query( "CREATE DATABASE IF NOT EXISTS nyfcms" , $con )) { print "<b><i>Az adatbázis létrehozása sikerült.</i></b><b r />" ; } else {
93
print "<b><i>Az adatbázis létrehozása sikertelen.</i></b> <br />" . mysql_error(); } mysql_select_db( "nyfcms" , $con );
A cms_content tábla létrehozása az alábbi mezőkkel:
� id – Tartalom sorszáma (automatikus növeléssel)
� title – Tartalom címe (maximum 100 karakter hosszú lehet)
� body – Tartalom törzse
� author – Szerző neve (maximum 50 karakter hosszú lehet)
� date – Tartalom létrehozásának dátuma
$sql = "CREATE TABLE IF NOT EXISTS cms_content ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), title VARCHAR(100) NOT NULL, body LONGTEXT NOT NULL, author VARCHAR(50) NOT NULL, date DATE NOT NULL )" ; mysql_query( $sql , $con ); mysql_close( $con ); ?> <?php $con = mysql_connect( "localhost" , "root" , "password" ); if (! $con ) { die ( '<b><i>MySQL üzenet: Csatlakozás sikertelen!</i></b><br />' . mysql_error()); } else { print "<b><i>Az adatbázis táblák létrehozása sikerült.</i></b><br />" ; }
A cms_user tábla létrehozása az alábbi mezőkkel:
� userID – Felhasználó sorszáma (automatikus növeléssel)
� nickname – Felhasználónév (maximum 100 karakter hosszú lehet)
� password – Jelszó (maximum 30 karakter hosszú lehet)
� email – Felhasználó e-mail címe (maximum 75 karakter hosszú lehet)
� ip – Annak az eszköznek az IP címe, amelyről a regisztráció érkezik
94
� regdate – Regisztráció dátuma
� regtime – Regisztráció ideje
$sql = "DROP TABLE IF EXISTS cms_user" ; mysql_select_db( "nyfcms" , $con ); $sql = "CREATE TABLE cms_user ( userID MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY K EY, nickname VARCHAR(100) NOT NULL, password VARCHAR(30) NOT NULL, email VARCHAR(75) NOT NULL, ip VARCHAR(20) NOT NULL, regdate DATE NOT NULL, regtime TIME NOT NULL )" ; mysql_query( $sql , $con ); mysql_close( $con ); ?>
Ha minden rendben zajlik le, következik a step3.php futtatása.
step3.php
Ennek a fájlnak csupán a tájékoztatás a lényege: közli a felhasználóval, hogy a telepítés a
végére ért, megkezdheti a CMS használatát. A Befejezés gombra kattintva a főoldalra
(index.php) kerül a felhasználó.
<table id= "anim_button" width= 0 cellpadding= 0 cellspacing= 0 border= 0> <tr> <td style= "padding-right: 0px" > <a href= "../index.php" style= "background-image: url(../style/finish.png); width: 175px; height: 50px; display: block; "><br/> </a> </td> </tr> </table>
95
about.php
Az about.php segítségével a tagok felvehetik a kapcsolatot a fejlesztővel. Egy e-mail küldő
formról van szó, ahol meg kell adni a nevet, az e-mail címet, és az üzenet szövegét.
<h1>Kapcsolat </h1> <p>Ha bármilyen észrevétele van az oldallal kapcsolatb an, írja meg nekem: </p> <form action= "mailto:[email protected]" method= "post" > <div class="form_settings"> <p><span> Név: </span> <input class= "contact" type= "text" name="your_name" value= "" /> </p> <p><span> E-mail cím: </span> <input class= "contact" type= "text" name="your_email" value= "" /> </p> <p><span> Üzenet: </span> <textarea class= "contact textarea" rows= "8" cols= "50" name="your_enquiry" ></textarea> </p> <p style="padding-top: 15px"><span> </span> <input class= "submit" type= "submit" name="contact_submitted" value= "Küldés" /> </p> </div> </form>
get-content.php
Ennek a fájlnak a tartalmát a főoldalon hívom meg, abban az esetben, ha nincs aktív
bejelentkezés – ez a fájl segít abban, hogy az oldalra látogató nem regisztrált személyek
láthassák a tartalmakat.
<?php if ( isset ( $_GET[ 'id' ])) { $obj -> get_content ( $_GET[ 'id' ]); } else { $obj -> get_content (); } ?>
add-content.php
Ez a fájl akkor nyílik meg és töltődik be, amikor a felhasználó új tartalmat akar felvinni, és
a Tartalom hozzáadása gombra kattint a főmenüben. Az oldal egy formot tartalmaz,
96
amivel rögzíthető új cikk. Meg kell adni a címet, a törzsöt, majd a Hozzáadás gombbal
menthető az új bejegyzés. Ekkor kerül meghívásra a class.php-ből az add_content
függvény.
<h1><b><i> Tartalom hozzáadása </i></b></h1> <form method= "post" action= "index.php" > <input type= "hidden" name="add" value= "true" /> <div> <label for= "title" >Cím: </label> <input type= "text" name="title" id= "title" /> </div> <br /> <div> <label for= "body" >Törzs: </label> <textarea name= "body" id= "body" rows= "8" cols= "40" ></textarea> </div> <br /> <input type= "submit" name= "submit" value= "Hozzáadás" /> </p> </form>
manage-content.php
Ha a tartalmak melletti opciók közül a törlést választja a felhasználó, meghívásra kerül a
delete_content függvény, ha viszont a szerkesztés mellett dönt, a manage_content
függvény lesz beélesítve.
<h2><b><i> Meglév ő tartalmak listája </i></b></h2> <?php if ( $_GET[ 'delete' ]) { $obj -> delete_content ( $_GET[ 'delete' ]); } $obj -> manage_content (); ?>
97
update-content.php
Ebben a fájlban az update_content_form hívódik meg, mely ugyanúgy néz ki, mint a
hozzáadáskor látott űrlap. A különbség csupán annyi, hogy az egyes inputokban
megjelennek a kiolvasott tartalmak, amiket módosítani szeretne a felhasználó – azaz az
adott bejegyzés címe és törzse.
<?php $obj -> update_content_form ( $_GET[ 'id' ]); ?>
Ha a form kitöltése, vagyis a módosítás befejeződött, és az adatok elküldésre kerültek, az
update_content függvény végzi el a módosítások adatbázisban történő tárolását.
lastmember.php
Ezzel a modullal megjeleníthetjük az utolsó öt regisztrált nevét csökkenő sorrendben
(mindig a legfrissebb regisztrált neve kerül felülre).
<h2>Utolsó 5 tag </h2> <?php $sql = "SELECT nickname, regdate FROM cms_user ORDER BY re gdate DESC LIMIT 5" ; $res = mysql_query( $sql ) or die (mysql_error()); if (mysql_num_rows( $res ) != 0) { while ( $row = mysql_fetch_assoc( $res )) { print "<b><i>" . $row [ 'nickname' ] . "</i></b>" ; } } ?>
links.php
Ez a modul hasznos linkeket jelenít meg az oldalsávon. A linkekre kattintva a hivatkozott
oldal új böngészőablakban nyílik meg.
<h3>Hasznos linkek </h3> <ul> <li> <a href= "http://www.nyf.hu/" target= "_blank"> Nyíregyhá Főiskola </a> </li> <li> <a href= "http://drupal.hu/" target= "_blank"> Drupal Magyarország </a></li>
98
<li> <a href= "http://www.joomla.org.hu/" target= "_blank"> Joomla! Magyarország </a> </li> </ul>
registration.php
Dizájnos gomb a regisztrációs form megnyitásához.
<center> <table id= "anim_button" width= 0 cellpadding= 0 cellspacing= 0 border= 0> <tr> <td style= "padding-right: 0px" > <a href= "regtest.php" style="background-image: url(style/registration.png); width: 175px; height: 50px; display: block;" > <br/> </a> </td> </tr> </table> </center>
search.php
Egy egyszerű keresőt helyez el a webhelyen.
<h3>Keresés </h3> <form id= "search_form" action= "#" method= "post" > <p> <input class= "search" type= "text" name="search_field" onclick= "this.value='';" onfocus= "this.select()" onblur= "this.value=!this.value?'Kulcsszavak...':this.value ;" value= "Kulcsszavak..." /> <input type= "button" name="search" value= " OK " /> </p> </form>
99
Összegzés
Az internet jó ideje az internet a mindennapi élet része, már nem számít különlegességnek,
ha valaki otthonában rendelkezik aktív előfizetéssel. Ennek köszönhetően a világhálón
való aktív részvétel is egyre jobban előtérbe kerül, így már nem csak használjuk, hanem
tartalmakkal aktívan bővítjük az internetet.
Mindezek fényében ma már természetes dolog, hogy a legtöbb komoly vállalat rendelkezik
saját céges honlappal, vagy az, hogy számos hírportál vagy közösségi oldal létezik.
Az általam fejlesztett portál célja, hogy egy vagy több felhasználó szerkeszthesse a
webhely tartalmát különösebb programozási tudás nélkül is. Ez úgy valósulhat meg, hogy
minden egyes funkcionalitáshoz külön kezelőfelületet kell létrehozni, hogy az „admin
szintű” felhasználók csupán néhány kattintással képesek legyenek beállításokat
végrehajtani, tartalmakat létrehozni. Talán ez az egyik oka, hogy a különféle CMS-ek
egyre nagyobb népszerűségre tesznek szert.
A Drupal és Joomla! rendszerek jövője egyértelműen hosszú távú, stabil, fejlődésük
dinamikus, népszerűségük egyre növekvő, és töretlen. Épp ezért nem elegendő csak
használni őket, hanem – az informatika fejlődésével lépést tartva – folyamatosan
fejleszteni kell őket, hogy minél több embert csábítson használatukra.
100
Felhasznált irodalom
1. Matt Zandstra: Tanuljuk meg a PHP5 használatát 24 óra alatt – Kiskapu Kiadó,
2004.
2. Jesse Feiler: Tanuljuk meg a Drupal használatát 24 óra alatt – Kiskapu Kiadó,
2011.
3. Peter Moulding: PHP haladóknak fekete könyv – Perfact, 2002.
4. Nagy Gusztáv: Webes szabványok v0.1 – Budapest, 2010.
5. Nagy Gusztáv: Drupal 6 alapismeretek – Ad Librium Kft., Budapest, 2010.
6. Nagy Gusztáv: Web programozás I. – Budapest, 2008.
7. Nagy Gusztáv: Webes tartalomkezelő rendszerek 1.0 – Budapest, 2009.
8. Szilágyi György: Webes alkalmazásfejlesztés a Drupal tartalomkezelő rendszer
felhasználásával – Debrecen, 2007.
9. Kerepesi László: Saját fejlesztésű CMS létrehozása – Nyíregyháza, 2009.
10. Lóránt Miklós: Közösségi portálok és a dinamikus web kapcsolata – Debrecen,
2007.
11. Karácsony Erika: A CMS rendszerek magyarországi jövője, az IKreator
pozicionálása és értékesítési lehetőségei – Budapest, 2004.
12. Markert László András: Termék alapú bevételmegosztásos elszámolórendszer
fejlesztése – Budapest, 2007.
13. Modovics Mihály: A WordPress tartalomkezelő rendszer bemutatása – Pécs, 2007.
101
14. 2004 második magyarországi PHP konferencia – Budapest, 2004.
15. Dévai István: Drupal a CMS! – 2007.
16. Lovászi Nándor Zsolt: A Joomla! tartalomkezelő rendszer bemutatása
17. Fábián Zoltán: CMS rendszerek használata az iskolai weboldalak kialakításában
18. Szabó Bálint: A Drupal CMS rendszer felépítése
19. PC World: Dinamikus weblapot Joomlával 1-3. – 2008.
(http://pcworld.hu/dinamikus-weblapot-joomlaval-1-20080919.html)
20. drupal.hu | A Drupal tartalomkezelő magyar honlapja (http://drupal.hu)
21. Magyar Joomla! Felhasználók Nemzetközi Egyesülete (http://www.joomla.org.hu)
22. Drupal - Open Source CMS | drupal.org (http://drupal.org)
23. Joomla! - the dynamic portal engine and content management system
(http://www.joomla.org)
24. Wikipédia, a szabad enciklopédia (http://hu.wikipedia.org)