Fejlesztés

Drupal kódolási stílus

snufkin képe

Behúzások és sortörések

Egy behúzás két szóköz méretű, példa:


if (empty($valami)) {
echo "Teljesen be vagyok húzva."
}

A sorok végen ne legyen szóköz, utolsó karakter után legyen új sor. Minden fájl végén legyen egy üres sor: ez azért van, hogyha patchet készítesz, akkor ne kerüljön bele a "\ No newline at end of file" figyelmeztetés, illetve a patch maga olvashatóbb legyen.

Operátorok

20 Napi Drupal API - 1. nap: Új mezőtípus létrehozása CCK-val

zserno képe

Jelen írás egy fordított kivonat, melyet zserno készített. Az eredeti itt található:
http://www.trellon.com/content/blog/cck-creating-new-field-types

A CCK a legfontosabb rövidítés, amit ismernünk kell ha a Drupal tartalomkezeléséről beszélünk. Az eredeti rövidítés a Content Construction Kit szavakból áll össze, ami egy olyan keretrendszer, melynek segítségével egy webhely felhasználói különféle információkat küldhetnek be.

Drupal verzió: 
Kézikönyv: 

48 nélkülözhetetlen Drupal fejlesztői tipp a Lullabot-tól

zserno képe

Az alábbi tippeket Justin Emond gyűjtötte egy négynapos Lullabot tréningen, melynek fő témái a sminkelés, form API, menu API, modulfejlesztés és jQuery voltak.

Drupal verzió: 

Kapcsolat űrlap és levél módosítása a Drupalban

Hojtsy Gábor képe

Korábban már írtam a hook_form_alter() előnyeiről és működéséről. Ennek segítségével – némi programozással – elérhetjük, hogy a Drupal módosítása nélkül a rendszer űrlapjai kedvünkre változzanak meg. De mi van akkor, ha az űrlapok változtatása nem elegendő? Az utóbbi hetekben a Weblabor.hu 4.6.x-es rendszerről 5.x-es Drupal rendszerre frissítésén is munkálkodom szabadidőmben, és éppen ma értem el a Weblabor szerkesztőit is megcímző kapcsolati űrlap funkcióhoz.

Sminkek készítése

Hojtsy Gábor képe

A Drupal sminkrendszere rendkívül rugalmas, sok utat biztosít az egyedi oldalak kialakítása felé. Lehetőségünk van új sminket (stílust) építeni meglévő sminkre, új sminket írni egy sablonkezelő (leggyakrabban a PHPTemplate) segítségével, vagy közvetlenül a Drupal smink függvényeivel PHP alapokon.

A Drupal menürendszere

chx képe

A hook_menu() kampó megvalósításai elérési címeket jegyeznek be, megadva azok kezelőfüggvényeit, jogosultság értékeit, és megjelenítési adataikat.

Paraméterek

$may_cache Logikai érték, mely azt jelzi, hogy a visszaadott elemeink a gyorsítótárba kerülnek-e. A menü gyorsítótára felhasználófüggő, tehát az elemeket szinte mindig gyorsítótárazhatjuk, kivéve ha a felhasználó aktuális helyzetétől függnek. A node_menu() megvalósításában láthatunk példát olyan elemre, amit nem szabad gyorsítótárba tenni.

Szálakba rendezett új hozzászólások követhetővé tétele

Őry Máté képe

Alapvető és állandó probléma nagyobb forgalmú oldalakon, hogy a sok hozzászólás között igen nehéz a különböző szálakba érkezett új hozzászólások követése. A Drupal alapértelmezés szerint az általunk még nem olvasott hozzászólásokat (és tartalmakat) ?új? jelzéssel látja el. Ezt javítottam föl azzal, hogy arra kattintva a következő új hozzászólásra ugorjon.

Amikor változtatni kell a Drupal kódján (2)

Hojtsy Gábor képe

Érdekes módon éppen a változtatásokról szóló tipp-kettős előző részének megjelenése napján vált elérhetővé a Lullabot Podcast tizenhatodik része, melyben Jeff Robins készít interjút Dries Buytaert-tel, a Drupal alapítójával. Ebben hangzik el a következő párbeszéd:

Jeff Robins: Don't hack Drupal, if you are hacking the code, you are doing something wrong.
Dries Buytaert: Either you are doing something wrong, or core needs to be extended.
Jeff Robins: [...] but then some security update comes out, or a new version of Drupal comes out, you can't upgrade, because your hacks will break everything.

Most arra a kérdésre próbálom megadni a választ, hogy mit tehetünk, ha mindenképpen saját módosításokat kell alkalmaznunk, de ezeket a frissítésekkel is meg szeretnénk tartani. A megoldás természetesen nem olyan egyszerű, mint egy klasszikus Drupal frissítés, de aki módosít a kódon, annak ezt vállalnia kell.

Amikor változtatni kell a Drupal kódján (1)

Hojtsy Gábor képe

Májusban egy Drupal without modifications című szál kapott erőre a Drupal fejlesztői levelezőlistán, mely arról is szólt, hogy szükséges-e módosításokat végrehajtanunk a Drupal alap kódján ahhoz, hogy a kívánt webhelyet megkapjuk. Ez természetesen azzal a komoly igazsággal zárult, hogy "attól függ". A Drupal.hu kialakításakor például szigorú vezérelv volt, hogy alap telepítést használjunk, csak modulokkal kiegészítve a rendszert. Így ahelyett, hogy varázslatokat művelnénk, a maga valóságában tudjuk bemutatni a Drupal rendszert. A módosítások elkerülése sok esetben működik, de nem minden esetben tartható.

A hook_form_alter() a gyakorlatban

Hojtsy Gábor képe

A Drupal.hu frissítésével merült fel az igény arra, hogy bizonyos a fejlesztői csapat által kevésbé lényegesnek ítélt node szerkesztő mezőknek mégis nagyobb jelentőséget tulajdonsítsunk a felület megjelenítésekor, így a Drupal 4.7.0-val érkezett új tömbökre épülő űrlap építő rendszer egyik előnyös tulajdonságát, a hook_form_alter() űrlap módosító hurok képességeit kellett igénybe vennem. Ráadásul ezt Őry Máté fordítói levlistára beküldött magyar dátumokat támogató megoldásával fűszereztem, így egy kis ismertető alapja éppen összeállt.