Sziasztok!
Modul fejlesztés közben azt tapasztaltam, hogy a form elemek, amiket a http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.... oldalon találtok, csak a drupal_get_form() függvénnyel használhatóak. Vagyis, ha én egy hook_view(), vagy hook_node_view() hookban szeretnék collapsible fieldsetet létrehozni benne egy table-lel, egy egyszerű renderelhető tömbben, akkor ez nem megy a drupal_render()-rel. Megjelenik, csak egy halom notice és egyéb probléma jön, például nem lesz collapsible tulajdonságú. Ez nyilván azért lesz, mert a #pre_render opció nincs beállítva benne, legalábbis erre gondolok. Ez ugye a system_element_info()-ban kerül beállításra.
Ezek a form element-ek igen jók a megjelenítés feladatára is, például egy tableselect, vagy egy fieldset nem csak az űrlapoknál hasznos szerintem. Van valami módja annak, hogy ezeket megjelenítsem, vagy csak az az egyetlen módja, hogy készítsek egy form függvényt, és azt hívjam meg a drupal_render-rel?
Üdv:
Garuda
Szerinted
Es a W3C szerint?
Form elemet a formba
Ennek szemantikai okai vannak, nagyon kényelmes lehet kész elemeket form helyett másra használni, de a webet ma már nem így írjuk, tessék a megfelelő HTML elemekből megalkotni a kinézetet CSS és JS segítségével. A HTML a funkció leírására való.
Lippai Ádám
young element
Az űrlap nem csak megjelenítés
A form vagyis űrlap arra való, hogy a felhasználótól fogadj adatokat. A drupal_get_form egy halom dolgot elintéz azon kívül, hogy visszaadja a form html kódját.
Ezek egy része a felhasználótól jövő adatok feldogozásával foglalkozik, másik részük pedig egyéb olyan okosságokat tesz bele mint pl a javaScript fájlok hozzáadása a kimenethez, vagy lehetővé teszi, hogy egyéb modulok beépüljenek ebbe a folyamatba.
A tulajdonképpeni html űrlap ugyanis ennek a folyamatnak egy nagyon nagyon kis részén kerül felhasználásra: amikor kiíratjuk.
A gondolkodás is fordított. Ha kell neked egy így és így kinéző űrlap, akkor először meg kell alkotnod az űrlapot(drupal_get_form). Ebben benne van az űrlapot leíró függvény elkészítése(FORM_ID), valamint az ellenőrzést (FORM_ID_validate) és feldolgozást (FORM_ID_submit) végző kódsorok elkészítése. Ha minden jól működik akkor áll neki az ember megformázni vagyis sminkelni az űrlapot, hogy úgy nézzen ki ahogy szeretné.
Ha a submit és validate függvényekre nincs szükséged, vagyis nem a felhasználóval való interakcióra akarod használni az űrlapot akkor keresned kéne egyéb megoldást a hasonló megjelenésre (mint ahogyan ezt alippai kollega is leírta).
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Köszi
Sziasztok!
Köszi a hozzászólásokat. Akkor nem emésztem magam tovább ezen a dolgon. Így, hogy elmagyaráztátok mi a lényege ennek, már teljesen értem. Akkor tehát akármilyen HTML + jquery + CSS-el megcsinálhatom magam azt a hook_view implementációt amit szeretnék az egyedi node-hoz, és mivel ez nézet, nem űrlap, ezért inkább egy saját theme implementáció definiálása, esetleg egy tpl.php template használata elegánsabb megoldás, mint a Drupal által definiált form elemeket nem rendeltetésszerűen használni. Legalábbis én ezt a konklúziót vontam le. :)
Köszi a segítséget!