Form adatok megjegyzése és automatikus kitöltése

Magus képe

Sziasztok,

azt szeretném megoldani, hogy ha valaki kitölti valamikor az egyik formot (pl regisztráció, belépés, contact, stb), akkor a drupal legalább az adott session végéig jegyezze meg a beírt adatokat.

Tehát ha pl regisztrált már egyszer, és nem lép be, hanem újra a regisztrációra megy, akkor a form már legyen teljesen kitöltve neki (esetleg a pw kivételével), illetve ha átmegy a belépésre, akkor a mail címe legyen kitöltve, valamint a kapcsolat űrlaphoz téved, akkor is legyen kitöltve a már ismert adatai (belépés nélkül is és belépett állapotban is). Esetleg a WebForm modul formjai is kezelje ezeket az adatokat.

Tudom, hogy hülye kérés, de az ügyfél ragaszkodik hozzá :(

Van erre megoldás, akár hack, akár modul? (Vagy tipp, hogy hogyan álljak neki megírni egy ilyet?)

Köszönöm,
O. Magus

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Magus képe

Kifelejtettem bejeleölni, hogy a 6-os Drupalt használom.

0
0

- - - - -
Orseolo Magus
[email protected]

crt képe

Szia.

Ezt cookie és egy saját adatbázis tábla használatával fogod tudni megoldani, nem feltétlenül egyszerűen.
De mi van abban az esetben, ha
- a felhasználó törli a cookie-kat kilépéskor,
- esetleg alapból tiltja is,
- régen járt a weblapon, lejárt a cookie élettartama,
- nem csak egy helyről látogatja az oldalt,
- nem csak egy féle böngészőt használ,
- stb...

Üdv: Zoli

0
0
Magus képe

Szia,

ezzel tisztában vagyok, épp ezért fogalmaztam, hogy "legalább az adott session végéig".
A kérdésem lám, hogy miként mely fájlokban nyúkáljak?

Köszönöm

0
0

- - - - -
Orseolo Magus
[email protected]

pp képe

persze csak ha jót akarsz magadnak ;))

0
0
pp képe

Miért akarja ezt?

"Tehát ha pl regisztrált már egyszer, és nem lép be, hanem újra a regisztrációra megy, akkor a form már legyen teljesen kitöltve neki (esetleg a pw kivételével),"
Ennek semmi értelme, mert nem tud regisztrálni még egyszer! Apropó honnan fogod tudni, hogy ugyan az az ember ül a gép előtt? Hogyan oldod meg, ha regisztrál hazamegy és onnan nézi?

"illetve ha átmegy a belépésre, akkor a mail címe legyen kitöltve"
Ezt neked kell megoldanod. (én form alter-el csinálnám és a hook_user-re ülnék rá)

"valamint a kapcsolat űrlaphoz téved, akkor is legyen kitöltve a már ismert adatai (belépés nélkül is és belépett állapotban is)."
ez mintha így működne nem?

"Esetleg a WebForm modul formjai is kezelje ezeket az adatokat."
webformnál ez beállítás kérdése. A konf regisztrációs űrlapon pl. a Teljes név és Nick név mezők már automatikusan töltve voltak.

A túl általánosan megfogalmazott feladatokkal az a baj, hogy valahol mindig ki fog lógni a lóláb. Konkrét feladatokra van megoldás (külön-külön mindegyikre) de nagy általánosságban nincsen.

pp

0
0
Magus képe

Sajnos biztos :(

A hazamegy dolog nem érdekel, mert az már nem illik bele "az adott session végéig" állításba, ha törli a sütiket, az megint az ő baja.

Azért fogalmaztam ennyire általánosan, mert ilyen általános a kérdésem ;), miszerint a célom, hogy minden form kezelje így a dolgokat, és ha ez már egyszer felvetődött vkiben, talán írt rá modult, ami pont ezt csinálja.

