Joomla! mint keretrendszer

Hasonló dokumentumok
Internet alkamazások Készítette: Methos L. Müller Készült: 2010

WordPress segédlet. Bevezető. Letöltés. Telepítés

Dobozos vagy egyedi szoftver

A WORDPRESS TELEPÍTÉSÉNEK LÉPÉSEI

Webtárhely létrehozása a helyen. Lépések Teendő 1. Böngészőbe beírni: 2. Jobb oldalon regisztrálni (tárhelyigénylés).

XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban

MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.

Digitális aláíró program telepítése az ERA rendszeren

Gyakorlati vizsgatevékenység A

Digitális aláíró program telepítése az ERA rendszeren

Egyetemi adatbázis nyilvántartása és weben

CMS-en túli webes megoldások

Miért érdemes váltani, mikor ezeket más szoftverek is tudják?

Gyakorlati vizsgatevékenység B

Tel.: 06-30/ Közösségi megosztás előnyei és alkalmazása

A DigiKresz internetes gyakorló program hatékony segítség az elméleti oktatást követő vizsga eredményességének növelésében.

Bár a szoftverleltárt elsősorban magamnak készítettem, de ha már itt van, miért is ne használhatná más is.


Bemutató anyag. Flash dinamikus weboldal adminisztrációs felület. Flash-Com Számítástechnikai Kft Minden jog fenntartva!

Tárhely-választás. hogyan igazodjunk el a tárhely-szolgáltatók világában

Rendszerelemzés. Konstantinusz Kft.

Silent Signal Kft. Webáruházak informatikai biztonsága Veres-Szentkirályi András Marketingtorta - 4 1

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Adatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008.

Felhasználói kézikönyv. Verzió: 1.01

BŐVÍTMÉNYEK TELEPÍTÉSE ÉS SZERKESZTÉSE WORDPRESS-BEN

BarAck.Net. Internetes csomagkezel. Felhasználói kézikönyv V 1.0. (2011. július 20.)

Felhasználói segédlet

Dropbox - online fájltárolás és megosztás

InCash számlázó program és a Webshop Hun rendszer összekötése

First Voice Kft. Stilldesign Üzletág

PHP és Java összehasonlítás

FRISSÍTÉSI LEÍRÁS A WINIKSZ PROGRAMCSOMAGHOZ

Csoport neve: Kisiskolások Feladat sorszáma: 2. Feladat címe: Oktatási intézmény honlapja, oktatási naplóval. E-Project.

PHP-MySQL. Adatbázisok gyakorlat

Honlapkészítés egyszerűen. Tegyük tisztába a dolgokat!

Programozói elvárások. avagy mit vár tőlünk a munkahelyünk

Webes alkalmazások helyes szerkezete PHP-ban

FIR WEBMODUL ALKALMAZÁS DIÁKIGAZOLVÁNY IGÉNYLÉS

Iman 3.0 szoftverdokumentáció

POSZEIDON dokumentáció (1.2)

Regisztráció Regisztráció WINTAX programrendszer regisztrációja

iseries Client Access Express - Mielőtt elkezdi

Tisztelt Felhasználó!

Egyetemi könyvtári nyilvántartó rendszer

VARIO Face 2.0 Felhasználói kézikönyv

Gyakorlati útmutató az online jogi továbbképzéshez

A MOODLE KERETRENDSZER TELEPÍTÉSE

Az autorizáció részletes leírása

Egzinet Partner Portál

DebitTray program Leírás

Technikai információk fejlesztőknek

MINDEN A HELYÉN! Minden egy helyen. Szegedi Antal Pásztor Zsolt. itsmf Magyarország 11. Szemináriuma Budapest, október 30.

Kézikönyv. Szelekciós jegyzék 2.

Tele Élettel Programportál. Adminisztrátori segédlet

ÁSZF 1. melléklet. GST-Max Kereskedelmi és Szolgáltató Kft Budapest, Völgy utca 32/b. részéről

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Hardver és szoftver követelmények

