legjobb drupal modulok

Sorrendezhető táblázatok

Ismét egy hasznos kis Drupal modulra bukkantam, amit meg kell osztanom. Történt, nem is olyan régen, hogy bizonyos nodeok között egy sorrendet kellett meghatározni. Néhány oldalból álló, előre-hátra lapozható termékbemutató oldalra kell gondolni.

Szépen fel is vettem a CCK-ban egy új mezőt, oldalszám néven, amit egy legördülő menüből lehetett kiválasztani. A nodeok megjelenítése és a lapozás megvalsóítása a theme rétegbe került. Viszont szükség volt még valami adminisztrációs felületre, a node lista szerkesztéséhez. Persze a beépített szerkesztő oldalon, az oldalszám select input mező már adott egy szerkesztési lehetőséget, de így nagyon kényelmetlen lett volna a használata.

Arra gondoltam, a legjobb megoldás egy táblázat lenne, ahol a sorok mozgathatóak a drupal tabledrag.js használatával. Ilyen van pl. a menü és a blokk szerkesztésnél is. Első gondolatom az volt, hogy írok erre egy saját modult, nem egy nagy kalad, legrosszabb esetben is egy óra alatt megvan. Aztán eszembe jutott, hogy a Views modul tud táblázatokat megjeleníteni, de az nem a szerkeszthető verzió, hanem egyszerű táblázat. Elkezdtem nézelődni a Views *.tpl.php smink fájlok környékén, hátha van egy ügyes trükk, amivel rá lehetne venni a Viewst a tabledrag.js használatára.

Nem tudom, hogy végülis van-e ilyen trükk, de mint kiderült, szerencsére nincs rá szükség. Ugyanis, ez az igény másoknál is fellépett, és már megírták helyettünk. A DraggableViews nevű modulról beszélek, amely a Viewsnak egy kiegészítése. Egy új formázási stílust ad hozzá a Viewshoz, a meglévő táblázat, HTML lista és Grid stílus mellett megjelenik egy sorrendezhető táblázat. A nézet létrehozásánál a Draggable Table stílust kell kiválasztani, majd a stílus beállításoknál a sorrendezés alapját képező mezőt megadni. Ennyi az egész.

Íme egy demó, amit a Draggable Table modullal hoztam létre:

Nostrud Acsi
Qui Praesent
Duis Vindico
Lenis
Adipiscing Praemitto

Elvileg tud hierarchikus és csoportos rendezéseket is, mint a beépített menü és a blokk szerkesztés. Én ezeket nem próbáltam, nekem csak egy egyszerű rendezhető lista kellett, amire tökéletesen meg is felelt.

A Drupal közösség ismét meglepett, hogy ilyen modul is van már. Úgy tűnik tényleg igaz a mondás, hogy a Drupalban a legnehezebb feladat, találni egy olyan funkciót amire még nincs kész modul :)

Admin menu modul

Ismét találtam egy modult ami megérdemli, hogy a legjobb drupal modulok cimkét kapja.

Az Admin menu kiváló segédeszköz, ha Drupal alapú oldalt akarunk beállítani vagy karbantartani.

Aki már próbált beállítani egy frissen telepített Drupal oldalt, biztosan belefutott már abba a problémába, hogy a /admin/akármi oldalak eléréséhez előbb kattintani kell egy a /admin-ra vezető linkre. Beállítás közben ez bizony több százszor (ezerszer?) is megtörténik, ezzel rengeteg értékes másodpercet rabolva el tőlünk.

Az Admin Menu ezt hivatott megoldani, egy kellemes kis JS alapú menüvel. A lényeg, hogy az összes /admin/* menüpont elérhető egyetlen kattintással, gyorsan, egyszerűen.

Itt egy kép amely jól ábrázoja a lényeget:

admin_menu_uj2.png

Jól látható, a fent megjelenő keskeny fekete menü sáv.

A 4.7-es verzió óta minden Drupal kiadásra létezik, jól karbantartott modul.

A JS alapú menü az oldal tetején jelenik meg, fixen. De ha valaki azt szeretné, hogy a vízszintes görgetősáv helyzetétől függetlenül mindig ott legyen az Admin Menu, akkor mindössze annyit kell tennie, hogy az admin_menu könyvtárban a style.css fájlban az

#admin-menu { position: absolute; }

részt kicseréli erre:
#admin-menu { position: fixed; }

Aki még nem ismeri ezt a modult, mindenképpen próbálja ki. Elsőre talán nehéz rászokni, de ha ezen túlvagyunk, abszolút függőséget okoz.

YouTube klón Drupal-al

Egy nagyszerű Drupal tutorial videóra bukkantam ma: Három modullal (CCK, filefield és jQuery Media) percek alatt létrehozhatunk egy YouTube-hoz hasonló videó megoszto weboldalt.

A videót Sean Effel publikálta a DrupalTherapy.com-on:

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:
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!