Content extract
Miskolci Egyetem Gépészmérnöki és Informatikai Kar Általános Informatikai Tanszék Az ózdi Futsal teremfoci csapat weboldalának elkészítése Drupal alapokon Szakdolgozat Készítette: Név: Szabó Ádám József Neptun kód: P83SML Szak: Mérnök Informatikus Bsc Korszerű WEB technológiák szakirány Tartalomjegyzék 1. Bevezető 1 2. A tartalomkezelő rendszerekről általában 3 2.1 Mi is az a CMS? 3 2.2 A CMS rendszerek jellemzői, előnyei [3][4] 4 2.3 A CMS rendszerek felépítése, működése 5 2.4 A CMS rendszerek története, kialakulásának előzményei [5] 8 2.5 Miért érdemes tartalomkezelő rendszert alkalmazni? 9 2.51 Leggyakoribb alkalmazási területek: 9 2.7 A legnépszerűbb tartalomkezelő rendszerek rövid ismertetése [8] 11 2.71 Wordpress 12 2.72 Joomla! 12 2.73 Drupal 13 3. Miért a Futsal? 14 3.1 Hogy történt a megkeresés 14 3.2 Elvárások a honlappal szemben 14 3.3 Amiért a Drupal CMS rendszerre esett a választásom 15
4. A Drupal tartalomkezelő részletes ismertetése 16 4.1 Egy kis történelem [9][10][11] 16 4.2 A Drupal bemutatása 17 4.3 Miért a Drupal? [14] 19 4.4 Drupal, Joomla, Wordpress összehasonlítás [15][16][17] 20 4.5 A Drupal szerkezeti felépítése 23 4.6 A Drupal 7 legfőbb újdonságai: [18] 25 4.7 Drupal 7 szerver oldali rendszerkövetelmények [19] 25 4.72 Webszerver 25 4.73 Adatbázis szerver 26 4.74 PHP 27 5. A webhely rendszertervének kialakítása 28 5.1 Az oldal megtervezése 28 5.2 Fejlesztési fázisok megtervezése 29 6. Webhely építés 1: szükséges webszerver környezet előkészítése 30 6.1 Drupal 7 telepítés Windows operációs rendszerre 30 6.11 Az XAMPP telepítő csomag használata 30 6.12 A webszerver konfigurálása 30 6.2 Drupal 7 telepítés Linux operációs rendszerre (ajánlott) 32 6.21 Az Oracle VM Virtualbox használata 33 6.22 Webszerver előkészítése 33 6.23 MySQL szerver előkészítése 34 6.24 Webszerver
konfiguráció 35 7. Webhely építés 2: A Drupal előkészítése, szükséges modulok beállítása 37 7.1 Magyar nyelvi csomag telepítése 37 7.2 WYSIWYG szövegszerkesztő telepítése és beállítása 37 7.3 Keresőoptimalizálás, tiszta webcímek használata 39 7.4 Egyéb alap modulok 39 8. Webhely építés 3: A webhely elkészítése 40 8.1 Tartalmak feltöltése, a szükséges menüpontok létrehozása 40 8.2 Blokkok létrehozása 41 8.21 Támogatók blokk létrehozása 41 8.22 Szavazás blokk létrehozása 41 8.3 Felhasználó menedzsment 42 8.4 Az oldal szükséges funkcióinak megvalósítása 44 8.41 Fotógaléria elkészítése, képnézegető funkcióval 44 8.42 Az edző blogjának létrehozása 48 8.43 Automatikusan frissülő hírek létrehozása, RSS hírcsatorna segítségével 48 8.44 Tabella kialakítása 50 8.45 Fórum 51 8.5 Megjelenés (sminkek) 51 8.6 PHP kód futtatása Drupal alatt 52 9. A kész oldal publikálása 53 9.1 Drupal
rendszer költöztetése 53 9.11 Az oldal lementése 53 9.12 Az oldal visszaállítása egy másik tárhelyre 53 9.2 Domain regisztráció 53 ÖSSZEGZÉS . 54 SUMMARY . 55 Irodalomjegyzék . 56 1. Bevezető Mindennapi életünkben az Internet egyre meghatározóbb szerepet játszik. Az Interneten tájékozódhatunk a nap fontos híreiről, meghallgathatjuk kedvenc zenéinket, utánanézhetünk termékeknek és meg is rendelhetjük azokat (online kereskedelem), beszélgethetünk családtagjainkkal, ismerőseinkkel online (chat, fórum), információt szerezhetünk munkánkhoz, hobbinkhoz; lényegében szinte bármilyen információhoz hozzájuthatunk, amire szükségünk lehet. Ma már minden komolyabb cégnek, áruháznak, kis- és nagyvállalatnak van saját honlapja, ezáltal még jobban népszerűsíthetik magukat a cégek, reklámozhatják szolgáltatásaikat, valamint közvetlenül az Interneten is értékesíthetik termékeiket. Napjainkban egyre nagyobb
teret hódítanak a közösségi oldalak, a webáruházak, az online hírportálok is. Ezek az oldalak egyfolytában változnak, tartalmuk folyamatosan frissül, állandó karbantartást igényelnek, Web programozók sokasága dolgozik 24 órában azon, hogy az adott oldal mindig naprakész legyen, ami egy korszerű weblapnak elengedhetetlen feltétele. Egyszerű weblapot szinte mindenki fejleszthet HTML alapokon, akár CSS stílusformázással különösebb programozói tapasztalat nélkül, de ezen oldalak kinézete, dizájnja meg se közelíti a mai korszerű weblapok megjelenését. Bár léteznek különféle HTML szerkesztő programok, melyek lényegesen megkönnyítik az egyes elemek elhelyezését (pl. Microsoft FrontPage), de önmagában a HTML nyelv nem képes dinamikus tartalmak kezelésére, csak statikus weboldalak készíthetők vele. Egy HTML oldalon bármilyen változtatás (menük átszerkesztése, képek áthelyezése, stb.) során manuálisan kell a
forráskódot átszerkeszteni, ami eléggé munka- és időigényes, valamint nagyobb információtömeget hordozó weblap kialakítására se nagyon alkalmas. Manapság már a statikus oldalak elavultak, sokkal inkább közkedveltek, „trendi” mind a megjelenés terén, mind az interaktivitás folytán (folyamatosan frissülő tartalom, chat, fórum, stb.) a dinamikus honlapok Ezen oldalak „dinamizmusa” abban rejlik, hogy a forráskódot nem kell kézzel átszerkeszteni, a kód előállítását maga a honlap-motor végzi. Az ilyen típusú fejlesztésre a legalkalmasabb programozási nyelvek közé tartozik a PHP és a Java, de önmagukban ezek sem képesek a folyamatosan változó tartalom kezelésére – szükség volt egy külső adatbázisszerverre is az adatok tárolásához. 1 Az ilyen típusú weboldalak egyszerűbb kialakításának és üzemeltetésének céljából jöttek létre a webes tartalomkezelő rendszerek (CMS). Szakdolgozatom célja az ilyen
tartalomkezelő rendszerek rövid ismertetése, összevetése; és egy konkrét rendszer, a Drupal CMS részletesebb bemutatása. Felkérést kaptam egy szervezettől az ózdi Futsal teremfoci csapat weboldalának megtervezésére, létrehozására, ami mind megjelenésben, mind tartalmi összetevőiben kielégíti egy mai korszerű weblap igényeit. Elsődleges elvárások a kész oldallal szemben: modern design folyamatosan frissülő tartalom (hírek) fórum fotógaléria tabella (az aktuális pontszámok és helyezések naprakész állapotban) Az említett tartalmi követelmények adták az ötletet a CMS rendszerek alaposabb megismerésére, mivel a fent említett elvárások leprogramozása mind PHP, mind Java programozási nyelven hosszadalmas munka lenne, azonban mindezt egy tartalomkezelő rendszer segítségével lényegesen egyszerűbb a megvalósítani. 2 2. A tartalomkezelő rendszerekről általában 2.1 Mi is az a CMS? "A Webes CMS
rendszerek kifejezés a web technológiát kiszolgáló ún. tartalomkezelő rendszereket takarja. A tartalomkezelő rendszer (TKR vagy angol rövidítéssel CMS – Content Management System) egy marketing kifejezés azokra a szoftverekre, amelyeket több személy együttműködésével készülő munkák koordinálására dolgoztak ki. Az oldalakat, sablonok segítségével lehet létrehozni. A sablonok meghatározzák az oldal elrendezését, hol jelenik meg az oldalak közötti tallózáshoz szükséges és automatikusan generált menüsor és megadja azt is, hogy milyen építőelemek mely területre helyezhetőek el. [1]" A CMS rendszerek funkciói: biztosítja, hogy egyszerre több felhasználó kezelheti, szerkesztheti az oldalt adattárolás és adatelérés megkönnyítése dinamikus tartalomkezelés felhasználók közti kommunikáció jogosultság kezelés: adott szerepkör határozza meg, hogy az adott felhasználónak mihez van
hozzáférése, milyen adatokat láthat, módosíthat a CMS oldalak bárhonnan elérhetők, módosíthatók, szerkeszthetők (természetesen megfelelő jogosultság ellenőrzés után) Tartalomkezelő rendszer változatok (speciális területre kialakított CMS-ek): [2] vállalati szintű tartalomkezelő rendszer (ECMS) webtartalom-kezelő rendszer (WCMS) mobil tartalomkezelő rendszer (MCMS) komponens tartalomkezelő rendszer (CCMS) 3 2.2 A CMS rendszerek jellemzői, előnyei [3][4] A tartalomkezelő rendszerek elsősorban modern, komplex weboldalak létrehozását teszik lehetővé olyan személyek számára is, akiknek nincs túl nagy programozási tapasztalatuk, így egy egyszerűbb weblapot könnyen és gyorsan el tudnak készíteni. Nagy előnye a CMS rendszereknek, hogy nem kell kézzel programozni, a kódot maga a rendszer generálja, csak esetleges módosításnál, javításnál kell csak „belenyúlni” a forráskódba.
Moduláris felépítésű, ami azt jelenti, hogy az egész rendszert külön beépülő modulok alkotják, amiknek a segítségével viszonylag könnyen és gyorsan felépíthetünk egy weblapot. Ilyen beépített modul pl a chat funkció is, aminek személyes tapasztalatom alapján a leprogramozása PHP nyelven egy külön adatbázis kezelő rendszer beintegrálásával eléggé időigényes és sok munkát igényel, hogy megfelelően működjön (szűrők, eseményfigyelők, felület, stb.), míg egy ilyen modul felhasználásával készen kapjuk a használni kívánt funkciót, kis szerencsével kevés módosítást kell elvégeznünk a megfelelő működéséhez. Mi magunk is hozhatunk létre saját modulokat speciális célokra bár ehhez már programozási tapasztalat is szükséges - ha még nem létezne (a legnépszerűbb CMS rendszerekhez - pl. Joomla, Drupal, Wordpress – rengeteg modult tölthetünk le az Internetről), ezáltal a lehetőségek tárháza határtalan,
tulajdonképpen bármit megvalósíthatunk, amire szükségünk lehet. Különféle előre elkészített sablonok, (vagy más néven template) is léteznek, amik meghatározzák az oldal kinézetét, elrendezését, nem kell kézzel egyenként megadni az egyes menüpontok, képek, szöveg pontos helyét, a sablon ezt mind elvégzi helyettünk. Természetesen ezek a sablonok is testre szabhatóak a személyes igényeinkhez. A tartalomkezelő rendszerek fő jellemzője, hogy maga a tartalom elkülönül a kinézettől, az adatok egy külön adatbázisban vannak tárolva. Ezáltal bármilyen módosítás, új adatok felvitele könnyűszerrel megoldható. Az oldal megjelenése teljesen megváltozatható, új sablon felhasználásával könnyedén módosítható, anélkül, hogy a tartalmat frissíteni kellene. Az új tartalmak feltöltéséhez, a régiek módosításához, sőt maga az oldal alapvető karbantartási műveleteihez nem szükséges programozói segítség, megteheti maga a
felhasználó is, az elkészült weblap minimális webfejlesztői közreműködést igényel. Kisebb átalakításnál, tartalom feltöltésnél még az oldal működését sem kell megszakítani. 4 A CMS rendszerek egyik legnagyobb előnye a dinamizmus: megfelelő felhasználó ellenőrzés és jogosultság validáció után a tartalmat bárhonnan frissíthetjük, adminisztrációs munkákat végezhetünk el, kiegészítőket telepíthetünk fel, sőt akár az egész oldalt átalakíthatjuk a webes felületen keresztül, távol a webszerver fizikai helyétől. Másik nagy előnye a tartalomkezelő rendszereknek a multiuser jellege: az egyes felhasználóknak hozzáférési jogosultságokat oszthatunk ki, és megfelelő jogosultság mellett akár egyszerre többen is szerkeszthetik az oldalt. Ugyanakkor a tartalomkezelő rendszereknek van egy nagy hátránya is: mivel a CMS működésénél fogva nagy mennyiségű adatot (tartalmat, fájlt, kódot) tartalmaz, ezért az oldal
betöltődése lassabb lehet, mint más oldalaknál. Viszont ez a probléma megfelelő optimalizálással és egy jól konfigurált szerverrel könnyen orvosolható. Munkám során akadtam rá az Interneten egy nagyon hasznos alkalmazásra, a neve Web Page Analyzer, amellyel egy adott weblap betöltődésének idejét tesztelhetjük, ráadásul különböző Internetkapcsolatok sebességét figyelembe véve. Külön extraként emelném ki, hogy az alkalmazás számolja az adott lap összetevőinek (HTML, CSS, JavaScript, Képek) a számát, és méretét is. Az alkalmazás az alábbi linken érhető el: http://websiteoptimization.com/services/analyze/ 2.3 A CMS rendszerek felépítése, működése A legtöbb CMS rendszerre általában igaz a platform függetlenség, létezik disztribúció mind Windows, mind Linux, mind MacOS alapú operációs rendszerekre. A tartalomkezelő rendszereket három rétegre tagoljuk: tartalom réteg (data layer), alkalmazás réteg
(application layer) és megjelenés réteg (presentation layer). A CMS rendszerek szerkezetét és rétegeit jól szemlélteti az 1. ábra Általában a CMS három komponensből épül fel, tehát működéséhez három fontos összetevő szükséges az adott operációs rendszeren, melyek a CMS egyes részeinek a feldolgozását végzik: 5 PHP parancsértelmező-fordító Adatbázis szerver (tartalomkezelő függő, általában MySQL) Szükséges még egy ún. middleware alkalmazás (köztes szoftver), ami a CMS és a szerveralkalmazás réteg között helyezkedik el. Ez az alkalmazás meghívhat egy servlet osztályt, vagy servlet container-t; de általában ez egy webszerver szokott lenni (legelterjedtebb az Apache webszerver). 1. ábra: A CMS rendszerek strukturális felépítése Ezt a három komponenst szokták AMP-nak is rövidíteni (Apache-MySQL-PHP); egy csomagban le is tölthető, feltelepítése után kész is a webszerverünk. Mivel egy csomagban vannak,
az összetevők a kompatibilitással nem lehet gond (egyenként történő telepítésnél lehetnek verzió-ütközések). Windows operációs rendszerre érdemes az XAMPP csomagot választani (a WAMP csomaggal sok a probléma, rengeteg fórum foglalkozik e hibák felvetésével, javításával), gond nélkül telepíti és profin konfigurálja magát, emellett tökéletesen működik 64 bites Windows 7 rendszeren is. 6 A 2. ábrán jól látható a tartalomkezelő rendszerek elvi működése: Maga a weboldal FTP kapcsolaton kapcsolódik tartalomkezelő magjához, magához a CMS alkalmazáshoz, ami egy független szerveren fut. Különféle jogosultságok adhatók ki, melyek korlátozzák az egyes felhasználók, szerkesztők hozzáférési területét: Az oldal tervezője és fejlesztője (adminisztrátor) teljes jogosultsággal rendelkezik az oldal felett; ő felelős az oldal megfelelő működéséért, karbantartásáért, kiegészítők telepítéséért. Korlátozott
lehetőségei vannak a tartalmat feltöltő felhasználóknak. A tartalomszerkesztők és az azt jóváhagyók mérsékelt jogokkal rendelkeznek; engedélyezhetik az egyes tartalmak közzétételét az oldalon, módosíthatják azt, vagy akár le is törölhetik. Lényegében a tartalomszerkesztők felelősek azért, hogy a weblap mindig naprakész legyen; új tartalmak hozzáadása, designtervezés, elrendezés stb. Könnyűszerrel üzemeltethetik az elkészült weboldalt akár az adminisztrátor közreműködése nélkül is (az esetleges frissítéseket, hibajavításokat, karbantartási feladatokat természetesen a fejlesztő végzi), amennyiben a tervező megfelelően elkészített dokumentációt mellékel az üzemeltetőknek. 2. ábra: A CMS rendszerek működése http://www.keylinesnet/includes/images/cms workjpg 7 2.4 A CMS rendszerek története, kialakulásának előzményei [5] A tartalomkezelő rendszerek létrejöttét az ún. fórum és blog motorok előzték meg
Tulajdonképpen ezek a fórum motorok kezdetleges CMS-ek, egyetlen fő funkcióra irányulva – a fórumra. Néhány fórum motor, a teljesség igénye nélkül: SMF (Simple Machines Forum): felépítése, megjelenése nem a legmodernebb, a szövegszerkesztő része viszont elég jóra sikerült, valamint lehetőség van több CMS rendszerrel összekötni. phpBB: megváltoztatott hozzászólás szerkezet, bal oldalon a hozzászólás, jobb oldalon a felhasználó mini profilja található. Szép felület, egyszerű használat, magyar verzió is van már. Hátrányai: kevés jól működő kiegészítést, MOD-ot lehet hozzá találni; a korábbi verziókban elég sok probléma volt a biztonsági résekkel, egy vírus egyszer közel fél millió phpBB fórumot tett tönkre. IP Board (Invision Power Board): talán az egyik legelterjedtebb fórum motor, rengeteg pozitív visszajelzéssel, könnyedén megbirkózik nagy forgalmú fórumokkal is, valamint sok kis extra, de frappáns
funkciója van (pl. felugró ablak új üzenet érkezésekor) Hátránya: csak a korábbi verziók ingyenesek, az újabb verziók fizetősek; a motorja jól megírt, de a kinézeten lenne mit csiszolni. Látható, hogy ezeknek a fórum motoroknak mindnek van valami hiányossága, beállítások, konfigurálásuk eléggé körülményes volt. Jelenleg a nagyobb tartalomkezelő rendszereknek már alap „tartozéka” a fórum modul, és ezeket már lényegesen egyszerűbb használni, saját igényeinknek megfelelően alakítani. Kezdetben egyébként a Wordpress is csak egy blog motor volt, a folyamatos fejlesztések során nőtte ki magát tartalomkezelő rendszerré. Ma már viszont az egyike a legjobb CMS rendszereknek, a Google Trends népszerűségi listáján az első helyet foglalja el. 8 2.5 Miért érdemes tartalomkezelő rendszert alkalmazni? Mint korábban is említettem, a CMS rendszerek egyik nagy előnye, hogy lényegesen egyszerűbb komplex weboldalak létrehozása,
mélyreható programozási ismeretek nélkül. Legnagyobb előnye a tartalomkezelő rendszereknek, hogy a tartalom elkülönül a megjelenéstől - az oldal megjelenését könnyűszerrel megváltoztathatjuk, a tartalomtól teljesen függetlenül. Megjelenés, design szempontjából is kiemelkedik egy ilyen rendszerrel készített weboldal a "hagyományos" weblapok közül. Ezen felül a másik legnagyobb előnye a dinamizmus; akkor érdemes a leginkább használni, ha az oldalnak folyamatosan naprakésznek kell lennie (frissítések, új hírek), nagy mennyiségű adathalmaz megosztása esetén, valamint ha egyszerre több felhasználó is szerkeszti, új tartalommal bővíti az oldalt. Lényeges szempont, ha az oldalon aktív kommunikáció is folyik (fórum, chat). 2.51 Leggyakoribb alkalmazási területek: webáruházak blogok fórumok közösségi oldalak céges honlapok kormányzati, hivatali weblapok internetes magazinok személyes
honlapok internetes hírújságok oktatási oldalak Bár ezek a leggyakoribb felhasználási területek, manapság egyre több weblap készül valamilyen CMS rendszerrel, könnyű kezelhetősége, stabil működése, és megnyerő, modern megjelenése miatt. 9 2.6 Hogyan válasszunk CMS-t? [6][7] Manapság számos CMS rendszer van jelen a világhálón, de ez nem azt jelenti, hogy mindegyik megfelel a mi elvárásainknak. A számunkra legelőnyösebb tartalomkezelő rendszer kiválasztásánál fontos figyelembe vehető szempont, hogy milyen licenc-szel rendelkezik az adott CMS. Léteznek nyílt forráskódú (free source), és zárt forráskódú (proprietary) változatok. A nyílt forráskód egy másik elnevezése a GNU GPL (General Public Licenc, Általános Publikálási Licensz). A GNU GPL alatt álló szoftverek nyílt forráskódúak, bárki szabadon letöltheti, terjesztheti, sőt módosíthatja is azokat, de a módosított verziókra is érvényesek a GPL
licensz szabályai. Fontos szempont, hogy a használni kívánt rendszert ki tudjuk próbálni, hogy valóban megfelelő-e az igényeinknek. A nyílt forráskódú rendszerek nagy előnye, hogy a legtöbb online is kipróbálható, létezik is egy ilyen oldal, ahol a szabadon kipróbálható CMS-ek rendszerezve össze vannak gyűjtve (http://www.opensourcecmscom/), akár telepítés nélkül is kipróbálhatunk demó verziókat, így könnyen kiválaszthatjuk a számunkra legmegfelelőbb CMS-t. A nyílt forráskódú CMS rendszerek legnagyobb erőssége, hogy hatalmas fejlesztő táborral rendelkeznek, ezáltal folyamatosan frissítik, javítják az esetleges hibákat, és sok-sok kiegészítést hoznak létre, és teszik közzé nyilvánosan; a közösség által folyamatosan fejlődik. Ennek ugyanakkor hátránya is lehet, mivel bárki szabadon fejlesztheti és terjesztheti, ebből eredendően előfordulhat, hogy egy letöltött kiegészítés nem megfelelően működik, esetleg
hibás, így nekünk kell „kézzel belenyúlni” a forráskódba, és magunknak kijavítani azt. A másik fontos előny, a zárt forráskódú CMS-ekkel szemben, hogy pl. a Joomla és a Drupal is hatalmas magyar rajongói táborral rendelkezik, így egy adott problémára könnyen támogatást kaphatunk, ha ellátogatunk ezekre a fórumokra. Egy másik, szintén nem elhanyagolható szempont: a költségek. Egy kisvállalkozásnak 10 például nem mindegy, hogy külön meg kell vásárolnia a tartalomkezelő rendszert, plusz az esetleges kiegészítőket, vagy csak a fejlesztőnek kell fizetnie, aki megtervezi és létrehozza a kívánt weblapot. Bár a nyílt forráskódú rendszereknek számtalan előnye van, számolni kell néhány hátrányos tulajdonságával is: nem garantált az egyes kiegészítők, modulok helyes működése az esetleges hibák kijavítását meg kell várnunk, míg a fejlesztők közössége elvégzi (ingyenesség révén nincs időhöz
kötve a munkájuk, akár hetekig is eltarthat egy hiba kijavítása) előfordulhat, hogy a számunkra zavaró hiba másokat nem befolyásol a használatában, így a javításával nem is foglalkoznak, magunknak kell megoldani azt nagyobb a feltörés kockázata, a nyílt forráskód révén az esetleges támadók könnyebben megtalálják az esetleges biztonsági réseket, így célzott támadást tudnak végrehajtani. 2.7 A legnépszerűbb tartalomkezelő rendszerek rövid ismertetése [8] Hazánkban (és világszerte is) a legelterjedtebb CMS rendszerek közé tartozik a Joomla!, a Wordpress és a Drupal. Ezek a tartalomkezelő rendszerek nagy népszerűségnek és fejlesztői csapatnak örvendenek, folyamatos a verseny a legjobb CMS rang elnyeréséért. Bár mindhárom tartalomkezelő rendszer az élvonalon jár, korántsem azonosak sem felépítésben, sem működésben. Mind a három CMS-nek megvan a maga sajátossága, erőssége; mielőtt kiválasztanánk a
számunkra legelőnyösebbet, át kell gondolnunk, hogy milyen területen kívánjuk alkalmazni: egy egyszerű blog, vagy közösségi oldal elkészítéséhez a Wordpress és a Joomla is kiváló választás a könnyű használat miatt; azonban egy sok funkcióval rendelkező, összetettebb weboldal fejlesztéséhez már sokkal inkább a Drupal ajánlott. 11 2.71 Wordpress A Google Trends grafikonján jól látható, hogy világszerte a Wordpress a legnépszerűbb tartalomkezelő. 2003-ban jött ki az első verzió, amely eredetileg egy blog-motor volt, később vált „valódi” CMS rendszerré. Viszonylag egyszerű tartalomkezelő rendszer, felhasználói felülete könnyen kezelhető, ennek ellenére egészen komoly weblapok készíthetők vele. Sablonok, pluginok tömkelege közül válogathatunk hozzá az Interneten; talán ehhez a CMS-hez van a legtöbb kiegészítés. Biztonsági szempontból viszont a Wordpress a legsebezhetőbb; fontos odafigyelni a frissítésekre,
hogy mindig a legújabb verzió fusson a szerverünkön. Egyszerű használata, stílusos megjelenése miatt kedvelik oly sokan. 3. ábra: A Joomla, Wordpress, Drupal népszerűségi adatai http://www.googlecom/trends/explore#q=joomla%2C%20wordpress%2C%20drupal&cmpt=q 2.72 Joomla! A Joomla 2005. szeptember 6-án jelent meg, akkor még Mambo keresztnévvel, később kapta a Joomla elnevezést. Az első stabil verzió 2008-ban jelent meg, nagy áttörést hozva a tartalomkezelő rendszerek világában. Megújult API (alkalmazásprogramozási felület), ami sokkal gyorsabb elődjénél; felhasználói felülete is lényegesen egyszerűbb, felhasználó barát lett, modulos felépítése jól átlátható. A Joomla felépítésében valahol a Wordpress és a Drupal közt helyezkedik el: kevesebb fejlesztési lehetőséggel rendelkezik, és egyszerűbb a használata a Drupal-nál, de bővebb lehetőségekkel bír, összetettebb a Wordpress-nél. 12 2.73 Drupal Népszerűsége,
felhasználói köre ugyan nem a legnagyobb, viszont a biztonság, a skálázhatóság és a fejlesztés terén messze megelőzi a Wordpress-t és Joomla-t. Az első verzió 2001. január 15-én jelent meg, Dries Buytaert publikálta, azóta a rendszer rengeteget fejlődött, bővült. A Drupal már sokkal inkább szakértőknek, webfejlesztőknek készült, kezeléséhez, fejlesztéséhez bővebb informatikai ismeretek, programozási tapasztalat szükséges, viszont cserébe sokkal komplexebb weboldalakat hozhatunk létre. 13 3. Miért a Futsal? 3.1 Hogy történt a megkeresés Egy informatikus ismerősöm, Törtei Gábor, az ózdi kórház rendszergazdája felkérést kapott az ózdi Futsal csapat weboldalának kialakítására, azonban időhiányra hivatkozva nem tudta vállalni a feladatot. Így ajánlott engem a webhely létrehozására; előzetesen elmondta a megrendelőnek, hogy a Miskolci Egyetem végzős hallgatója vagyok, és webfejlesztés a szakterületem (Korszerű
WEB technológiák szakirányon fogok végezni). Össze is hozott egy találkozót, Féder Józseffel, az ÓVSE (Ózd Városi Sport Egyesület) Futsal teremfoci csapat vezetőedzőjével, aki a találkozás során elmondta, hogy szüksége lenne egy igényes weboldalra, csapatának népszerűségét ezzel is növelve, valamint megbeszéltük az oldallal szemben támasztott igényeket is. A beszélgetés befejeztével hivatalosan is felkért a csapat honlapjának megtervezésére, kialakítására. 3.2 Elvárások a honlappal szemben A megrendelővel történő egyeztetés során az alábbi tartalmi követelmények merültek fel az elkészítendő weblappal kapcsolatban: Klub története és Kapcsolat menüpont (csak szöveges tartalom felvitele). A fejlécben a csapat tagjait és a csapat logóját tartalmazó fotómontázs elhelyezése (egyedi banner készítése). Kétféle, változtatható kinézet (fekete és kék alapszínekkel). Rólunk írták menüpont, ahol
a csapatról szóló cikkek linkjei kerülnek elhelyezésre. Fotógaléria, új ablakban megnyíló képnézegető funkcióval. Tabella, naprakész állapotban (az aktuális pontszámok folyamatos frissülése). Az edző blogja menüpont, ahol az edző leírhatja az aktuális meccs, vagy edzés után a véleményét a csapat teljesítményéről (legyen letiltva a hozzászólás, csak az edző tudja szerkeszteni). Az oldalsávban legyenek a csapat támogatói (Ózd város, Féder vidámpark, FotÓzd), amelyek minden menüpont megnyitásakor megjelennek. 14 Szavazás blokk létrehozása, ahol a regisztrált felhasználók szavazhatnak a csapatra. A szavazás ne külön menüpontban legyen, hanem az is az oldalsávban legyen elhelyezve. Hírek menüpont létrehozása, ahol az aktuális hírek (NSO – Nemzeti Sport Online) maguktól frissülnek, nem kell kézzel szerkeszteni. Fórum létrehozása, ahol a regisztrált felhasználók eszmecserét
folytathatnak. Igény az oldal későbbi továbbfejlesztésére. 3.3 Amiért a Drupal CMS rendszerre esett a választásom Az elkészítendő honlappal szemben támasztott követelmények adták az ötletet a tartalomkezelő rendszerek alaposabb megismerésére. A CMS rendszerek közül a Drupal az, ami valóban webfejlesztőknek készült, ezért választottam én is munkámhoz. Az említett igények megvalósítása valamilyen összefogott rendszer segítsége nélkül eléggé időigényes munka lenne (PHP, Java, CSS), valamint a későbbiekben kész oldalon történő bárminemű változtatás kivitelezése sem túl egyszerű feladat. A Drupal moduláris felépítésének köszönhetően bármilyen módosítás (megjelenés, tartalom áthelyezés, menüstruktúra változtatás, új adatok hozzáadása, stb.) meglehetősen egyszerű A jövőben, ha tovább szeretnénk fejleszteni az honlapot a Drupal beépülő moduljainak segítségével az oldal funkcionalitása
széleskörűen kibővíthető. A Drupal lehetőséget nyújt a dinamikusan változó tartalom kezelésére is. Az elkészült weblapnak a jövőben várhatóan sok látogatója lesz, ezért fontos a nagy teherbírás; a Drupal a megfelelő sávszélesség optimalizálásának és cache technikáinak köszönhetően képes nagyobb forgalmú oldalakat is könnyedén kiszolgálni. Az sem elhanyagolható szempont, hogy a honlap elsősorban a fiatal célközönséget célozza meg, így az oldal modern megjelenése, dizájnja sem másodlagos szempont. Mindezek mellett kihívást, és fejlődési lehetőséget láttam egy új technológia megismerésében, elsajátításában, és remélem, hogy a megszerzett tudást a jövőben majd kamatoztatni tudom. 15 4. A Drupal tartalomkezelő részletes ismertetése 4.1 Egy kis történelem [9][10][11] A Drupal fejlődésének gyökerei egészen 2000-ig nyúlnak vissza. Akkortájt a stabil, állandó Internetkapcsolat még nem igazán volt
elterjedt a világon, ahogyan az Antwerpeni Egyetemen sem. Az egyetem két hallgatója, Dries Buytaert és Hans Snijder vezeték nélküli hálózatot épített ki a kollégiumban, hogy megosszák Hans-nak az ADSL Internetkapcsolatát nyolc másik hallgatóval. Ez akkoriban nagy dolognak számított, de mégis hiányzott valami: kellett valami, ahol az emberek cseveghetnek, vagy egyszerű dolgokat oszthatnak meg egymással. Innen eredt Dries-nak az ötlet, egy egyszerű Webes alapú kommunikációs oldal létrehozására, ahol ő és a barátai megbeszélhetik napi dolgaikat, vagy figyelemreméltó újdonságokat tehetnek közzé. Tehát eredetileg egy üzenetküldő modulnak indult a projekt (Drop.org néven), a folyamatos fejlesztgetés során nőtte ki magát egy komplett alkalmazássá, tartalomkezelő rendszerré, amit ma Drupal néven ismerünk. A diploma megszerzése után a csapat úgy döntött, hogy ezt a belső weboldalt „kiteszik” az Internetre, így a
továbbiakban is tudják tartani a kapcsolatot egymással, megosztani érdekes dolgokat. Miután a droporg megkezdte működését a Weben, az oldal kezdett irányt váltani. Tagjai elkezdtek webes technológiákról beszélgetni, eszmecserét folytatni legújabb ötleteikről. 2001-ben Dries úgy döntött, hogy a drop.org alatt futó szoftvert közzéteszi, a Drupal nevet adva neki. A Drupal szó eredetileg a druppel holland eredetű szóból ered, aminek jelentése vízcsepp (angolul drop), a logója is innen ered. A cél az volt, hogy a tagok használják és kiegészítsék a platformot, kísérletezgessenek, ezáltal új fejlesztésekkel, kiegészítőkkel bővítve az oldalt. Így vált a Drupal nyílt forráskódú szoftverré 2004-től, a 4.0 verzió megjelenésétől külön fejlesztői közösség veszi át a Drupal fejlesztését, azóta a népszerűsége egyre növekszik. 2005-től a szoftver új alapokra helyeződik; megjelenik az MVC szemlélet (Model-View-Controller,
modell-nézetvezérlő), melynek lényege a felhasználói felület és a tartalom (adatok) szétválasztása. A központi magot teljesen újraírták, megújult a motor. A rugalmas szerkezeti felépítés, különféle tartalmak kezelése tágabb teret adott a fejlesztésnek; a Drupal a legjobb CMS-ek 16 közé nőtte ki magát. 2007-ben megjelenik az 50 verzió, a jQuery JavaScript könyvtár bekerül a rendszerbe, ami teljesen új szintre emeli a modern web fejlesztést. 2007 és 2008 között több mint 1.4 millióan töltötték le a Drupal-t 2012 év végére már több mint 800.000 weblap futott Drupal alapokon 2011. január 5-én megjelent a Drupal 7, ami egy forradalmian új kiadás: kényelmesebb használat, megnyerőbb design, ezzel egy időben megszüntették a Drupal 5 fejlesztését és támogatását. A legfrissebb elérhető verzió 7.22 (Megjelenés: 2013-04-03) A Drupal 8 már fejlesztés alatt áll, rengeteg újítást hozva (HTML5 támogatás, mobil platform);
ha minden a terv szerint halad 2013 nyár végére várható a megjelenése – olvasható Dries Buytaert információs oldalán: http://buytaert.net/drupal-8-feature-freeze-extended 4.2 A Drupal bemutatása Stabil működés, nagy teherbírás, kiemelkedő biztonság, jó programozhatóság - ezek a Drupal fő erényei. A Drupal mára egy nagyon jól kiforrott CMS rendszer lett, folyamatosan bővülő fejlesztői gárdával. Az egyik legerősebb API-val rendelkező tartalomkezelő rendszer; jól megírt mag, sokféle kiterjesztéssel. Kiemelkedően sok programozó dolgozik nap mint nap a Drupal fejlesztésén, újabbnál újabb modulok készítésén; mindemellett fontos megemlíteni, hogy külön biztonsági csapat (security team: http://drupal.org/security-team) gondoskodik arról, hogy a rendszer mindig stabil és naprakész legyen. Biztonsági szempontból tehát kiemelkedően jó, nemhiába készül egyre több weboldal Drupal alapokon. Ezt a tényt mi sem bizonyítja jobban,
mint az, hogy Fehér Ház weboldala is Drupal motorral készült: http://www.whitehousegov/ Talán az egyik legösszetettebb CMS, rengeteg beépített funkcióval: fórumok, blogok egyszerű létrehozása az oldalon, RSS hírcsatorna támogatás, sávszélesség optimalizálás, gyorsítótár szolgáltatás (forgalmas weblapok esetén nagyon hasznos), magas szintű 17 felhasználó és jogosultság kezelés, több ezer letölthető kiegészítő modul; mindezek mellett professzionálisan testre szabható, révén, hogy elsősorban webfejlesztőknek készült. A Drupal hatalmas hazai támogatói táborral bír, számos leírás, útmutató található hozzá az Interneten; bármilyen problémára könnyűszerrel megoldást találhatunk, emellett a hazai fórumok tagjai is rendkívül segítőkészek. 2012-ben megjelent egy részletes bemutatást tartalmazó magyar nyelvű felhasználói kézikönyv is, amely részletesen bemutatja a Drupal használatát (Nagy Gusztáv: Drupal 7
alapismeretek). " A Drupal külső kódokat nem igénylő, önállóan működő program. Alapja a szolid és jól karbantartott mag, összefogott és aktív kiterjesztés készlettel. Minden nyílt forráskódú Drupal kódot a központi CVS szerveren fejlesztenek, mely eleve értelmetlenné teszi egy új változat kiválását. A legtöbb előre vivő gondolatot, kódot a fejlesztők beépítik az alaprendszerbe, és mivel minden kód együtt van, különösebb probléma nélkül lehetséges alapvető változtatásokat végrehajtani a belső API-ban. Az esetlegesen CVS-en kívül fejlesztett saját modulok frissítéséhez segítséget adnak a kiadások közötti változások összegyűjtésével. Új modulok vagy sminkek felvétele a CVS-be nagyon könnyen elvégezhető, azok letölthetően is megjelennek a Drupal webhelyén. A közös verziókezelő rendszer arra sarkallja a fejlesztőket, hogy egymás moduljaiban talált hibákat is javítsák, így a bejelentett hibák hamar
megoldódnak. A fejlesztők által készített projektkezelő modul teszi lehetővé a hibajelentéseket, és a különböző csomagok letölthető változatainak publikálását. [12] " " A Drupal tartalomkezelő rendszer, és tartalomkezelő keretrendszer (Content Management Framework, CMF) is egyben; olyan programozók számára készült rendszert jelent, mely tartalomkezelő rendszerek építésére szolgál. A Drupal kiváló CMF, hiszen általános tartalomkezelési és rendszerezési sémákat támogat széles körű megjelenés változtatási képességekkel. Ráadásul nagyon jó forrás dokumentációval rendelkezik Így alkalmas egyedi tartalomkezelési igények kielégítésére is. Web alkalmazás fejlesztő keretrendszer, azaz Web Application Framework (WAF). A Drupal egy eléggé vékony réteget biztosít a PHP nyelvi elemei felett, mely jelentősen meg tudja könnyíteni általánosabb igényű web alkalmazások fejlesztését. Ilyen funkciók az
általános űrlapkezelő rendszer, a vékony adatbázis kezelő réteg, a felhasználó-kezelő alrendszer. [13] " 18 4.3 Miért a Drupal? [14] A Drupal töretlen sikerét alátámasztja, hogy 2007-től szinte minden évben elnyerte a legjobb tartalomkezelő díjat. 2007-ben és 2008-ban is első helyezést ért el a nyílt forráskódú tartalomkezelő rendszerek egyesített kategóriájában (Packt Publishing Open Source CMS Awards), 2008-ban pedig a PHP nyelven írt tartalomkezelő rendszerek kategóriájában is győzedelmeskedett. 2007-től 2009ig a CNET Webware 100 versenyén szintén a Drupal került ki győztesként a látogatók szavazatai alapján. 2010-ben és 2011-ben az Infoworld Bossie Awards választotta meg az év legjobb CMS rendszerének. A fenti versenyek impozáns eredményei is alátámasztják a Drupal sikerét, megbízhatóságát. Néhány Drupal alapú weboldal prezentációs jelleggel: http://www.ubuntuhu/ http://mokep.hu/
http://www.itbusinesshu/ http://www.louvrefr/ http://dsc.discoverycom/ http://ing.us/ http://www.globalmuseumoncommunismorg/ http://www.fedexcom/ Ellátogatva ezekre az oldalakra könnyen felismerhetjük azt a tényt, hogy a megvalósítás, design terén a Drupal messzemenően kielégíti egy korszerű weblap működésének feltételeit. Egyre több szervezeti, hivatali honlap készül Drupal alapokon megbízhatósága, nagy teherbírása miatt. 19 4.4 Drupal, Joomla, Wordpress összehasonlítás [15][16][17] Mindhárom CMS nyílt forráskódú, ingyenes tartalomkezelő. Felépítésük jól átlátható, moduláris szerkezetű; rengeteg kiegészítő, template található hozzájuk az Interneten. Széleskörű felhasználási lehetőség; sok előre beépített funkcióval rendelkeznek. Nagy támogatói körrel bírnak, jól megírt dokumentációk segítik használatuk könnyű elsajátítását. Ma már nagyon sok nyelvi csomag található hozzájuk (mind a három
rendelkezik magyar nyelvi csomaggal is), ezáltal térhódításuk világszerte megfigyelhető. Mindhárom tartalomkezelő WEB 2.0 támogatással és fejlett szövegszerkesztő interfésszel bír. Mindhárom jól működő WYSIWYG szerkesztővel rendelkezik, ezáltal könnyen illeszthetünk be szöveget bármilyen szövegszerkesztőből; a WYSIWYG a Wordpress-nek "alaptartozéka", még a Drupal-hoz külön modulként kell letölteni és feltelepíteni. Mindezek mellett fejlett RSS hírcsatorna támogatással és keresőoptimalizált URL felépítéssel (SEO - Search Engine Optimization) rendelkeznek. Ezek a Joomla!, Drupal és Wordpress közös jellemzői, a jobb áttekinthetőség kedvéért a legnagyobb különbségeket táblázatban összesítem: Drupal Joomla! Wordpress www.drupalorg Meglehetősen egyszerű, kevés szaktudást igényel www.joomlaorg www.wordpressorg Egyszerű Egyszerű Adminisztráció Sokféle funkció és beállítási lehetőség. Jól
átlátható grafikus felület. Egyszerű használat. Letölthető témaválaszték Megfelelő. Nagy témaválaszték. Tökéletes; a legtöbb elérhető téma. Összetett sablonkezelés Korlátozott. Igen. Korlátozott. Címlap Telepítés 20 Egyszerű használat A három CMS közül a Drupal igényel a legtöbb szaktudást. Ebből eredően képes fejlettebb weblapok készítésére. Minden verziónak egyre kényelmesebb a használata. Amennyiben nincs lehetőség vagy idő a szoftver alapos megismerésére, megtanulására, abban az esetben nem ajánlott. Erősségek Fölényének kulcsa az egyszerű használatában rejlik; a fejlesztők és Kiemelkedően erős Elsősorban közösségi tervezők hatékonyan taxonómia. Komplex oldalak készítésére tudnak weboldalakat tartalmak címkézése, tervezték, erős építeni a felhasználóknak, hierarchikus közösségi hálózat és kevés instrukcióval a kategorizálása, és tulajdonságokkal, felhasználók
könnyedén rendszerezése. kiegészítőkkel. átvehetik a kész oldal menedzsmentjét. A Wordpress-hez található a legtöbb kiegészítő, téma. Testreszabható tartalom típusok, rendszerezési logika Oldalak létrehozása, szerkesztése szerver és kliens oldalról A Drupal-tól egyszerűbb, viszont a Wordpress-től összetettebb. Viszonylag kevés munka befektetésével megismerhető a Joomla szerkezeti felépítése, terminológiája, ezáltal lehetőség nyílik meglehetősen összetett weboldalak készítésére. Technikai szaktudást nem igényel; könnyedén és gyorsan elkészíthető egy egyszerű oldal, kezdők is könnyen elsajátíthatják. Microsoft Wordből egyszerűen beilleszthetünk szöveget a Wordpress oldalunkba; a Drupal-hoz kiegészítőt kell telepítenünk ehhez a funkcióhoz. Nagyon felhasználóbarát, rengeteg dokumentációval, tutoriallal. Példamutató. Kiváló logika, saját tartalom típusok létrehozása, kezelése. Korlátozott.
Megfelelő. Igen, mindezt egy interfészen (felületen) keresztül. Igen. Sablon függő. Bővíthető. Az oldalak aktuális állapota lementhető, és Bővíthető, korlátozott 2.6-os verziótól elérhető Verziókövetés egyszerűen lehetőségekkel. visszatölthetők a régebbi verziók. Sablonok szerkesztése az Nem. Igen. Igen. adminisztratív felületen belül 21 Menük szerkesztése az adminisztratív felületen belül Blog Fórum Video támogatás Audio támogatás Igen. Igen. Általános jellemzők Igen. Igen. Beépített funkció. Igen, jól integrált. Nem. Igen. Nem. Igen. Nem. Nem. Igen. Igen. Nem. A Joomla lehetőséget Fejlett és sokoldalú ad jobban „felszerelt” Ideális meglehetősen oldalak; weblapok, oldalak létrehozására, egyszerű weblapok melyekben szükséges mint amit a készítéséhez: mindennapi Legideálisabb összetett tartalmak Wordpress nyújt, de blogok, híroldalak. alkalmazási rendszerezése; az egyszerű használat
Egyszerű használata terület közösségi oldalak sok is megmarad. Kiemelt vonzó; kiegészítőkel felhasználóval; E-kereskedelem, könnyen kibővíthetők az webáruházak. közösségi háló oldal szolgáltatásai. támogatás. A táblázatból is jól látható, hogy magasabb igényekkel rendelkező oldal megvalósítása esetén érdemesebb a Drupal CMS-t választani. A Drupal mellett szól az igen fejlett felhasználó – és jogosultság kezelés is; számos kategóriát hozhatunk létre különféle jogosultsági szintek megadásával, sokféle beállítási lehetőséggel, hogy az adott személy mihez kap hozzáférést és mihez nem (regisztrált felhasználó, moderátor, látogató, szerkesztő, admin, stb.) Másik nagy előnye a Drupal-nak az előrehaladott URL kezelés; a Wordpress-el ellentétben a Drupal lehetőséget nyújt precíz URL struktúra kialakítására. Minden egyes tartalmi elemhez (node) egyedi URL rendelhető (URL alias). Az egyedi URL struktúra
automatikus kialakításában nagy segítségre lehet a Pathauto modul. Az egyedi URL struktúra kialakítása nagy előnyt jelent, ha az oldalunkat szeretnénk keresőoptimalizálni. Rövid URL címeket hozhatunk létre, amit a keresőmotorok előnyben részesítenek. Ezekben az URL címekben könnyedén elhelyezhetünk kulcsszavakat, még eredményesebbé téve a keresőoptimalizálást. Gondolnunk kell arra is, hogy ha a jövőben fejleszteni, bővíteni akarjuk oldalunkat extra funkciókkal, összetettebb elemekkel, akkor érdemesebb olyan tartalomkezelő rendszert alkalmazni, amivel ez könnyedén megvalósítható; ebben az esetben is a Drupal a 22 megfelelő választás. A Drupal tökéletesen kielégít minden tartalmi követelményt, ami egy komplex weboldal készítésénél felmerülhet. Amennyiben azonban ha könnyen és gyorsan akarunk létrehozni egy egyszerű weblapot, a Wordpress a tökéletes választás; könnyen elsajátítható, egyszerűsége ellenére egész
sok funkcióval rendelkezik. A Joomla! ötvözi a Wordpress egyszerűségét a Drupal fejleszthetőségével; de a Wordpress-nél kicsit összetettebb, több szolgáltatással rendelkezik, jobban fejleszthető; ebben jobban közelít a Drupal-hoz. Véleményem szerint, aki kicsit komolyabban szeretne foglalkozni weblapkészítéssel, annak a Drupal CMS a legmegfelelőbb választás. Igaz, hogy alaposabb megismerése, logikájának elsajátítása időigényesebb feladat, de "csak" egyszer kell megtanulni a használatát. Bővítve tudásunkat pedig a lehetőségek tárháza határtalan; a Drupal az egyik legsokoldalúbb tartalomkezelő rendszer; nehéz lenne olyan követelményt kitalálni, amit ne lehetne Drupal-lal megvalósítani. Mindemellett webfejlesztők sokasága dolgozik újabbnál újabb kiegészítők készítésén, így a Drupal folyamatosan fejlődik, lépést tartva a felhasználók egyre nagyobb elvárásaival. 4.5 A Drupal szerkezeti felépítése 4. ábra:
a Drupal szerkezete, rétegei http://drupal.org/files/drupal flow 0gif 23 Az 5. ábra a Drupal architektúráját, rétegeit mutatja be: Az alsó rétegben helyezkedik el maga a tartalom (a Drupal-ban node-nak nevezik). Felette találhatók a beépülő modulok, kiegészítők. Az ezt követő rétegben a blokkok és maga a menüszerkezet található. Ezután következik a felhasználói jogosultságok réteg A legfelső réteg határozza meg maga az oldal megjelenését, kinézetét (sminkek). A Drupal felépítésében követi az MVC keretrendszer szemléletet (Model-View-Controller, Modell-Nézet-Vezérlő), melynek lényege az adatok (modell) szétválasztása a felülettől (nézet), hogy a megjelenés ne befolyásolja az adatok kezelését, valamint az adatok módosíthatók legyenek a felület megjelenésétől függetlenül. A Drupal keretrendszer betöltődése után a program hozzáfér minden függvényhez és adathoz (adatbázis táblái, felhasználók adatai,
jogosultságok, stb.) és kezelheti azt a felület megváltoztatása nélkül 5. ábra: Drupal, mint MVC keretrendszer http://archivemati.ca/wp-content/images/Drupal as MVC Frameworkpng 24 4.6 A Drupal 7 legfőbb újdonságai: [18] megújult adminisztrációs felület az egyszerűbb használat érdekében számos új kiegészítő áll rendelkezésre mind a honlap készítőknek, mind a tartalomszerkesztőknek még rugalmasabb strukturális felépítés: egyedi mezők létrehozása, tartalmak egyedi rendszerezésének lehetősége több mint 800 elérhető modul jobb skálázhatóság: a JavaScript és CSS optimalizálásnak köszönhetően könnyedén kiszolgálja a nagyobb forgalommal rendelkező oldalakat is képek, ábrák kezelése, hozzáadása a tartalomhoz automatikus forráskód tesztelés, több mint 30.000 beépített teszt sorozattal megújult API: telepítési profilok létrehozása, konfigurációs beállítások exportálása; több
lehetőség a forráskód szerkesztésére kifinomultabb kereső funkciók egyszerűbb rendszerfrissítés megnövelt teljesítmény 4.7 Drupal 7 szerver oldali rendszerkövetelmények [19] Lemezterület Minimális telepítéshez 15Mb lemezterület szükséges. 60Mb szükséges egy általános weblap készítéséhez szükséges modulok és témák telepítéséhez. Természetesen sokkal több területre van szükség az adatbázis, média és egyéb fájlok tárolásához. 4.72 Webszerver A Drupal bármelyik webszerverrel működik, amelyik PHP támogatással rendelkezik. 25 Apache (ajánlott) Rendszerint az Apache webszerver ajánlott a Drupal használatához. Legalább Apache 20 verzió ajánlott, de megfelelően működik az 1.3 verzióval is OS (operációs rendszer) független, létezik disztribúció minden operációs rendszerhez: UNIX/Linux, OS X, Windows. Az Apache Virtualhost konfigurációnak tartalmaznia kell az AllowOverride All direktívát, hogy a
Drupal .htaccess fájlja engedélyezve legyen (általában alapértelmezett beállítás). Ngnix A Drupal tökéletesen működik az Ngnix webszerveren is, ami az Apache egyik népszerű vetélytársa. Az Ngnix legnagyobb erősségei: párhuzamos feldolgozás, teljesítmény, alacsony memóriahasználat. Működik a régebbi verziókkal is (0.7 verziótól az 10 verzióig mindegyikkel), de ajánlott újabb verzió használata 1.2x vagy 13x Szintén OS független Microsoft IIS Amennyiben a PHP fordító megfelelően van konfigurálva, a Drupal működik az IIS5, IIS6 és az IIS7 verzióval is. Az IIS7 verzió megfelelő működéséhez szükséges a Windows 2008 Server SP2-es vagy újabb frissítése. 4.73 Adatbázis szerver A Drupal 7 futásához szükséges még egy adatbázis szerver is (MySQL vagy MariaDB ajánlott), amik a következők lehetnek: MySQL 5.015 vagy újabb verziója; ehhez szükséges még a PDO (PHP Data Objects) adatbázis kiterjesztés a PHP mellé. A PDO
egy objektum adatbázisok hatékony, egyszerű kezelésére PHP alól. 26 A PDO egy kommunikációs réteget biztosít az adatbázis és a PHP között (adathozzáférési réteg, egyesített API). A PDO engedélyezése: --enable-pdo vagy --with-pdo-mysql parancs kiadásával. Az AMP (Apache-MySQL-PHP) telepítése után alapértelmezetten működik. MariaDB 5.144 vagy magasabb verzió; a Drupal alaposan tesztelve lett a MariaDB adatbázissal is; a MariaDB és a MySQL ekvivalens egymással. PostgreSQL 8.3 vagy újabb, SQLite 337 vagy újabb; ez utóbbi két adatbázis támogatásához megfelelő modulok telepítése szükséges 4.74 PHP Legalább PHP 5.25 szükséges, de ajánlott PHP 53 vagy újabb verzió használata a Drupal 7 tökéletes működéséhez. A PHP memória igénye erősen függ a telepített modulok mennyiségétől. A Drupal 7 minimális memória szükséglete 32Mb (ez az alapértelmezett beállítás is). Hogy ezzel a későbbiekben ne legyen
fennakadás, érdemes átállítani legalább 128Mb méretűre. Ezt kétféle módon tehetjük meg: Lokális: keressük meg a telepített Drupal könyvtárában az következő fájlt: sites/default/settings.php Szerkesztővel nyissuk meg, keressük meg a PHP settings részt és tegyük a végére a következőt (ha létezik, módosítsuk): ini set(memory limit, 128M); Ezek a beállítások csak azokra az oldalakra érvényesek, amelyek ezt a fájlt használják. Globális: a PHP jegyzékben nyissuk meg szerkesztővel a php.ini fájlt és írjuk át a memory limit paramétert az alábbi módon: memory limit = 128M ; Maximum amount of memory a script may consume (128MB) Ha nem létezik, akkor illesszük be a fájl utolsó sorába. XAMPP használata esetén a php.ini fájl az XAMPP/Apache/bin könyvtárban található. A beállítások érvénybe lépéséhez az Apache szerver újraindítása szükséges. 27 5. A webhely rendszertervének kialakítása 5.1 Az oldal
megtervezése A tervezés első fázisa az oldal kinézetének megtervezése, ami a megrendelőnek is bemutatásra került. Az oldal előzetes látványterve: 6. ábra: az oldal látványterve 1: Banner helye, a fejlécben megjelenő kép elhelyezése. 2: Menüsor, az egyes menüpontok elhelyezkedésének helye. 3: A tényleges tartalom az oldal közepén fog elhelyezkedni, az egyes menüpontokba történő navigáláskor minden összetevő (1,2,4,5,6) fixen a helyén marad, csak az aktuális tartalom (3) fog változni. A kezdőoldal megnyitásakor a csapat csoportképe és egy üdvözlő üzenet fog megjelenni. 4: Szavazás blokk helye. 5: Bejelentkezés és regisztráció blokk. 6: A támogatók blokk elhelyezkedése. 28 5.2 Fejlesztési fázisok megtervezése A megrendelővel történő második találkozás során bemutattam az oldal előzetes látványtervét és megbeszéltük az oldal működésének részleteit is. Az egyeztetés után hozzá is láttam az oldal
építéséhez, de előtte készítettem egy folyamatábrát, ami az egyes fejlesztési fázisokat prezentálja: Webszerver előkészítése, Drupal konfigurálása Webhely építés Tartalmak feltöltése, menüpontok kialakítása Az oldalsávokban található blokkok kialakítása Az oldal funkcióinak elkészítése (galéria, hírek, stb.) Felhasználó-kezelés Az oldal kinézetének kialakítása, banner elhelyezése A kész oldal költöztetése 29 6. Webhely építés 1: szükséges webszerver környezet előkészítése 6.1 Drupal 7 telepítés Windows operációs rendszerre 6.11 Az XAMPP telepítő csomag használata Feltelepíthetjük és konfigurálhatjuk egyesével is a szükséges komponenseket, de lényegesen leegyszerűsíti munkánkat az XAMPP integrált telepítő csomag használata, amely tartalmazza a PHP-t, az Apache szervert és a MySQL adatbázis szervert is, továbbá a PHPMyAdmin alkalmazás is alaptartozéka. Többféle AMP csomag is létezik
Linux (LAMPP) és Solaris disztribúciókra is. Töltsük le az XAMPP legfrissebb http://www.apachefriendsorg/en/xampphtml verzióját (jelenleg 1.81) az címről és telepítsük fel. A telepítési könyvtáron belül létrejön egy xampp/htdocs almappa, ez lesz a webszerver dokumentum-könyvtára, vagyis ez a mappa lesz a localhost kiszolgálója, ezért érdemes ezen a mappán belül létrehozni majd a Drupal főkönyvtárat is. Az XAMPP Control Panel segítségével indítsuk el a MySQL és az Apache szervert. A böngészőnk címsorába gépeljük be a localhost elérési útvonalat. Ha minden rendben ment, akkor az XAMPP kezdőoldala fogad majd; innen konfigurálhatjuk a webszerverünket és annak részeit. Mielőtt hozzálátnánk a Drupal telepítéséhez, előtte el kell végezni néhány beállítást a szerveren: - Alapértelmezetten nincs jelszó beállítva a MySQL adatbázis hozzáféréséhez, célszerű jelszóval levédeni azt. Ezt a localhost/security/
oldalon tehetjük meg - Hozzunk létre egy adatbázist a Drupal környezetének működéséhez, ehhez használjuk a PHPMyAdmin alkalmazást (Az XAMPP kezdőoldaláról elérhető). 6.12 A webszerver konfigurálása A Drupal biztonságos működéséről a .htaccess állomány gondoskodik, melynek feladata a PHP szkriptek megfelelő biztonsági beállításokkal történő futtatása, valamint 30 hogy a nem publikus állományok (.engine, module) ne legyenek elérhetők böngészőből A .htaccess működéséhez az Apache szerver beállításában (apache/conf/httpdconf fájl) szerepelnie kell az AllowOverride All direktívának. Az XAMPP telepítésekor a htdocs mappára alapértelmezetten engedélyezve van. 7. ábra: XAMPP Control Panel A Clean URL használatához szükséges még a mod rewrite modul használata, amit a httpd.conf fájlban kell bekapcsolni a LoadModule rewrite module modules/mod rewrite.so sor hozzáadásával Ha szerepel, de # van előtte, akkor azt
értelemszerűen ki kell venni. Ha ezekkel megvagyunk, töltsük le a Drupal legfrissebb verzióját (jelenleg 7.22) és a tartalmát csomagoljuk ki az xampp/htdocs/drupal könyvtárba. Töltsük le a magyar nyelvi csomagot is (drupal-7.22hupo) drupal/profiles/standard/translations és mappába, másoljuk így a be telepítés a során választható lesz a magyar nyelv is. A telepítés elindítása előtt másoljuk drupal/sites/default/default.settingsphp le és fájlt. nevezzük Az új át fájl a neve settings.php legyen Fontos hogy lemásoljuk, és ne csak átnevezzük, mert szükség van az eredeti fájlra is! A telepítés befejeztével tegyük írásvédetté a settings.php 31 állományt, mert ez is egy biztonsági kiskaput eredményez, ha nem tesszük meg (erre a telepítő is figyelmeztetni fog). Ha ez is kész, akkor indítsuk el a Drupal telepítőjét böngészőnkből: localhost/drupal/install.php Ha a telepítés elkészült a
Drupal kezdőoldalát és adminisztrációs felületét a localhost/drupal elérési útvonal megadásával érhetjük el. 6.2 Drupal 7 telepítés Linux operációs rendszerre (ajánlott) Miután feltelepítettem a Drupal környezetet a saját rendszeremre az XAMPP integrált webszerver csomagjával együtt (számos cikkben, fórumon ajánlják az XAMPP használatát, ezért én is azzal próbálkoztam), hozzá is láttam a szükséges konfigurációhoz. Először bekapcsoltam a szükséges modulokat (lásd: Webhely építés 2: Drupal konfiguráció), majd letöltöttem és engedélyeztem a WYSIWYG szövegszerkesztő modult. A WYSIWYG modul működéséhez szükséges még valamilyen szövegszerkesztő eszközkészlet; a problémák ekkor kezdődtek, ugyanis az összes ajánlott eszközkészlet végigpróbálása során (újabb és régebbi verziók egyaránt) egyiket sem sikerült működésre bírni. Valamelyiknél hibát dobott már a telepítés után (hibás csomag, nem
sikerült megfelelően telepíteni, stb.), valamelyik pedig látszólag normálisan feltelepült, be is lehetett állítani, de a formázott szöveget hibásan vagy formázás nélkül jelenítette meg, vagy a beszúrt kép eltűnt a mentés után. A sok próbálkozás után kezdtem el gyanakodni, hogy a Drupal legfrissebb verziója (7.22) talán még nem eléggé kiforrott, esetleg hibás és még nem javították, ezért kipróbáltam régebbi verziókat is (7.14, 70), de a probléma továbbra is fennállt. Az is gyanús volt, hogy a saját rendszeremen (Windows7 64bit, 4 magos processzor, 4GB memória, gigabites hálókártya) kialakított webszerveren a Drupal webes felülete eléggé lassú, a menük lassan töltődnek be, de korábban ezzel nem foglalkoztam. Átnéztem az Apache szerver beállításait (httpdconf) és a PHP konfigurációs fájlját is (php.ini), de nem találtam hibát Ekkor döntöttem úgy, hogy feltelepítem Linux rendszerre a Drupal-t. A Linux rendszernek
egy virtuális gépet hoztam létre az Oracle VM Virtualbox segítségével, ami kényelmes és gyors megoldás egy új operációs rendszer telepítésére. 32 6.21 Az Oracle VM Virtualbox használata Hozzunk létre egy új virtuális gépet. Válasszuk ki az operációs rendszer típusát, majd adjuk meg a virtuális géphez rendelt erőforrásokat (mennyit használhat a fizikai erőforrásokból). Én 1GB memóriát és a processzorból 1 magot engedélyeztem, amit maximum 70%-on járathat a rendszer és ez tökéletesen elég a Linux megfelelő futásához. A grafikus felület miatt érdemes megnövelni a videó-memóriát; parancssoros Linux szerver használata esetén nem kell állítani rajta, megfelel az alapértelmezett méret. Ezzel elkészült a virtuális gép. Indítás előtt adjuk hozzá az operációs rendszer Image fájlját: Konfigurálás Tároló CD/DVD kép hozzáadása, majd a Hálózat beállításainál a hálózati adaptert állítsuk át
Bridge-elt kártyára. Indítsuk el a virtuális gépet és telepítsük fel az operációs rendszert. 6.22 Webszerver előkészítése A webszervert Ubuntu Linux operációs rendszerre telepítettem fel, a pontosság kedvéért a továbbiakban a használt parancsok az Ubuntu Linux verzióra vonatkoznak. Grafikus felületű Linux rendszer használata esetén váltsunk át grafikus felületről konzolos felületre a CTRL+ALT+F1 billentyűkombinációval, és jelentkezzünk be rendszergazda jogosultsággal (a grafikus felületre az ALT+F7 billentyűkombinációval térhetünk vissza). Telepítsük fel a LAMP szervert (Linux Apache MySQL PHP Server, nem összekeverendő a LAMPP előre konfigurált telepítő csomagjával, ami az XAMPP Linux-os változata): sudo apt-get install lamp-server A telepítő jelszó megadást fog kérni az adatbázis szerverhez, ezt üresen is hagyhatjuk, de biztonsági szempontból érdemes jelszóval levédeni a hozzáférést. Az Ubuntu Server 1204
verzió telepítője automatikusan fel is ajánlja, a LAMP szerver telepítését. Ellenőrizzük, hogy az Apache szerver megfelelően működik: Adjuk ki az ifconfig parancsot, keressük meg az IP címünket (inet addr), majd ezt a címet írjuk a böngészőnk címsorába. A következő üzenetet kell kapnunk: It Works! 33 Fontos, hogy minden beállítás után újra kell indítani az Apache szervert! Apache szerver újraindítása: sudo /etc/init.d/apache2 restart A mod rewrite modul engedélyezéséhez másoljuk át a rewrite.load fájlt az engedélyezett modulok mappába: sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load A .htaccess megfelelő működéséhez szerkesszük a következő fájlt: sudo gedit /etc/apache2/sites-available/default A <Directory /var/www> részt írjuk át a következőképpen, majd indítsuk újra az Apache szervert: Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny
allow from all 6.23 MySQL szerver előkészítése A MySQL elindítása előtt futtassuk le az alábbi szkriptet: sudo mysql install db Ez létrehoz egy adatbázist a felhasználók és hozzáférési jogosultságaik tárolására; két fiók jön létre: egy root teljes hozzáféréssel, és egy anonymus egy teszt adatbázissal. Biztonsági szempontból érdemes ezt a teszt adatbázist eltávolítani, ezzel is kisebb a támadható felület: sudo mysql secure installation Jelentkezzünk be a MySQL adatbázis szerverbe rendszergazdaként: mysql -u root -p Hozzuk létre a Drupal futásához szükséges adatbázist: CREATE DATABASE drupal; 34 Az adatbázishoz hozzunk létre egy felhasználót, akinek csak az adott adatbázishoz van hozzáférése: CREATE USER drupalfelh@localhost; Jelszó beállítása a felhasználóhoz: SET PASSWORD FOR drupalfelh@localhost = PASSWORD(jelszó); Jogok adása a létrehozott felhasználónak: GRANT ALL PRIVILEGES ON drupal.* TO
drupalfelh@localhost IDENTIFIED BY jelszó; A későbbiekben az adatbázis egyszerűbb menedzselése kedvéért feltelepítettem a PHPMyAdmin alkalmazást: sudo apt-get install phpmyadmin Megadtam az adatbázis root jelszavát, ha kész, a felület az elérési útvonal/phpmyadmin hivatkozással lesz elérhető. 6.24 Webszerver konfiguráció Ezzel előkészítettük a Drupal futásához szükséges szerver-környezetet. Linux rendszeren az alapértelmezett web root jegyzék a /var/www mappa, ide másoljuk be a kitömörített Drupal mappát. A Drupal és a webszerver egy Linux virtuális szerveren fut, de kezelni már Windows rendszer alól fogjuk (a Linux szervernek nincs grafikus felülete, és nem is szükséges telepíteni, csak a webszervernek szükséges futnia rajta). Ezért a kényelmesebb fájlátvitel érdekében (a későbbiekben is szükséges lesz a modulok telepítésénél) a WinSCP programot használtam. A WinSCP megjelenésében egy Total Commander-hez hasonló
alkalmazás, aminek segítségével könnyedén másolhatunk fájlokat Windows rendszerről Linux rendszerre (természetesen oda-vissza működik) hálózaton keresztül. Adjunk írás jogot a sites/default és a sites/all könyvtárra (ide fogjuk telepíteni a szükséges modulokat, témákat, valamint itt tárolódnak majd az oldal állományai is): sudo chmod a+w sites/default sudo chmod a+w sites/all Készítsünk másolatot a default.settingsphp állományról és adjunk arra is írás jogot: 35 cp default.settingsphp settingsphp sudo chmod a+w settings.php Ha kész, böngészőből indítsuk el a Drupal telepítőjét: elérési útvonal/drupal/install.php A telepítés után vegyük vissza az írás jogot a settings.php állományról (biztonsági kockázat, erre a telepítő is figyelmeztetni fog): sudo chmod go-w settings.php A sites/default és a sites/all mappán maradjon az írás jog a fejlesztés idejére, de az oldal elkészültével ezeket a könyvtárakat is
írásvédetté kell tenni! A telepítés után a Drupal minden funkciója tökéletesen működik a Linux szerveren, valamint szembetűnő a különbség is a korábban Windows rendszeren történő futtatás után: sokkal gyorsabb lett a Drupal webes felülete, a menüpontok betöltése, ráadásul igen csekély erőforrás-használat mellett, ami a 7. ábrán jól látható Az erőforrás használatot a htop alkalmazással ellenőrizhetjük. A Linux virtuális szervert a laptopomon alakítottam ki, így a laptoppal közös hálózaton lévő asztali gépen folytattam a munkát 24” monitoron, ez lényegesen megkönnyítette és átláthatóbbá tette a fejlesztés menetét. Valamint a mobilitásnak köszönhetően magammal tudtam vinni és prezentálni tudtam a megrendelőnek a honlap fejlesztésének mindig az aktuális fázisát. 8. ábra: A Linux szerver erőforrás használata 36 7. Webhely építés 2: A Drupal előkészítése, szükséges modulok beállítása A
Drupal tartalomkezelő rendszer moduláris felépítésű, ami azt jelenti, hogy az egyes funkciók működéséről egy-egy modul gondoskodik. Az egyes modulokat a Modulok menüpontban engedélyezhetjük, vagy tilthatjuk le, és itt tudjuk konfigurálni is azokat. Az újonnan telepített modulokat a /sites/all/modules mappába kell helyezni, majd engedélyezni kell azokat. Mielőtt bármilyen modult telepítenénk, engedélyezzük az Update Manager modult. 7.1 Magyar nyelvi csomag telepítése A Drupal Windowsra történő telepítése során a következő hibaüzenetet kaptam a fordítás telepítése során: Fatal error: Maximum execution time of 30 seconds exceeded A hiba megoldásához a php.ini fájlt kellene módosítani (nagyobb értéket megadni), de én inkább megkerültem a problémát, és a fordítást a Drupal feltelepülése után manuálisan adtam hozzá, így hiba nélkül feltelepült a magyar nyelvi csomag. A fordítás telepítése előtt engedélyezzük a Locale
és a Content translation modulokat. A Configurations/ Translate interface menüpontban a jobb felső sarokban kattintsuk az Import gombra, majd adjuk meg a nyelvi csomag fájl (.po kiterjesztés) elérési helyét. Állítsuk be a magyar nyelvet alapértelmezettként 7.2 WYSIWYG szövegszerkesztő telepítése és beállítása Ahhoz, hogy tartalom hozzáadásnál tetszés szerint formázni tudjuk a szöveget, esetleg más forrásból (Microsoft Word) szeretnénk szöveget beilleszteni, ennek helyes megjelenítéséhez szükséges a WYSIWYG modul. Töltsük le, tömörítsük ki és másoljuk át a /sites/all/modules könyvtárba, aztán engedélyezzük. A modul beállításainál láthatjuk, hogy önmagában még nem működőképes, szükséges hozzá még valamilyen szövegszerkesztő eszközkészlet. Többféle eszközkészletet támogat a WYSIWYG, ezek közül többet is kipróbáltam; számomra a TinyMCE (3.58 verzió) és a WhizzyWig (63 37 verzió) teljesített a
legjobban: sokféle formázási lehetőség, táblázat és kép beszúrása a szövegbe, másolás és beillesztés funkció, stb. Önmagában a TinyMCE editor is számos formázási lehetőséggel rendelkezik, azonban hiányzik egy hasznos funkciója: táblázat hozzáadása a szöveghez. Ezt tudja a WhizzyWig szerkesztőkészlet, ezért én mindkettőt feltelepítettem. 9. ábra: A TinyMCE szerkesztő gombjai Töltsük le ezt a két csomagot (a fent leírt verziókat használtam, azokkal biztosan működőképes), hozzunk létre a sites/all mappán belül egy libraries almappát, majd ebbe másoljuk át a kitömörített csomagokat. A WhizzyWig eszközkészlet letöltésénél kapott whizzywig63.js JavaScript fájlt nevezzük át whizzywigjs-re, és helyezzük bele egy azonos nevű (whizzywig) mappába, így másoljuk át a sites/all/libraries könyvtárba, máskülönben nem ismeri fel a WYSIWYG modul. Most már a WYSIWYG beállításainál ki tudjuk választani a használni
kívánt eszközkészletet az egyes beviteli formátumokhoz (Full HTML, Filtered HTML, Egyszerű szöveg). Amennyiben szükséges, saját beviteli formátum is létrehozható. Az alapértelmezett szűrő a Filtered HTML. Fontos megjegyezni, hogy a Full HTML beviteli formátumhoz csak az oldal root felhasználója férhet hozzá, valamint ide tetszőleges HTML kód is beilleszthető. 38 Az eszközkészlet konfigurációnál (WYSIWYG beállítások Editor Szerkesztés Buttons and Plugins) válasszuk ki a bevitt szövegek formázáshoz használni kívánt gombokat, majd mentsük a beállításokat. A konfigurálás után bármilyen típusú tartalom hozzáadásánál (egyszerű oldal, fórum – és blog bejegyzés, stb.) a szövegbeviteli mezőhöz társulni fog egy eszköztár, az általunk kiválasztott funkciókkal. A Full HTML beviteli formátumhoz a TinyMCE szerkesztőt használtam, ehhez hozzáadtam a kép beillesztése lehetőséget is, ami csak
az oldal fejlesztőjének szükséges. A Filtered HTML formátumhoz pedig a WhizzyWig szerkesztőt társítottam, általános formázási lehetőségek megadásával, amit majd a felhasználók is használni tudnak majd hozzászólás, vagy fórum bejegyzés írásakor. 7.3 Keresőoptimalizálás, tiszta webcímek használata A tiszta webcímek (clean URL) használatához kellett a webszerveren konfigurálni a .htaccess fájlt, és engedélyezni a mod rewrite modult Szükséges még a Path modul engedélyezése, ami támogatja a webcímek elfedését álnevekkel. A Beállítások menüpontban engedélyezzük a Rövid webcímek használatát, így az útvonal álnevekkel (webcímálnév) ellátott tartalmak a következőképpen jelennek meg a böngésző címsorában: localhost/futsal/klub tortenete míg rövid webcímek használata nélkül: localhost/futsal ?q=node/6 7.4 Egyéb alap modulok Az alábbi modulok alaptartozékai a Drupal 7 magjának, de külön kell engedélyezni
őket: Comment: hozzászólások írása az egyes tartalmakhoz Database logging, Syslog: rendszerüzenetek naplózása PHP Filter: PHP kódok beágyazását és fordítását teszi lehetővé Testing: keretrendszer az oldal működésének teszteléséhez Trigger: eseményekhez kötött akciók futtatása 39 8. Webhely építés 3: A webhely elkészítése 8.1 Tartalmak feltöltése, a szükséges menüpontok létrehozása A Drupal-ban nem szükséges a menüpontokat külön-külön létrehozni (természetesen van rá lehetőség), bármilyen típusú tartalom hozzáadásánál a Drupal lehetőséget nyújt menüpont csatolására a létrehozott tartalomhoz, így a végleges menüstruktúrát az oldal elkészülte után alakítottam ki. Az egyes menüpontoknak megadhatjuk, hogy melyik szülő menüpontban foglaljanak helyet (alapértelmezetten a Főmenü), ezáltal tetszőleges, többszintű menürendszer kialakítása lehetséges. A menüpontokhoz súlyokat is rendelhetünk,
ezek a súlyok határozzák meg a menüpontok elhelyezkedésének sorrendjét; ha nem rendelünk súlyokat az egyes menüpontokhoz, akkor azok ABC sorrendben fognak elhelyezkedni. Tartalom hozzáadásnál többféle tartalomtípus közül választhatunk, az engedélyezett moduloktól függően (Egyszerű lap, Cikk, Fórum, stb.), valamint lehetőség van egyedi tartalomtípus létrehozására is, amire a fotógaléria elkészítésénél szükség is volt. Új tartalomtípus létrehozása: Felépítés Tartalomtípusok Tartalomtípus hozzáadása Keresőoptimalizálás céljából útvonal álneveket (Útvonal beállításai Webcímálnév) rendeltem az egyes tartalmakhoz, ami a böngésző fejlécében fog megjelenni a következőképpen: localhost/futsal/webcimalnev Az egyszerű tartalommal rendelkező oldalakat (Klub történet, Kapcsolat, Rólunk írták) Egyszerű lap hozzáadásával hoztam létre, és menüpontot adtam a lapokhoz. A megrendelőtől a Klub
történetének leírását egy Word dokumentumban kaptam meg, a WYSIWYG modulnak köszönhetően a szöveget egyszerűen beillesztettem az oldalra (más külső forrásból is működik a szöveg és linkek beillesztése) és a formázások is megmaradtak. A kezdőoldal is Egyszerű lap tartalomtípus, ahová az üdvözlő üzenet alá beszúrtam a klub csoportképét, ehhez a Full HTML beviteli formátumot használtam, mert a TinyMCE editor támogatja a beszúrt képek átméretezését. A szövegtörzsbe történő kép beszúrásához a beilleszteni kívánt képet bemásoltam a sites/default/files mappába, ami a Drupal 40 alapértelmezett tároló könyvtára (a webszerver telepítésénél ezért lett írás jog adva erre a jegyzékre), máshova helyezve nem működik. A képre a következő módon kell hivatkozni beillesztésnél: /sites/default/files/kep neve.jpg 8.2 Blokkok létrehozása Az oldal építésénél lehetőség van különféle tartalmak elhelyezésére az
oldal egyéb részein is (oldalsávok, fejléc, lábléc, stb.) Azt, hogy az oldal hány blokkból épül fel, és milyen blokktípusokkal rendelkezik, az adott megjelenéstől (smink) függ. Az adott sminkhez beállított blokk elrendezés független a többi sminkhez társított elrendezéstől, így megjelenés váltáskor akár az egész oldal strukturális felépítése is teljesen átalakítható, ezzel változatossá téve a honlapot. Ilyen típusú tartalom új blokk létrehozásával valósítható meg: Felépítés Blokkok Blokk hozzáadása Az elkészült blokk alapértelmezetten nem jelenik meg sehol, a Tiltott blokkok közé kerül, itt legördülő listából választhatjuk ki a blokk elhelyezését az oldalon. A blokkok sorrendje a grafikus felület segítségével tetszőlegesen változtatható. 8.21 Támogatók blokk létrehozása A Támogatók blokk létrehozásánál egyszerűen beillesztettem a támogatók kis logó képeit, átméreteztem a képeket és
hiperhivatkozást rendeltem a képekhez. A hiperhivatkozás létrehozásához átváltottam Filtered HTML beviteli formátumra (amihez korábban a WhizzyWig szerkesztőt csatoltam), mert a TinyMCE szerkesztőnek link hozzáadásnál nincs „link megnyitása új lapon” funkciója, ezt a WhizzyWig editorral oldottam meg. 8.22 Szavazás blokk létrehozása A szavazás funkció működéséről a Poll modul gondoskodik; engedélyezés után a tartalom hozzáadásnál választható lesz a Poll (szavazás) tartalomtípus. Létrehoztam a szavazást (tetszőleges számú válaszlehetőség definiálható), de mivel a megrendelő igénye az volt, hogy ne külön menüpontból legyen elérhető, hanem a bal oldali oldalsávban 41 jelenjen meg, ezért menüpont létrehozása nélkül mentettem a tartalmat. A blokkok között megkerestem a Legutóbbi szavazás blokkot (alul a nem engedélyezett blokkoknál található), és beállítottam, hogy a blokk az Első oldalsávban jelenjen meg,
a Bejelentkezés blokk felett. 8.3 Felhasználó menedzsment A Drupal alapvetően három felhasználó csoportot különböztet meg egymástól: root: az oldal adminisztrátora, teljes körű jogokkal rendelkezik az oldal felett anonymus: az oldalra látogató, nem regisztrált tag felhasználó: a root létrehozhat különböző jogosultságokkal rendelkező felhasználó típusokat, korlátozva az egyes funkciókhoz történő hozzáférésüket A Drupal igen fejlett felhasználó-kezeléssel rendelkezik, az egyes jogosultságok megadása szerepkörökhöz (role) van kötve. Alapértelmezetten kétféle szerepkör létezik, ezek a névtelen látogató és az azonosított felhasználó, de lehetőség van egyedi szerepkörök kialakítására is. Ez a két beépített szerepkör nem törölhető, de a hozzáférési jogosultságaik szerkeszthetők. Az egyes szerepkörökhöz definiálható jogosultságok (Emberek Jogosultságok) táblázatszerűen van összesítve,
így jól átlátható és kezelhető az egyes szerepkörök hozzáférési szintje. (10 ábra) Új felhasználó létrehozása esetén szerepkörökbe lehet sorolni a felhasználót (egy felhasználó több szerepkörhöz is tartozhat). Itt fontosnak tartom megjegyezni a Drupal logikáját: az azonosított felhasználónak adott jogokat automatikusan megkapja az összes többi szerepkör is (kivéve a névtelen látogató), mivel minden további szerepkör részhalmaza az azonosított felhasználó szerepkörnek. Az egyedileg létrehozott szerepkörökhöz csak a speciális jogosultságokat kell hozzáadni. Az azonosított felhasználó jogosultságait annyiban módosítottam, hogy engedélyeztem a hozzászólás beküldést (fórum használatához szükséges), és a szavazást az oldalon. A szavazást a névtelen látogató szerepkörnek is engedélyeztem, hogy az oldalra látogatók is tudjanak szavazni. 42 Tesztelés céljából létre is hoztam egy user1
(jelszó: user1) nevű felhasználót, az oldal egyes funkcióinak későbbi teszteléséhez: szavazás, fórum megtekintése és hozzászólás beküldése, tartalmak megtekintése. A blog létrehozásához a későbbiekben szükség lesz egy egyedi felhasználóra, aki szerkesztheti a blogot. Ahhoz, hogy engedélyezzem ennek a felhasználónak a blog szerkesztésének jogait, engedélyeztem a Blog modult. A megrendelő igénye az volt, hogy a blog szerkesztéséhez csak neki legyen hozzáférése, ezért létrehoztam egy új szerepkört edzö névvel (Emberek Jogosultságok Szerepkörök Szerepkör létrehozás), majd szerkesztettem az új szerepkör jogosultságait. Az új szerepkörnek engedélyeztem a blogbejegyzés szerkesztését Létrehoztam egy új felhasználót (Féder József, jelszó: feder), amit az edzö szerepkörhöz társítottam. 10. ábra: Jogosultság kiosztás szerepkörök alapján 43 8.4 Az oldal szükséges funkcióinak megvalósítása 8.41
Fotógaléria elkészítése, képnézegető funkcióval A Drupal-hoz többféle képkezelő és képgaléria modul létezik, de a legújabb Drupal-al még nem mindegyik kompatibilis. Többféle képgaléria modult is kipróbáltam (Galleria, Node Gallery), mire találtam egy megfelelően működőt. Az alábbiakban egy sokoldalúan felhasználható, Drupal 7 alatt tökéletesen működőképes képgaléria elkészítése kerül bemutatásra. A szükséges modulok: Ctools Views Multiupload Filefield Widget Multiupload Imagefield Widget Lightbox 2 Telepítsük fel ezeket a modulokat (másoljuk be a /sites/all/modules mappába) és engedélyezzük őket, valamint győződjünk meg arról, hogy engedélyezve vannak a következő modulok is: Fields, Fields UI, Field SQL storage, File. Az első lépés egy új tartalomtípus létrehozása, ami a képeket fogja kezelni: Felépítés Tartalomtípusok Tartalomtípus hozzáadása Az új
tartalomtípusnak a Képgaléria nevet adtam, majd elvégeztem a szükséges beállításokat (hozzászólások, szerző és dátum megjelenésének tiltása). A beállítások mentése után hozzáadtam egy új mezőt, aminek a típusa Kép (Image) lett, majd szerkesztettem a mező beállításait: Fájl könyvtár: megadható a feltöltött fájlok mentési helye (üresen hagyva alapértelmezetten a /sites/all/files mappába kerülnek a feltöltött fájlok). A legnagyobb felölthető méret alapértelmezetten számomra kevésnek bizonyult (2MB), amit a PHP fájl feltöltési méret beállítása korlátoz. Ennek módosításához a mezőt üresen 44 hagytam, a webszerver PHP konfigurációját módosítottam (hiába adtam meg itt nagyobb méretet, a webszerver beállítása akkor sem engedett nagyobb fájlt feltölteni): szerkesztettem a webszerver konfigurációját tartalmazó php.ini fájlt (Linux rendszeren elérési helye: /etc/php5/apache2/php.ini) a
Data Handling szekcióban található a legnagyobb feltöltési méretre vonatkozó beállítás, ezt módosítottam 50MB-ra: post max size = 50M a fájl mentése után újra kellett indítani az Apache szervert, a beállítások érvénybe lépéséhez Az Alt és a Title mezők használata szükséges a képkezelő helyes működéséhez, az értékek számának pedig Korlátlan értéket állítottam be (a hozzáadható fájlok száma). A beállítások mentése előtt beállítottam a kötegelt fájlok felöltését lehetővé tevő Multiupload Filefield Widget és Multiupload Imagefield Widget modulokat. A jobb felső sarokban található a Felületi elem típusa fülre kattintva, a felületi elem típusát állítottam át Multiupload típusra (csak akkor lesz választható a legördülő listából, ha korábban engedélyezve lett a modul). Ez a beállítás a fájlok feltöltéséhez a Multiupload Filefield Widget és Mulitupload Imagefield Widget modulokat fogja
használni, így nem kell egyenként kijelölni és hozzáadni a feltölteni kívánt állományokat, lehetővé teszi a kötegelt fájl-feltöltést. A következő lépésben feltöltöttem a saját fotógalériámat. Az új tartalom létrehozásánál a tartalom típusának a korábban létrehozott Képgaléria típust kell választani. Címet adtam a tartalomnak (Fotógaléria), majd a kép mezőnél feltöltöttem a képeket (egyszerre több fájl kijelölése lehetséges). A képek feltöltése után mentettem a tartalmat; nem rendeltem menüpontot a tartalomhoz, majd a megjelenítésnél fogok menüpontot létrehozni. Ezzel elkészült a képgaléria tartalom, az adatbázisban le is tárolódott, de még nem látható; gondoskodni kell a tartalom megjelenítéséről, az oldalon való közzétételéről. Erre használható a Views modult, ami a tartalmak elhelyezését, specifikus megjelenítését teszi lehetővé az adott oldalon. A Views modul sokoldalúan felhasználható
különféle nézetek elkészítéséhez, számos beállítási lehetőséggel rendelkezik, ezért egy nagyon hasznos modulnak tartom. Készítettem egy új képgaléria nézetet: Felépítés Views Add new view 45 A nézet neve tetszőleges, nálam Kepgaleria. Az oldal megjelenésében a megjeleníteni kívánt adat a Tartalom lesz, típusa pedig a létrehozott Képgaléria tartalom típus. Bejelöltem az oldal létrehozása mezőt (Create Page), a megjelenítési formátumot (Display format) rácsnézetre állítottam, mezők megjelenítésével (Grid of fields). A megjelenési mód tetszőlegesen változtatható, ez a képek miniatűr előnézetét határozza meg, viszont a megjelenítendő tartalomtípusnak a mező (fields) típust kell megadni. Itt rendeltem menüt a tartalomhoz, nevet adtam a menüpontnak (Fotógaléria), és kiválasztottam, hogy a főmenüben legyen elérhető. A Continue&Edit gombra kattintás után a részletes beállítások ablakban a
megjeleníteni kívánt mezőknél (Fields) hozzáadtam a kép mezőt (Tartalom: kep). Alul az automatikus előnézetben már láthatóvá is váltak a feltöltött képek. 11. ábra: Új nézet létrehozása a képgaléria megjelenítéséhez 46 Ezzel elkészült a képgaléria. A képnézegető funkció létrehozásához módosítottam a kep mező beállításait. A Formatter mezőnél kiválasztottam a Lightbox2 modult (sok fórum és leírás a Colorbox modult ajánlja a megjelenítéshez, de a Drupal 7.22-es verziójával nekem nem működött megfelelően, így került kipróbálásra a Lightbox2 modul, ami tökéletesen működik), így a kis képekre kattintva a Lightbox felülete fog felugrani, ahol a képeket már lehet lapozni. A Lightbox2 többféle megjelenítési módot támogat, amik közül válogathatunk: kiválaszthatjuk az oldalon megjelenő képek előnézeti méretét, és a Lightbox-ban megjelenő kép méretét is (thumbnail, medium, large, original)
valamint diavetítő funkcióval is rendelkezik, ehhez a Lightshow funkció kiválasztása szükséges. 12. ábra: A Képgaléria nézet beállításai 47 13. ábra: A Lightbox képnézegető megjelenítési formátumai 8.42 Az edző blogjának létrehozása A megrendelőnek az volt a kérése, hogy legyen egy olyan része az oldalnak, ahova az edző a meccsek után értékelést írhat a csapatról, és ezt csak ő szerkesztheti. Ehhez egy egyszerű blogot hoztam létre, melynek első lépése a Blog modul (ahol egy adott szerepkörrel rendelkező felhasználó információkat tehet közzé) engedélyezése, amit más a felhasználó létrehozásnál meg is tettem. Az engedélyezés után a tartalom hozzáadásánál meg is jelenik az új Blogbejegyzés tartalomtípus. Létrehoztam egy új Blogbejegyzés tartalmat, a szükséges beállítások elvégzése után (hozzászólások letiltása, menüpont létrehozás), a Szerzői információknál hozzáadtam a blog
szerkesztéséhez létrehozott felhasználót (Féder József), aki majd a blogot fogja szerkeszteni. 8.43 Automatikusan frissülő hírek létrehozása, RSS hírcsatorna segítségével A Drupal 7 magjának alaptartozéka a RSS hírolvasó modul, melynek neve: Aggregator. A modul engedélyezése után, a modul beállításainál megadtam egy hír elavulásának idejét (4 hét). Az egy oldalon megjelenítendő elemek számát a nézet létrehozásánál definiáltam A Beállítások/Hírolvasó menüpontra navigálva, a megjelenő ablakban hozzáadtam az NSO (Nemzeti Sport Online) hírcsatornáját (Hírcsatorna hozzáadása), ahol megadtam a hírcsatorna RSS URL-jét (http://nemzetisport.hu/static/rss cikkek egyebfocixml), és 48 beállítottam, hogy óránként keressen friss híreket az RSS motorja. Több RSS hírcsatornát is hozzáadható, viszont ezek megjelenítését külön-külön kell definiálni. A Hírcsatornák áttekintése menüpontban az elemek frissítésére
kattintva pillanatok alatt le is tölti az aktuális híreket. A hírolvasó elkészültével közzétettem az oldalon a Views modul használatával, egy új nézet létrehozásával: Felépítés Views Add new view A megjeleníteni kívánt adattípusnak az RSS hírolvasó adattípusát kell megadni (Aggregator item). Ahogy a fotógaléria készítésénél, itt is bejelöltem az oldal létrehozása mezőt (Create Page), ahol beállítottam az egy oldalon megjelenő elemek számát (10), a megjelenési formátumot (rácsnézet, formázatlan lista, táblázat, HTML lista), majd menüpontot rendeltem hozzá (Create menu link). A további beállításoknál a megjelenített mezőknél (Fields) hozzáadtam a hírolvasó azon mezőit, amelyek meg fognak jelenni az oldalon. 14. ábra: Az RSS Hírolvasó megjelenítési beállításai 49 A következő hírolvasó mezők közül válogathatunk az oldalon történő közzétételre: Hírolvasó: Cím Hírolvasó: Szerző
Hírolvasó: Törzs Hírolvasó: Időbélyeg Hírolvasó: Hivatkozás Hírolvasó: GUID, Item ID Én a szerző, időbélyeg és a törzs mezőket választottam ki. A rendezés alapértelmezetten név szerint történik, ezt átállítottam, hogy dátum szerint rendezze sorba a híreket. Hozzáadtam egy új rendezési szűrőt (Sort Criteria). A szűrő, ami alapján rendezve lesznek az elemek a Hírolvasó: Időbélyeg szűrési feltétel, csökkenő sorrendre állítva (descending). 8.44 Tabella kialakítása A megrendelővel történő egyeztetés során arra jutottunk, hogy a tabellát jelenleg nincs aki folyamatosan frissítse a mérkőzések után, így megemlítettem egy külső forrásból történő tabella beimportálásának lehetőségét az oldalra. A megrendelőnek tetszett az ötlet, de azt szerette volna, hogy tabella az oldalon belül jelenjen meg, ne új lapon nyíljon meg. Ezt az insertFrame (IFrame) modul segítségével valósítottam meg. Az
IFrame tulajdonképpen egy HTML elem, amely lehetővé teszi külső oldalak beágyazását az adott oldalra. A telepítés és engedélyezés után létrehoztam egy új szűrőt a beviteli formátumokhoz: Beállítások Szövegformátumok Szövegformátum hozzáadása Megkerestem és hozzáadtam az IFrame szűrőt (Include iFrame with auto-height feature), majd mentés után tartalom hozzáadásnál kiválasztottam az IFrame beviteli formátumot. A szövegtörzsben megadtam a beágyazandó oldal URL címét, és a beágyazás méretét: [[[http://www.mlszinfo/pr public/tabella/egy verseny fordulo tabe lla 700.asp?p verseny kod=8020&p fordulo=21 width=570px]]] 50 height=600px 8.45 Fórum A beépített Forum modul engedélyezése után létrehoztam a Fórumot (Fórum tartalomtípus hozzáadás, menü hozzárendelés), és kialakítottam az egyes fórumtémákat. A Felépítés Fórum menüpontban van lehetőség a Fórum beállításaira, valamint fórumcsoportok
és fórumtémák létrehozására is. 8.5 Megjelenés (sminkek) Az oldal megjelenéséhez kétféle, modern dizájnnal rendelkező sminket is kerestem (kék, fekete színösszeállítás) a megrendelő igényeinek megfelelően. Olyan sminket kellett keresnem melynek a fejlécében található háttérkép szerkeszthető, így a kért banner elhelyezhető. Találtam is két ilyen sminket: Black Piano, Professional Responsive Theme Mindkét smink kompatibilis a Drupal 7 verzióval, valamint mindkettőnek a felépítése kis képekből áll össze, CSS stílusformázással. A sminkeket a /sites/all/themes könyvtárba kell másolni, majd a Megjelenés menüpontban engedélyezni kell azokat, és beállítani, hogy melyik legyen az alapértelmezett. Megkerestem a fejlécben elhelyezkedő képeket, leellenőriztem a méretüket (ezek természetesen ingyenes template-ek, így szabadon szerkeszthetők), majd egy informatikus ismerősömet megkértem, hogy készítsen fotómontázst a
megadott méretekkel, ami majd az oldal bannerje lesz. Az elkészült banner képeket egyszerűen kicseréltem az eredeti fájlokkal. Az eredeti képek helye és mérete: blackpiano/img/top.png – 959x159 képpont professional-responsive-theme/images/slider shine.png 15. ábra: Az elkészült banner képek 51 – 1462x194 képpont 8.6 PHP kód futtatása Drupal alatt A Drupal rendszer lehetővé teszi PHP kód futtatását az oldalon. Erre szükség lehet, ha speciális igényeinkhez nem létezik megfelelő modul, esetleg egyedi fejlesztésű alkalmazást szeretnénk beintegrálni a Drupal oldalba. A PHP kód felismeréséhez és futtatásához szükséges a PHP Filter modul bekapcsolása. A modul engedélyezése után szöveg beviteli formátumok között választható lesz a PHP code formátum, ami gondoskodik a PHP kód fordításáról. Hosszabb kód beágyazása esetén célszerű a kódot egy külön PHP fájlba elhelyezni, majd egy include direktívával (esetleg
függvényhivatkozással is) hivatkozni a külső fájlra, és a fájl egyes függvényeire. A funkció működésének teszteléséhez létrehoztam egy új tartalmat, PHP menüpont címmel, amit később, az oldal publikálásakor kikapcsoltam. Teszt jelleggel írtam egy egyszerű teszt.php fájlt, amit elhelyeztem a Drupal gyökér jegyzékébe, és egy függvényhívással futtattam az oldalon. teszt.php fájl tartalma: <?php function fuggveny(){ echo utf8 encode("PHP kód futtatás sikeres!!!"); } ?> A teszt.php fájl futtatása: 16. ábra: PHP fájl futtatása 52 9. A kész oldal publikálása 9.1 Drupal rendszer költöztetése A fejlesztés elkészültével a kész oldal áthelyezésre került az Elektro-Gold Bt. webtárhelyére, így már az Interneten keresztül is elérhetővé vált az oldal. A Drupal oldal költözetéséhez az alábbi lépéseket hajtottam végre: 9.11 Az oldal lementése kikapcsoltam a rövid webcímek használatát
(Beállítások Rövid webcímek) az oldalt offline állapotba kapcsoltam (Beállítások Karbantartási mód) töröltem a gyorstár teljes tartalmát (Beállítások Teljesítmény Gyorstár teljes törlése) exportáltam a Drupal-hoz használt adatbázist egy SQL fájlba a PHPMyAdmin segítségével (Futsal táblázat kijelölése Exportálás) lemásoltam a Drupal teljes jegyzékét (/var/www/futsal mappa) 9.12 Az oldal visszaállítása egy másik tárhelyre a lementett adatbázis fájl tartalmát (futsal.sql) importáltam egy új adatbázisba FTP kapcsolaton keresztül feltöltöttem a Drupal jegyzékét az új tárhelyre a sites/default/settings.php fájlban megkerestem a $db url szekciót, majd szerkesztettem az új helyen létrehozott adatbázis beállításainak megfelelően: mysql://mysql felh nev:mysql jelszo@mysql server/adatb nev; Ezek elkészültével böngészőből megnyitottam az oldalt, visszakapcsoltam a Rövid
webcímek használatát, majd visszaállítottam online állapotba az oldalt. 9.2 Domain regisztráció Az elkészült honlap a végleges helye a www.ovsefutsalhu domain név alatt lesz elérhető A domain regisztráció jelenleg folyamatban van, két hét a domain regisztráció átfutási ideje. A weboldalnak az ózdi Elektro-Gold Bt biztosítja a tárhelyet, ahol ideiglenesen már megtekinthető a kész oldal a http://www.egoldhu/futsal címen 53 ÖSSZEGZÉS Szakdolgozatom célja a tartalomkezelő rendszerek (CMS), ezen belül a Drupal tartalomkezelő rendszer részletes megismerése, használatának elsajátítása volt, egy konkrét weboldal fejlesztésén keresztül. A honlap fejlesztése során többször is akadályokba ütköztem (egy-egy modul nem működött megfelelően, verzió-ütközés, stb.), azonban minden problémára sikerült megoldást találnom. Ez nem azt jelenti, hogy a Drupal még nem eléggé kiforrott rendszer, csupán még akadnak hiányosságai, de
kis munka és idő ráfordításával minden problémára található alternatív megoldás. Logikájának megértése és elsajátítása is kicsit időigényesebb volt, azonban a befektetett munka idővel megtérül, ugyanis a későbbikben egy új oldal fejlesztésénél, az elsajátított tudás már rutinszerűen alkalmazható. Bár még vannak hiányosságai a Drupal rendszernek, a hatalmas támogatói és fejlesztői közösségnek köszönhetően folyamatos fejlődés alatt áll. Mindezek mellett a magyar Drupal közösség tagjai rendkívül segítőkészek, a felmerülő problémák megoldásában szívesen rendelkezésünkre állnak. Hamarosan megjelenik a Drupal 8, amely még több lehetőséget, újdonságot hoz magával, várhatóan javítva elődje hiányosságait is. A Drupal napjaink egyik vezető tartalomkezelő rendszerévé nőtte ki magát, számos honlap készül Drupal alapokon, szívesen alkalmazzák nagyvállalati környezetben is (intranet, ügyfélkapu,
Internetes portálok) kiemelkedően jó biztonsága, széleskörű funkcionalitása miatt. A Drupal egy sokoldalúan felhasználható keretrendszer, ami elsősorban Webfejlesztők számára készült, így a megvalósítás és alkalmazhatóság terén kiemelkedik a többi CMS közül. Moduláris felépítésének köszönhetőn funkcionalitása könnyűszerrel kibővíthető új modulok beintegrálásával a rendszerbe; több ezer letölthető modul létezik a Drupal-hoz, és ezek száma folyamatosan növekszik. Speciális, egyedi igény megvalósítása esetén, ha nem sikerül megfelelő modult találnunk, a Drupal lehetővé teszi külső PHP fájlok beágyazását és futtatását az oldalon. Sőt az egész Drupal környezet is PHP nyelven íródott, így magunk is írhatunk saját modulokat. Ezáltal elmondható, hogy a Drupal-ban rejlő lehetőségek tárháza határtalan. Szakdolgozatomban a Drupal tartalomkezelő rendszer alkalmazhatóságának, funkcióinak csak töredéke
került bemutatásra; a jövőben szeretnék webfejlesztéssel foglalkozni, ezért tervezem a Drupal még alaposabb megismerését, és remélem, hogy a megszerzett tudást a későbbiekben kamatoztatni tudom. 54 SUMMARY The aim of my thesis is the get known, and learning to use the content management systems (CMS), including the Drupal content manager system through designing an actual web page. However I faced some obstacles during the designing of the webpage (some modules did not work properly, version-crashes), I found solutions for each and every problem. This does not mean that the Drupal is not a fully completed system, but it has some deficiencies, though with some time and work there is an alternative solution for every problem of it. The learning and understanding of the logic of it was a little timeconsuming, but it worth working on it because the acquired knowledge can be used as a routine during an actual website design. Though the Drupal has its own deficiencies,
thanks to the big supporting and developing community it is improving continuously. Beside of these, the Hungarian Drupal community is very helpful, and they are ready to work on the solution of the problems that occur. The Drupal 8 is coming soon, which will have more options, novelty and likely to improve the existing deficiencies of its predecessor. The Drupal recently became the leading content management system; many web pages created with it. Big corporations like to use it (intranet client gateways, Internet portals) because of its good safety and wide range of functionality. The Drupal is a versatile framework system, which primarily has been made for web designers so it is an outstanding CMS on the fields of realization and application. Due to its modular build up, its functionality easily can be expanded by integrating new modules to the system; there are thousands of downloadable modules for it, and this number is increasing day by day. In case of special or custom needs,
if there is no proper module available, the Drupal makes it accessible to integrate and run PHP files on the page. What more, the whole program was written in PHP programming language so everybody can easily create their own modules. Because of this, it can be said that the number of opportunities with Drupal are infinite. In my thesis only a fraction of the Drupal’s content management systems’ functions and applicabilities are presented; in the future I would like to do web designing, so I am planning to get the Drupal known better, and I hope that I would use the acquired knowledge later on. 55 Irodalomjegyzék [1] zsimi.hu: CMS rendszerek - http://wwwzsimihu/zsimi/egyeb-temak/weboldal-keszites-szerkesztes/cmsrendszerek (2013-04-03) [2] cms.couk: Types of CMS - http://wwwcmscouk/types/ (2013-04-03) [3] a3webtech.com: How CMS works - http://wwwa3webtechcom/indexphp/how-cms-workshtml (201304-07) [4] Kerepesi László – Saját fejlesztésű CMS létrehozása (szakdolgozat,
2009.) http://huscribdcom/doc/16769581/Kerepesi-Laszlo-Szakdolgozat (2013-04-07) [5] cmsmadesimple.hu: A legjobb fórummotor http://wwwcmsmadesimplehu/forum/indexphp?topic=800 (2013-04-09) [6] nirmal.com: 13 ways to compare CMS - http://wwwnirmalcomnp/home/13-ways-to-compare-opensource-cmshtml#UWFeHpM5mPB (2013-04-09) [7] itmegoldasok.hu: Nyílt és zárt forrású rendszerek összehasonlítása http://itmegoldasokhu/archivumok/233-a-nyilt-es-a-zart-forrasu-rendszerek-oesszehasonlitasahtml (201304-10) [8] codeguide.hu: Drupal, Wordpress, Joomla összehasonlítás - http://codeguidehu/2013/01/24/druplawordpress-joomla-osszehasonlitas/ (2013-04-10) [9] http://drupal.org/about/history (2013-04-12) [10] http://buytaert.net/drupal-download-statistics-2008 (2013-04-12) [11] http://www.thewebhostingherocom/articles/brief-history-of-drupalhtml (2013-04-12) [12] weblabor.hu: Miért Drupal? - http://weblaborhu/cikkek/miertdrupal (2013-04-13) [13] http://drupal.hu/kezikonyv/tkr (2013-04-13) [14]
http://drupal.org/about/awards (2013-04-14) [15] www.rackspacecom/knowledge center/article/cms-comparison-drupal-joomla-and-wordpress (201304-15) [16] http://www.dckapcom/drupal-joomla-wordpress-comparisonhtm (2013-04-15) [17] http://tips.webdesign10com/drupal/about-drupal-311html (2013-04-15) [18] http://drupal.org/drupal-70/hu (2013-04-17) [19] http://drupal.org/requirements (2013-04-17) 56