Kapcsolati űrlap (contact form) használhatóvá tétele

A Drupal alap rendszerben található Contact modul számos gyermekbetegséggel rendelkezik. Ezek közül az egyik legzavaróbb az az, hogy amikor az ember több kategóriát hoz létre akkor ezekhez nem tud külön külön kapcsolati űrlapot rendelni. Ehelyett a nagy közös kapcsolati űrlap bővül ki egy kiválasztó listával. Ebből a listából azután a felhasználónak kell kiválasztania a megfelelő kategóriát, mielőtt a levelet küldené. Tehát hiába hozunk létre két külön kategóriát - egyet "Értékesítés" néven a termékeink iránt érdeklődőknek és egyet "Támogatás" néven a termékeinkkel már rendelkező felhasználók számára - a hozzájuk tartózó kapcsolati űrlapot nem tudjuk linkelni. Ugyanis mint előbb is írtam ilyen nincsen. Pedig nem olyan bonyolult a dolog. Egy icipici mini modullal, ami tartalmaz egy form_altert könnyedén rávehetjük a Contact modult, hogy a contact/1, contact/2 stb. útvonalaknál a category legördülő listát cserélje le egy hidden elemre, amiben a megfelelő kategória azonosítója van csak.
Rákerestem a Drupal.org-on és találtam is egy nyitott issuet valamint egy modult is. Mindkettővel voltak problémáim. A modul nem az azonosítót, hanem a kategória nevét használta az útvonalban. Ráadásul egy olyan szerencsétlen megoldással, mely csak az angol abc betűit és szóközt tartalmazó kategória nevekre működött volna korrekten. A magyar ékezetes nevekre nem, sőt ha a szöveg aláhúzás karaktert tartalmazott volna akkor még jól meg is keveredik a modul.
Véleményem szerint az üdvözítő megoldás az, hogy az útvonalban a kategória azonosítóját használja a modul és a szép urlekről pedig az erre készített Path modul gondoskodik majd. Tehát kategória létrehoz, majd útvonal álnév beállít. Esetleg a Path_auto modul segítségével mindezt automatikusan.
Első célfeladatként tehát azt jelöltem meg, hogy a patch-t így alakítsam át.
A másik problémám mindkét megoldással az volt, hogy az űrlapot előállító függvény nem paraméterből, hanem az útvonalból szedte mely kategória űrlapját kell megjeleníteni. Márpedig ez nekem nem felelt meg, hisz én továbblépve ezen a problémán szeretném, ha minden egyes kategóriához egy blokk is tartozhatna. Így megoldható lenne, hogy egy termék leírása mellet egy olyan kapcsolati űrlapot jelenítsünk meg, amivel egyből a termékfelelősnek lehetne üzenni. Ezért második célfaladatkén megjelöltem, hogy az útvonal paramétertől független űrlap előállító függvényem legyen.
Gondoltam még egy kis változtatást is érdemes lenne belepasszírozni ebbe a javításba. Méghozzá azt, hogy minden egyes űrlaphoz legyen egy link, és ne kelljen keresgélni mint anno kellet a Contact modul kezdeti szakaszában. Ezt aztán javították és talán már az 5.x verzió óta van egy link a modul beállító oldalán a kapcsolati űrlapra.
Igen jól eset, hogy egyrészt nem nulláról kellett kezdenem a munkát, hisz előttem már voltak többen akik átgondolták ezt a problémát, másrészt amint megjelent a javításom többen átnézték és segítettek. Egyik legaktívabb hozzászóló Geoff volt aki a Contact forms modul fejlesztője. Igen agilis hozzáállásával sikerült elérnie, hogy modulja pár szolgáltatását beleszuszkoljuk a javításba. Így aztán két jelentős változtatás is belekerült. Az egyik az az, hogy nem csak id alapján lehet elérni a kapcsolati űrlapot, hanem kategória neve alapján is. A másik pedig az, hogy paraméterezetten téma megjelölést (subject-et) is meg lehet adni a modulnak.
Remélem ezek a kis folt bekerül majd a Drupal hetes verziójába.
Akit érdekel, nézze meg videón vagy próbálja ki.

Hozzászólások

Typo van a címben: "űrlap"
Hasznos bejegyzés. :)

Köszi javítottam.

"vagy próbálja ki"
hol is van amit ki kell póbálni?

A megtalált issue az ahol megtalálod az éppen aktuális legutolsó foltot, amivel egy legfrissebb cvs-HEAD Drupalt kell patch-elni. (ezeket nem linkelem, mert változik.)

pp

kicsit megkritizaltam a masik ket ujitast az issue-ban. remelem nincs harag.

Miért lenne? Végigolvastad a szálat? Ott volt Geoff, catch meg én. Geoff erősködött a plusz cuccokért, catch nem szólt rá semmit én meg gondoltam bár nem értek vele egyet de majd szólnak mások, hogy nem kéne. Most szóltatok ki is vettem. ;) Nekem nem hiányzik.

Egyébként azért mert elmondod a véleményed nem fogok haragudni. Éppen ellenkezőleg: örülök, hogy megosztod velem a gondolataidat.

Szóval: Köszi!

pp

A video hangját nem hallom, pedig számos flv-t (köztük a Te régi 5.x-es oktatóidat is) le tudtam már játszani.
Most egy kodecpack-et is feltettem, de hiába.

Mit javasolsz, hogy működjön?

Köszönöm,

István

Semmit, ugyanis ennek a videónak nincs hangja. Célom a múlt század elejei némafilm korszak megidézése volt. ;)

pp

Hát ez sikerült.
De ami a legfontosabb, megnevettettél két embert (legalább), így ma is nyertünk életünkhöz plusz pár percet a nevetés által Neked köszönhetően,

István