"Ennek semmi értelme, mert nem tud regisztrálni még egyszer" hát én ezt tudom jól, de sajna az ügyfél ragaszkodik ehhez és nem lehet róla :(

Egyesével a feladatokat összegzem tehát:
- regisztrációs form kitöltése (elküldése) után ha ugyanide visszajön, adatok legyenek kitöltve
- regisztrációs form kitöltése (elküldése) után ha be akar lépni, az e-mail címe legyen kitöltve
- regisztrációs form kitöltése (elküldése) után ha kapcsolat oldalra megy, adatai legyenek kitöltve
- belépési form kitöltése (elküldése) után ha (kilépett már akkor is), ha regisztrációs formra megy, legyen kitöltve a mail címe
- belépési form kitöltése (elküldése) után ha (kilépett már akkor is), ha kapcsolat oldalra megy, legyen kitöltve az e-mail címe
- kapcsolat űrlapot kitölti (elküldi), és a regisztrációs oldalra megy, akkor a meglévő adatok legyenek kitöltve
- kapcsolat űrlapot kitölti (elküldi), és a login formhoz megy, a mail címe legyen kitöltve

Köszönöm,
O. Magus

0
0

- - - - -
Orseolo Magus
[email protected]

pp képe

"- belépési form kitöltése (elküldése) után ha (kilépett már akkor is), ha kapcsolat oldalra megy, legyen kitöltve az e-mail címe"

Mivel a Drupal ki-be lépésnél új session-id-t generál, ezért ez sérti a Te általad felállított "a session végéig" szabályt. Ez nem is véletlen.

Kérdezném mit jelent az, hogy "kitöltése után" mit nevezünk kitöltésnek? Ha megváltoztatja a tartalmát vagy mit?

Én írnék egy kis js-t ami egy sütibe beletolná a json reprezentációját ezeknek az adatoknak és csókolom. (id/érték párosokat)

pp

0
0
crt képe

A következőképp csinálnám:

- kis modul egy saját táblával (cid, uid)
- a regisztráció után (hook_user) egy egyedi azonosító generálása (drupal_get_token), majd a user id-val együtt a táblába írása, az azonosítót pedig sütibe
- a fenti formokon süti megvizsgálása (hook_form_alter), ha ok akkor a user id meghatározása a táblánkból, user objektum betöltése (user_load), megfelelő elemek értékeinek megadása
- minden belépéskor süti ellenőrzése, ha nincs (vagy az azonosító nem érvényes), akkor új azonosító létrehozása (a meglévő mellett vagy helyett)
- időközönként a tábla megfelelő karbantartása (hook_cron)

Azt hiszem nem felejtettem ki semmit.

Üdv: Zoli

0
0
Magus képe

Köszönöm a válaszokat, az ügyfél végre felfogta, hogy ez nem logikus, amit akar. Ám de ettől függetlenül továbbra is akarja (juhéé)...

Végül azt találta ki, hogy így működjön:
ha beír valamelyik input-ba valamit, akkor azt jegyezze meg form elküldés nélkül is. Tehát csak egy kis JS kellett, ami minden input-ra pakol egy onblur eseményt, és onload-kor meg visszatölti.

0
0

- - - - -
Orseolo Magus
[email protected]

Pasqualle képe

a firefox (es szerintem a tobbi bongeszo is) megjegyzi azt amit mar egyszer beirtam a formba, tehat ha ugyanazt kezdem gepelni akkor elojon az amit egyszer mar beirtam.. tehat ezen nincs mit fejleszteni..

0
0
Magus képe

igen, de azt akarja, hogy előre legyen kitöltve, hogy neki csak a küldést kelljen megnyomnia. vannak hülye ügyfelek, de asszem nem kell bemutatni őket :(

0
0

- - - - -
Orseolo Magus
[email protected]

pp képe

Egyszer nekiálltunk egy gondolatolvasó modul fejlesztésének, csak sajnos volt egy kis hiba benne és amikor az ügyfél ki akarta próbálni kiszippantotta az agyát. Pedig már majdnem működött...

Valaki nem akarja tesztelni?

pp
:D

0
0