EPER - mobil Szakértői Integrált Pénzügyi Számviteli Rendszer

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

ContractTray program Leírás

Weboldalkészítés sablonok segítségével Nyitrai Erika. Miről lesz szó? WEBOLDALKÉSZÍTÉS SABLONOK SEGÍTSÉGÉVEL. Saját honlapot szeretnék


Webes alkalmazások fejlesztése

Az ötlettől a honlapig Webszerkesztés alapismeretek bevezető

Webes étkezés rendelés felhasználói kézikönyv

HVK Adminisztrátori használati útmutató

Facebook album beillesztése az oldalba

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

Programozási alapismeretek 4.

Hol indul egy weboldal marketingezése?

Felhasználói segédlet

Mit? Online tortarendelés

Kezelési útmutató. GWCHU új weboldal március

ALKALMAZÁSOK ISMERTETÉSE

Online misszió lehetőségei Drupal [+ Google]

A szerzõrõl... xi Bevezetés... xiii

Mobil Partner telepítési és használati útmutató

C++ programozási nyelv

DigitAudit a felhőben. Azonnal kipróbálható DEMÓ, Ingyenes PRÓBA szeptember 30-ig.

Apache, MySQL, PHP/Perl NetWare-n

web works hungary Rövid technikai tájékoztató Mars (mars.intelliweb.hu) szerverünkkel kapcsolatban meglévő és új ügyfeleink számára.

Belépés Budapest, Ady Endre utca

A Statisztikai adatszolgáltatás menüpont alatt végezhető el az adatlap kitöltése. 3 Statisztikai adatszolgáltatás menetének részletes bemutatása

GPRS Remote. GPRS alapú android applikáció távvezérléshez. Kezelési útmutató

Kedves Openhouse-os munkatársak!

Tisztelt Ügyfelünk! Változások a 6-os verzióhoz képest:

Hogyan válasszunk szabad szoftvert?

VirtueMart bővítmény letölthető termékek eladásához

Téradatbázisok használata QGIS-ből A DB kezelő modul 2.2 verzió

Partner. kezelési útmutató

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

1. Origin telepítése. A telepítő első képernyőjén kattintson a Next gombra:

StartÜzlet online számlázó modul Használati Útmutató

Kulcsszóoptimalizálás. a gyakorlatban

OE-NIK 2010/11 ősz OE-NIK ősz

Átírás:

Konstantinusz Kft. 2011

1 Tartalomjegyzék 1 Tartalomjegyzék... 2 2 Bevezetés... 3 3 Mely funkciói hasznosak rendszerkészítés esetén?... 4 3.1 Bejelentkezés... 4 3.2 Adatbázis csatoló... 5 4 Joomla vagy saját CMS... 6 4.1 Saját CMS előnyei és hátrányai... 6 5 Telepítés és előkészületek... 8 6 Template készítés... 9 6.1 Mi is az a template?... 9 6.2 Miért kell templatet használni?... 9 6.3 Template szerkezete... 10 7 Ajánlott komponensek... 11 7.1 Webshop - VirtueMart... 11 8 Összefoglalás... 12 2 / 12

