CodeIgniter ékezetes metódusok

Ebben a cikkben egy érdekességet mutatok meg, amivel annyit tudunk elérni, hogy a Controllereken belül létrehozhassunk ékezetes metódusokat amivel szépíteni tudunk az URL-jeinken. Hátha valakinek hasznos lesz. Alapesetben ha létrehozunk a Controllerünkben egy metódust olyan néven, hogy “árvíztűrőtükörfúrógép” hibaüzenetet kapunk, hogy az adott oldal nem elérhető.
Hozzuk tehát létre a következő metódust egy Controllerünkben:
function árvíztűrőtükörfúrógép()
 {
 echo ‘megy’;
 }


Erre válaszként kapjuk majd a hibaüzenetet, hogy az adott oldal nem elérhető.
Nyissuk meg a system/application/codeigniter/CodeIgniter.php-t és keressük meg a következő sort:
$method = $RTR->fetch_method();


És írjuk át erre:
$method = urldecode($RTR->fetch_method());


Ezzel az apró módosítással elértük hogy lehessen ehhez hasonló URL-ünk:

http://domainem.hu/controllerem/árvíztűrőtükörfúrógép

vagy

http://domainem.hu/controllerem/GázVasaló

A CodeIgniter ‘encodeolva’ tehát ilyen formában kapja meg az árvíztűrőtükörfúrógép szót:

%C3%A1rv%C3%ADzt%C5%B1r%C5%91t%C3%BCk%C3%B6rf%C3%BAr%C3%B3g%C3%A9p

és ilyen néven keresi a megfelelő metódust pár sorral lejjebb a CodeIgniter.php-ben, ezért kell előtte az urldecode() függvényt meghivni és úgy már rögtön megtalálja.

FONTOS, hogy ez ‘hackelés’ tehát mindenki saját felelősségére használja. Én sem használom 1 projektben sem, de jól látszik a példán, hogy egy kis hackeléssel látványos eredményeket lehet elérni, de azért csak óvatosan!