A problémakör elég egyszerű. A weboldalunk vagy alkalmazásunk használata során van, hogy tudatni szeretnénk a felhasználóval egy-egy aktuális üzenetet. Legyen ez egy hibaüzenet, vagy egy állapotsor, mindig és mindenhol jól kezelhetőnek és elérhetőnek kell lennie.
Codeigniter-ben erre akár a controllerben fel is vehetünk egy változót, amit továbbítunk a view-nak. Aztán ha ezt tovább bonyolítjuk, akkor az üzenet típusához igazodva létrehozhatunk egy tömböt is nekik, és más-más színnel kezelhetjük a megjelenítésüket.
Általában három fajta UI üzenet típust különböztetünk meg.
- A hibaüzenet: Piros színnel a weboldalon megjelenő hibákat tünteti fel.
- A sikerüzenet: Zöld színnel közli velünk a sikeres interakciót az oldalon.
- Az információs üzenet: Kék színnel közöl velünk fontos információkat.
De egyszerűbben is hozzáállhatunk Codeigniter-ben az állapotjelentésekhez, használjuk a sütiket ezek tárolására!
Ehhez szükségünk lesz a Session Class-ra, amit az autoload fájlból vagy közvetlenül a controllerből is meghívhatunk.
A sütik használata előtt el ne feledkezzünk a config fájlban “encryption key”-t is beállítani adataink biztonságának érdekében.
Az állapot- és hibaüzenetek tárolására a legalkalmasabb a “flashdata” lehetőség, ami egy olyan sütit tárol, ami csak a következő szerverlekérdezés idejéig érhető el, azután automatikusan törlődik.
Lássunk egy példát egy hibaüzenetre
Esetünkben nem sikerült a bejelentkezés, hibás adatok magadása miatt. Ilyenkor először létrehozzuk a “flashdata” sütinket.
Majd átirányítjuk a felhasználót a belépési oldalra.
A view-ban pedig létrehozhatunk egy olyan sort ami ellenőrzi, hogy van-e hibánk és kiírja azt.
És ilyen egyszerű az egész.