legjobb drupal modulok

Devel modul

Ez a cikk a Legjobb Drupal modulok sorozat következő része.

Mindenki aki Drupal-al foglalkozik, az ismeri a Devel modult. Ez a bejegyzés a föld népességéből annak a három embernek szól, akik esetleg nem ismernék ezt a modult. :)

Használata



  • Letöltés itt: Devel.

  • Modul bekapcsolása az admin/build/modules oldalon.

  • A modul által publikált blokkok bekapcsolása az admin/build/blocks oldalon.

Development block

Attól függően, hogy az 5-ös vagy 6-os verziót használjuk, 2 vagy 3 darab blokkot publikál. A lényeg, amely mindkét verzióban benne van, a Development blokkban található. A blokk linkek halma, amelyek magukért beszélnek:


  • Empty cache: gyorsítótár ürítés egy gombnyomással. Modul fejlesztésnél hasznos, amikor éppen a hook_menu implementálásával bénázunk. Most, hogy a 6-os Drupal-ban teljesen felforgatták a menürendert, ez bizony aktuális lehet.

  • Enable Theme developer: Aki még nem tette, annak kötelező kipróbálni a Theme Developer-t Drupal 6 alatt.

  • Legújabb projektem fejlesztésekor pl. a Run Cron és a Variable editor gombot nyomogattam veszettül. Egy jó kis játék készül, majd beszámolok itt!

  • A többi funkció is magától értetődik és hasznosak, részleteszésük szerintem felesleges.

Van még két másik block is: az Execute PHP blokkban egy többsoros szövegmező van, amiben közvetlenül futtathatuk PHP kódot. Ez változó átállításra (variable_set) és PHP változók kiíratására (kvázi, debug) használható. A Language switcher blokk, csak D6 alatt elérhető, és a nyelv azonnali megváltoztatására szolgál, természetesen.

Egyéb Devel modulok

A csomag tartalmaz még néhány kiegészítő modult is:

  • Devel Generate - teszteléshez hasznos, automatikusan generálhatunk felhasználókat, node-okat és taxonomy term-eket, azaz kategória cimkéket.
  • Devel Node Access - Részletes node startisztikát jelenít meg minden node alatt.
  • Macro - Űrlap kitöltéseket lehet vele felvenni, majd visszajátszani. Ez is biztos szuper.
  • Bevallom én még csak a központi Devel modult használtam, illetve játszottam a Theme developer-rel, de biztos vannak esetek, amikor a többi funkció is jól jön.

Letöltés: Devel

Szép URL-ek Drupal-ban

Ez a cikk a Legjobb Drupal modulok sorozat legújabb része.

Tartalom

Bevezető
Alap Drupal beállítás
Pathauto
Global Redirect
Címváltozás és az RSS aggregátorok


Bevezető

Melyik a szebb webcím,
ez: http://edgarpe.hu?q=node/50
vagy ez: http://edgarpe.hu/Szep_URL_ek_Drupal_ban ?

A cél az, hogy az utóbbit használjuk, a keresőknek is jobb, a látogatóknak is. A látogatóknak azért, mert már a címből látják mi az, nem kell rákattintaniuk. Ez a cikk arról szól, hogy is lehet ezt elérni Drupalban.

Az alap Drupal, jó szokásának megfelelően, elvégzi helyettünk a munka nagy részét, és lefekteti az alapokat. Viszont ha kerek egész megoldást szeretnénk, akkor kiegészítő modulokra is szükségünk lesz. Egy tipikus hírportálnál én a Pathauto és a Global Redirect modulokat javaslom. Lássuk hogyan:


Alap Drupal beállítás

Két dolgot kell beállítanunk. Egyrészt be kell kapcsolni a rövid webcím (Clean URL-s) kezelést az admin/settings/clean-urls címen. Ehhez szükség van arra, hogy az apache webszerver figyelembe vegye a Drupal-hoz adott .htaccess fájlt. Ha nem apache alatt fut az oldal, vagy nem veszi figyelembe, akkor a dokumentációt ide vonatkozó részét érdemes böngészni.

Másrészt be kell kapcsolni a path modult az admin/build/modules címen.


Pathauto

Ez a modul az alap path modulra épít, automatikusan hozza létre az un. webcím álneveket, angolul URL alias-okat. 3 helyen fejti ki hatását:

  • A node-okhoz tud álneveket létrehozni, így a node/1234-ből pl. hir/hir_cime lesz.
  • Kategóriákhoz ad álneveket, így a term/1234 helyett kategoria/Sport lehet.
  • Végül a oldal látogatóinak profil címei is megváltoztathatóak, user/1-ről pl. felhasznalo/EdgarPE-re.

A modul beállítási oldalától nem kell megijedni, nagy az űrlap, de minden magától értetődő. Egy dologra kell odafigyelni: az ékezetes karakterek ékezetmentesítésére. A modulhoz adnak egy i18n-ascii.example.txt nevű fájlt, ezt át kell nevezni i18n-ascii.txt-re és átszerkeszteni. Az általam használt fájlt csatoltam:
[attachment:i18n-ascii.txt=i18n-ascii.txt]

A modul elérhető mind Drupal 5-höz, mind Drupal 6-hoz:
Pathauto


Global redirect

A Pathauto-val ellentétben, amely egy igen népszerű modul, a Global redirect-et viszonylag kevesen ismerik, pedig hasznos párja a fentinek.

Az álnevek használatával megjelenik az a probléma, hogy pontosan ugyanazt a tartalmat két különböző címen is el lehet érni. A fenti példánál maradva a node/1234 és a hir/hir_cime is érvényes lesz és ugyanazt fogja tartalmazni. Jobb lenne, ha az előbbi inkább egy átirányítás lenne az utóbbira. Ez a keresők szempontjából is fontos, de a felhasználóknak is zavaró lehet a két külön cím.

