Üdvözletem mindenkinek!
Az szeretném megkérdezni, hogy milyen módon lehet megoldani, hogy egy adott oldal csak egy bizonyos ideig legyen elérhető egy felhasználó számára, azt követően csak egy előre beállított "hibaüzenetet" kapjon. A megtekintésre rendelkezésre álló időt pedig egy visszaszámláló óra mutassa.
Google-ben nem találtam megoldást a "limited time access" kérdésére, egy hasonló kérdés volt, ahol azt írták "talán Rules modulal megoldható", de semmi több. Végignéztem a "content access" kérdésével foglalkozó főbb modulokat is, de köztük sem találtam olyat, ami számomra egyértelműen megoldaná a kérdést. Visszaszámláláshoz a Jquery Countdown Timert találtam megfelelőnek, ami létrehoz egy visszaszámláló blockot. A kérdés, hogy ezt össze lehet-e hangolni a "megoldással"?
Előre is köszönöm a segítséget!
Mi a célod?
Valamilyen látszatvédelmet szeretnél, pl., amikor lejár az idő visszaszámláló, az olvasott szöveg egy szép effekttel elhalványodik és megjelenik a hibaüzenet?
Ekkor ha kikacsolja a javascript-et, akkor megáll a visszaszámlálód és addig olvassa az oldalt, amíg akarja.
Ha az oldal pl. szöveg, akkor ki is másolhatja a szöveget, vagy képernyőlopóval bármit.
Szóval, ha már kiment a tartalom a felhasználó böngészőjébe, akkor le is tudja menteni.
---------------------
Vagy azt szeretnéd, hogy miután lejárt az ideje, amit az idő visszaszámláló mutat, és utána ráfrissít az oldalra (és újra lekéri a szervertől az oldalt), ekkor jelenjen meg a hibaüzenet?
A cél
Landing Page-hez szeretném, hogy a feliratkozás csak korlátozott ideig legyen lehetséges.
Arra a részére nem gondoltam, hogy mi történjen, amikor a számláló eléri a nullát. Tetszik ez az elhalványodós megoldás is, de talán az is elegendő lenne, ha csak átugrana a hibaüzenetes oldalra.
Szerintem ez egy összetett probléma
Pl. ha az oldalra látogatva a bejelentkezett felhasználónak megjelenik a visszaszámláló, és ad 10 percet a feliratkozásra.
A kliens oldalon a böngészőben is több variációt át lehet gondolni:
- Mi történik, ha 2 perc után frissíti az oldalt? Újraindul a számláló vagy folytatnia kell 8 percről a visszaszámlálást?
- Mi történik, ha elnavigál az oldalról 2 perc után a felhasználó és fél óra után visszajön? Lecsúszott a feliratkozásról, vagy újraindul a visszaszámlálás, esetleg 8 percről folytatva.
- Mi van ha kikapcsolja a javascript-et? Ha fontos a védelem, akkor a szerver oldalon is kell majd valamilyen ellenőrzés.
A szerver oldalon:
Itt egy lényegi adatod van, hogy az adott user mikor nézte meg az adott oldalt először. Ha pl. bekapcsolod a statistic modult, akkor a drupál naplózza ezeket: http://drupal.stackexchange.com/questions/60296/track-individual-user-pa...
--------------------------
El tudok képzelni pl. egy ilyen megoldást:
- A user betölti az oldalt és elindul a timer (10 perc), a szerver oldalon bekerül a statisztikai táblába, hogy ez a user ezt az oldal ebben a időpontban nézte meg.
- X percenként futtatsz egy szkript-et (van hook_cron() is), megnézed a statisztikai táblát és minden olyan user-től, aki több mint 10 perc nézte meg az oldalt, elveszed a megtekintési jogot (ezt a content access modul valamelyik táblája tárolja).
- Így ha kb. 10 perc után (ha sűrűn futtatja a cron a szkriptet) a user betölti újra az oldalt, már nem lesz jogosultsága, kap valamilyen "Access denied" jellegű hibaüzenetet. Így akármit csinál a visszaszámláló a kliens oldalon, az oldal mindenképp le lesz tiltva.
- Persze a kliens oldalon is ki kell írni valamit a user-nek, ha lejár a számláló...
Kicsit programozós feladatnak tűnik ez így, bár lehet hogy a rules-al is lehet ilyesmit, legalább részben.