2 Bevezetés Az esettanulmány célja az egyik legelterjedtebb CMS (Content Management System - Tartalom kezelő rendszer) bemutatása programozói szemmel. Nem felhasználói funkcióit szeretném ismertetni, hiszen abból számtalan leírás található az interneten, sokkal inkább kitérek arra, hogy mire kell odafigyelni a használatánál, és miért ajánlom a használatát, honlap készítéshez, valamint rendszer fejlesztéshez is (természetesen csak akkor, ha PHP + MySQL alapú rendszert akarunk fejleszteni). Mi is az a CMS? A CMS abban segít minket honlap készítésben, hogy ad egy felületet, ahol módosíthatjuk a honlap menüpontjait, és a honlap tartalmát. Ez által, nem csak FTP-n keresztül programozó tudja az oldalt szerkeszteni, hanem bizonyos mértékig egy egyszerű felhasználó, aki alap számítógépes ismeretekkel rendelkezik. Miért jó az ügyfélnek, ha ő szerkesztheti a saját honlapját? Mert nem kell fizetnie azért, hogy valaki szerkessze. Nem kell várnia arra amíg a honlap készítő elvégzi a módosítást. A Joomla! egy PHP és MySQL alapú tartalom kezelő rendszer. Az alap koncepciója az, hogy különböző jogszintű szerzők, küldhessenek be tartalmakat és azokat lehessen megjeleníteni több különféle módon. Viszont az ilyen irányú felhasználása mellett kivállóan alkalmas honlap készítésre is. Ekkor a honlap üzemeltetője az egyetlen aki tartalmat hozhat létre vagy módosíthat. Segítségével hamar könnyen módosítható oldalt kapunk, kis energia befektetéssel. A hivatalos oldalon (http://extensions.joomla.org/) az esettanulmány írásának pillanatában 5915 darab modul és komponens áll rendelkezésre, amelyek különösebb szakértelem nélkül telepíthetőek, használhatóak. A készítés időpontjában a legfrissebb 1.5.22.-as verzió volt a legújabb verzió, ezért ezzel a verzióval kapcsolatban írom le tapasztalataimat. 3 / 12

3 Mely funkciói hasznosak rendszerkészítés esetén? Itt olyan funkcióit fogom ismertetni ami általánosan használható nem csak honlapkészítésre. A Joomla az MCV (Model Controller View) koncepciót követi. Ez nagyban megkönnyíti a dolgunkat, ha komponenst vagy modult akarunk fejleszteni hozzá. Mi a különbség komponens és modul között? A Joomla!-ban van egy kiemelt hely a templateben a component oda csak komponens típusú tartalmak jelenhetnek meg (pl.: statikus tartalom megjelenítő a com_content). Ezzel szemben a modulok csak a module típusú helyen jelenhetnek meg. Gyakorlati példa ként úgy fogalmazható meg, hogy a komponens van középen a modulunk pedig körülötte bárhol. Fejlesztési szempontból azonban nincs különbség, hogy komponenst vagy modult írunk. Mivel van egy kész keret rendszerünk, ezért mindent attól kérdezünk le, és nem magunknak példányosítjuk, ez ha saját keretrendszert fejlesztünk is hasznos. Az alábbi oldalon láthatjuk a keretrendszer teljes dokumentációját: http://api.joomla.org/elementindex_joomla-framework.html Amire ebből mindenképpen szükségünk lesz az a JFactory. Ennek segítségével kérhetünk adatbázis csatlakozási és email küldési lehetőséget. Ha csak ezt ismerjük akkor már magunk is írhatunk egy saját rendszert a keret alá, és nem esünk a kezdő programozók hibáiba. 3.1 Bejelentkezés Felhasználót lehet létrehozni, amivel többet tud, mint bármely programozó által írt első rendszer az az, hogy meg tudja mondani, hogy éppen ki van belépve az oldalon, és ki is lehet léptetni azt akit nem szeretnénk, hogy be legyen jelentkezve. Ez egy rendszer esetében akkor fontos, ha éppen frissítést akarunk telepíteni, és biztosak akarunk lenni benne, hogy használja a rendszert senki. 4 / 12

Ha így kezeljük a felhasználók belépését akkor biztosak lehetünk benne, hogy nem követünk el olyan hibát ami súlyos biztonsági kockázatot jelent. Az egyik ilyen rendszeresen visszatérő hiba, hogy láthatóan a lekérdezésben szerepel, hogy user_id=2, és ha ezt a számot átírjuk azonnal egy másik felhasználóval vagyunk bejelentkezve. Az éppen belépett user lekérdezése: $user=jfactory::getuser(); 3.2 Adatbázis csatoló A joomla adatbázis csatolója, megoldja azt a problémát amivel kezdőként rengeteg fölösleges napot lehet eltölteni. Ez a karakter kódolás, PHP + MySQL környezetben általában problémát jelent, hogy az adatbázisnak és magának az oldalnak milyen a karakter kódolása. Mindenki számára azt javaslom, hogy UTF-8 at használjon. Külföldi oldalak szoktak ISO8859-1 -es karakter kódolást alkalmazni, ennek eredményeként, a nevekben az áéőúóüöí karakterek rendre hibásan jelennek meg. Ezt, ha a joomla adatbázis csatolóját használjuk megúszhatjuk. Az adatbási egy példányát a következő paranccsal kérhetjük le: $db=jfactory::getdb(); ezek után a $db->setquery([sql kód]); $db->loadassoclist(); Függvényekkel gyakorlatilag bármit meg lehet valósítani, írhatunk saját model-t, ami megvalósítja a rendszerünknek szükséges funkciókat. 5 / 12

4 Joomla vagy saját CMS A honlap készítő cégek többsége saját CMS-t, Webshop-ot ír ezek között megtalálhatóak nagyon jók, és rendkívül rossz minőségűek is. Ha valaki elkezdi a honlap készítést akkor javaslom ne úgy kezdje, hogy az első 6-8 hónapban kifejleszt egy CMS-t ami olyan amilyen. Tapasztalatom szerint frissen végzett programozók első programozási munkája meglehetősen gyengére szokott sikerülni. Hiába tanulják meg az egyetemen a tervezés lépéseit, adatbázisoknál a normalizálás folyamatát, ezt az egyetemről kilépve szinte azonnal elfelejtik használni. Többször hallottam tőlük, hogy Ó minek, fejben kigondolom, úgyse nagy rendszer. Ha ilyen hozzáállással állunk neki akkor szinte biztos, hogy bele bukunk az adott fejlesztésbe. Első honlaphoz vagy webes rendszerhez nem javaslom, hogy teljesen saját rendszerbe kezdjen. Ennek a legfontosabb oka az, hogy a tervezés első lépését, követelmények meghatározása, nem fogjuk tudni megcsinálni, hiszen nincs tapasztalatunk, hogy miket kell tudnia egy ilyen rendszernek. Itt nem csak arra kell gondolni, hogy menüpont ha rákattint valaki akkor középen megjelenik a tartalom. Hanem bejelentkezés, regisztrációs folyamat, különböző aktív tartalmak. Hányan vannak online. Ezek némelyikéhez nagy szakértelemre van szükség, hiszen minden látogatás külön szálon (process) fut és az sem biztos, hogy egy időben futnak. 4.1 Saját CMS előnyei és hátrányai Az alábbiakban összefoglalom az egyéni CMS előnyeit és hátrányait egy meglévő CMS-hez képest. Egyéni CMS előnyei: Egyéni, senki sem ismeri a hibáit, ha van ilyen: Találkoztam egy olyan honlapkészítő céggel akinek a saját CMS-e a bárki által élérhető /adatok könyvtárban txt-ben tárolta a felhasználói nevet, és a jelszó MD5 kivonatát. Ez ha nem elég hosszú a jelszó akkor 3-4 6 / 12

perc alatt törhető. Ennek ellenére az oldal működött hiszen kis látogatottságú oldal, és senki sem próbálkozott, hogy milyen könyvtárak lehetnek. Minden sorát ismerjük a kódjának: Ez csak eleinte igaz. Ha nincs megfelelően ellátva commentel, akkor ha 2 hónap múlva biztos, hogy újra meg kell ismerkednünk vele. Pontosan azt tudja amit kell semmi többet: Ez egyfelől előny, hiszen gyorsan fut és nem futtat olyan kódokat amiknek nem vesszük hasznát. Másik szemszögből viszont, ha új funkció kell bele akkor biztosan nekünk kell megírni azt. Joomla! előnyei: Sok funkciója van amire ha nem is első lépésben, de később szükség lehet rá. Több millióan tesztelik világszerte. Ha bármi problémánk van találhatunk megoldást bármelyik Joomla fórumon. A közösség fejleszti adja ki az újabb frissítéseket amiket ingyen elérhetünk. Rengeteg modul van hozzá amit szintén nem kell kifejlesztenünk. 7 / 12

5 Telepítés és előkészületek Telepítéshez elegendő egy megfelelő PHP és MySQL-t támogató tárhelyet bérelnünk. A feltöltés után megnyitjuk a tárhelyünk címét, és installációs felületen keresztül beállítjuk a Joomla-t. Célszerű megkérdezni a tárhelyszolgáltatót előre, hogy támogatja-e Joomla telepítését. 8 / 12

6 Template készítés Honlap készítésnél, ez az ami látszik az egész munkából a többi csak körítés. A template a template könyvtárba kerül kötelezően tartozik hozzá, egy index.php és egy templatedetails.xml file. Első template-ünknél nyugodtan a beépített templatek valamelyikéből ezeket átmásolhatjuk és ebből indulhatunk ki. Mielőtt neki állunk célszerű megismerkedni a joomla pár alapfogalmával. Léteznek modulok, ezeket általában fejléc lábléc bal vagy jobb oldali sávjában szerepel egy weboldalban. Van egy kiemelt modul, a komponens (component). A tartalmak csak ebbe a pozícióban jelennek meg. Ennek szokás egy oldalon a legnagyobb teret hagyni. 6.1 Mi is az a template? Egy olyan HTML szerkezet, amely minden oldalon megjelenik ezáltal kialakítva a honlap szerkezetét, és ezen belül van lehetőségünk különböző tartalmak elhelyezésére. Úgy kell felfogni az egészet mint egy szöveg helyettesítés. Egy adott helyre a felhasználó kattintásaitól függően mindig más szöveget helyettesít be. 6.2 Miért kell templatet használni? Statikus oldalaknál (csak HTML, semmi működő kód), találkoztam olyan megoldással, hogy 50-60 HTML oldal, benne volt mindegyikben a teljes szerkezet. Nem is volt gond, egészen addig amíg az ügyfél nem kérte meg, hogy alakítsák át az oldal szerkezetét, a menü felülről kerüljön bal oldalra. Ezt 50-60 oldalon átalakítani, és utána minden oldalon letesztelni, rendkívül időigényes feladat. 9 / 12

Template felfogás esetén ezt egy helyen átalakítjuk, és kész. Azért javaslom mindenkinek, hogy ebben a felfogásban készítsen honlapot, mert a későbbi módosítás nem annyira időigényes feladat. Saját maga dolgát könnyíti meg ezzel. Ha nem használunk template-et az olyan mintha a programozásban nem használnánk ciklusokat, hanem ha egy kódnak 60-szor kell lefutnia, akkor hatvanszor egymás után beleírnánk a program kódba. 6.3 Template szerkezete Joomlában a template bizonyos kulcsszavakat tartalmaz, ezek a kulcsszavak mondják meg, hogy melyik modult, vagy komponenst kell beilleszteni az adott helyre. pl.: <jdoc:include type="modules" name="fejlec" /> Ez azt mondja meg a joomlának, hogy az adott helyre illessze be a fejlec névre hallgató modul pozíciót. Az alábbi kód azt mondja meg, hogy a kiemelt szerepet betöltő komponenst hova illessze be: <jdoc:include type="component" /> A rendszer üzenetek megjelenítéséhez szükséges kód: <jdoc:include type="message" /> Utóbbi kettő a legfontosabb, ha ezek megvannak akkor már működhet az oldalunk. A letölthető valamint beépített templatek nagyon összetettek mivel általánosra vannak kitalálva, pl.: ha van beállítva jobb oldali modul akkor és csak akkor jelenítse meg a jobb oldali sávot. Saját template esetén e miatt nem kell aggódnunk, a legtöbb oldalon van egy fix szerkezet és az nem változik oldalanként. pl.: a menüt nem helyezzük minden aloldalon máshova, ez nem is célszerű. 10 / 12

7 Ajánlott komponensek Mit is kell komponens alatt értenünk? Olyan komplex egységek melyek az oldal tartalmi részében jelennek meg. Ez bármi lehet, webshop, fórum, társkereső, ingatlan nyilvántartó, galéria, gyakorlatilag bármit amit egy honlaphoz egy ügyfél kérhet. Ezek közül csak a webshopra fogok kitérni részletesebben, hiszen egy webshop összetett rendszer, és általában nagyon hasonló tudásúnak kell lennie. 7.1 Webshop - VirtueMart Ez a komponens önálló rendszeré alakult mára és számtalan modul van ami VirtueMart-hoz tartozik. Van saját belépés modulja és több féle kategória megjelenítő modulja is. Általánosságban a megrendelő nem fogja tudni pontosan megmondani, nekünk, hogy mit szeretne. Ha ilyen körülmények között webshop fejlesztésbe kezdünk akkor az rendkívül időigényes lesz, tekintettel arra, hogy a megrendelő által megadott specifikáció annyiban merül, ki, hogy szeretnék egy webshopot. Ez alapján olyan webshopot írni amit a megrendelő később átvesz közel lehetetlen. Célszerű a megrendelőnek megmutatni egy működő webshopot, hogy az megfelelő lesz-e. Kezdő honlap készítőknek javaslom, hogy ismerjék meg, próbálják ki, mert első nekifutásra jó webshopot írni nem mindenki tud. Mivel a webshopban pénzt kezel az ember főleg bankkártyás fizetés, banki átutalás esetén, ezért jó, hogyha valaki élete első munkájánál nem webshopkészítéshez kezd hozzá. Az interneten több olyan webshop-pal találkoztam, amelyen egy termék árát a megrendelés feladója módosítani tudja, és gyakorlatilag annyiért rendeli meg a terméket amennyiért jónak látja. Ebbe a hibába nem szerencsés belefutni. 11 / 12

8 Összefoglalás Összességében a Joomlát nem keretrendszernek szánták, azonban kiválóan alkalmas arra MySQL és PHP környezetben. Webes rendszer készítés alatt itt nem csak összetett vállalat irányítási rendszert értek, hanem webshopot, fórumot, és egyéb honlapon megjeleníthető rendszereket. PHP és MySQL alapokon sok keret rendszer létezik, ami megkönnyíti a fejlesztést. Ha nem is hassználunk ténylegesen keretrendszert megismerkedni célszerű minél többel. A keretrendszerek nagy előnye, hogy általában nem engedik a programozót szabadon garázdálkodni. Sajnos a PHP nyelv nem rendelkezik elég szigorú előírásokkal, ahhoz, hogy belekényszerítse a programozót a MCV felfogás követésébe. Kezdőként találkoztam olyan megoldással, hogy a fejlesztőnek volt egy olyan problémája, ahol tipikusan objektumokat kellet volna használnia, e helyett a nyelv szabadsága miatt rossz megoldást választott. PHPban az include() nevű függvény betölt egy adott file-t és ott helyben le is futtatja. A programozó, ezért úgy oldotta meg, hogy ne objektumokat vagy függvényeket kelljen használnia, hogy értéket adott néhány változónak és include -al betöltött egy file-t (amit szintén futás időben határozott meg, hogy melyiket), ami az előtte definiált változók alapján elvégzett valamilyen műveletet. Ezen megoldás helyett sokkal szerencsésebb lett volna, ha a műveleteket, objektumokba, és azok metódusaiba csoportosítja. Ha egy keretrendszer szabályai szerint programozunk ilyen és ehhez hasonló hajmeresztő megoldásokat, nem fogunk kitalálni, hiszen a keretrendszer valamilyen szinten kényszerít arra, hogy jó megoldást válasszunk. 12 / 12