Ez a modul is elérhető mind az 5-ös mind a 6-os Drupal-hoz:
Global Redirect


Címváltozás és az RSS aggregátorok

A Pathauto modulban beállítható, hogy mi történjen ha megváltozik egy node címe és ezáltal a hozzá tartozó webcímnek (URL) is változni kellene.

Három lehetőségünk van: meghagyni a régi címhez tartozó URL-t, létrehozni újat és törölni a régit, vagy létrehozni újat és meghagyni a régit is. Én a legutolsót javaslom!

Ugyanis ha létrejön egy olyan URL ami eddig nem létezett, utána nem szerencsés megszüntetni azt. RSS aggregátor oldalak átvehetik az RSS-ből a címet, felhasználók RSS olvasói elmentik a gyorstárban és nem változtatják meg, linkelhetnek rá külső oldalak sőt még a keresők is beindexelhetik, ha pechünk van.

Egy nagyobb forgalmú portálom látogatottságának egy nagy részét ilyen RSS aggregátorok küldték, és ott nem volt megoldva ez a probléma. Egyik nap azt vettük észre, hogy lezuhant a látogatottságunk és nem értettük, hogy miért. Hamar kiderült hogy ezek a hírgyűjtő oldalak rossz címre mutatnak, amire a portál 404 error-t adott vissza. Akkor megtanultam, hogy egy létező URL-t soha nem szabad megszüntetni, még ha csak néhány másodpercig is létezett!

„Jegyezz meg” funkció a Persistent Login modullal.

Gondolom mindenki számára ismerős az automatikus beléptetés funkció: a regisztrált felhasználók belépéskor bepipálhatnak egy checkbox-ot jegyezz meg, emlékezz rám vagy valami hasonló felirattal, aminek eredménye az lesz, hogy a következő látogatáskor nem kell újra beírni a felhasználónév/jelszó párost, az oldal azonnal felismeri őket.

Feladat

Egy PHP webprogramozó szemszögéből elsőre egyszerűnek tűnik a feladat: ki kell állítani egy sütit, ami nem jár le az ablak bezárásakor, azaz nem session süti, és tartalmaz egy véletlen kódot. Adatbázisban pedig elmentjük a véletlen kódot és a hozzá tartozó felhasználót. Ha egy ismeretlen (nem belépett) látogató küld egy ilyen sütit és a véletlen kódot megtaláljuk az adatbázisban, akkor azonnal beléptetjük, nem kérjük tőle a jelszavát.

Egyszerű, pár perc alatt leprogramozható funkció, igaz? Nos a helyzet nem ilyen egyszerű.

Biztonság

Ez a fajta beléptetés jónéhány biztonsági kockázatot rejt magában, amelyeket ki kell küszöbölni, ahhoz hogy nyugodt szívvel használhassuk ezt a fajta beléptető rendszert.

Először is egy felhasználóhoz több ilyen emlékező süti tartozhat. Belép a munkahelyén, otthon az asztali gépén, notebookján, stb… De ennek érdemes egy határt szabni, nem szerencsés, ha minden határon túl nőhet az egy felhasználóhoz tartozó beléptető sütik száma.

Egy ennél is fontosabb tényező, hogy érdemes megkülönböztetni egy hagyományos belépést, ahol megtörténik a felhasználónév/jelszó páros beírása, és egy ilyen megjegyzéssel történt belépést. A kettő nem azonos erejű. Jobban meg lehet bízni abban a munkamenetben (session) amikor a felhasználó ténylegesen beírta a jelszavát. Miért? Az emberek néha leülnek egymás számítógépéhez, és közösen használják. Ha a mi gépünkhöz ülnek le és nem nézünk oda, mindössze néhány másodperc is elegendő ahhoz, hogy egy népszerű oldalon súlyos károkat okozzanak nekünk. Például:

- Megváltoztathatja jelszavunkat, ezzel ellopja a regisztrált profilunkat
- Törölheti regisztrációnkat, ez a lépés általában visszaállíthatatlan.
- Egy közösségi oldalon, pl. IWIW, küldhet üzenetet akár az összes ismerősünknek a mi nevünkben. A barátainknak pedig semmi okuk nem lesz kételkedni abban, hogy mi küldtük az üzenetet.

Drupal megoldás: a Persistent Login modul

A fentiekből jól látszik, hogy több részletkérdésre is figyelni kell, de a Persistent Login modul igazán jó munkát végez ezen a téren:

- Üdvözlő üzenetet tud megjeleníteni, ha a belépés egy emlékező sütivel történt.
- Belépés után kiírja a felhasználónak, hogy hány különböző ilyen emlékeztető sütit állítottak már ki neki, és lehetősége van törölni ezeket.
- Tiltani lehet bizonyos funkciókat az oldalon, amelyeket a felhasználó csakis akkor érhet el ha ténylegesen beírja a jelszavát. Például a jelszó változtatás vagy webáruházban egy rendelés tényleges feladását érdemes beállítani ilyen kiemelt bizonságú funkciónak. Érdekesség, hogy a drupal-ban egy felhasználónak jelenleg nincs lehetősége saját account-jának törlésére. Ez egyébként a Drupal egyik legrégebbi issue-ja: http://drupal.org/node/8 !

Én személy szerint nagyon elégedett vagyok ezzel a modullal, minden projektben ez az első modul amit feltelepítek! Ha másért nem, már csak azért is, mert fejlesztés közben nem kell folyton beirogatni a root jelszót. Természetesen az EdgarPE.hu-n is telepítve van :)

Link: http://drupal.org/project/persistent_login

Oldalak

Feliratkozás RSS - legjobb drupal modulok csatornájára