CodeIgniter template kezelője

Hosszabb szünet után ismét itt vagyunk 1 cikkel, melyben a CodeIgniter-be beépített template kezelőt nézzük meg.

A CodeIgniter-nek köszönhetően nagyon szépen el tudjuk választani a vezérlő egységeket az adatbázis műveleteket végző egységektől valamint a megjelenítésért felelős egységektől. Ennek eredményeként könnyen kezelhető és áttekinthető rendszereket hozhatunk létre(ez a forráskódra vonatkozik:)).

Template kezelő segítségével tovább szépülhet a kódunk, mivel ezzel az eszközzel kitakaríthatjuk az összes PHP kódot a megjelenítésért felelős egységekből.

Azt mindenképp hozzá kell tennünk, hogy emiatt lassul az alkalmazásunk, ugyanis a megjelenítésbe mi nem PHP kódot írunk hanem annak a helyettesítésére különböző jelölőket, és ezeket mind értelmeznie kell a templatekezelő rendszernek.

Controller
<?php
 class template_kezeles extends Controller {
 function template_kezeles() {
 parent::Controller();
 //template kezelő betöltése
 $this->load->library(‘parser’);
 }

function index() {
 $fejlec_adat = array(‘cim’=>’Gyönyörű forráskód’, ‘oldal’=>’Főoldal’);
 $this->parser->parse(‘fejlec’, $fejlec_adat);

$tartalom_adat = array(‘szoveg’=>’lorem ipsum’, ‘felhasznalo’=>’Béla’);
 $this->parser->parse(‘szovegblokk’, $tartalom_adat);
 }
 }


Nézzük mi történik a controller-ben, először is betöltjük a template kezelőt a konstruktorban, így a későbbiekben nem kell mindenhol betölteni az osztályon belül. Az index függvényben, nagyon egyszerű dolgok történnek, létrehozunk asszociatív tömböket, majd a megfelelő nézettel együtt átadjuk őket a template kezelőnek, ilyen formában: $this->parser->parse(‘nezetneve.php-nelkul’, $atombunk);.

Megjelenítés

fejlec.php:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
 <html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en” lang=”en”>
 <head>
 <title>{cim}</title>
 </head>


szovegblokk.php:
<body>
 <h3>Üdv, {felhasznalo}!</h3>
 {szoveg}
 </body>
 </html>


A megjelenítés még ennél is egyszerűbb, itt a megfelelő helyen a következő módon érhetjük el az átadott tömb elemeit {tomb_eleme} vagy {valtozonev}. Nézzünk 1 példát ahol SQL eredményeket tudunk ilyen módon kilistázni:

Controller
$adat['felhasznalok'] = $this->db->get(‘felhasznalok’)->result_array();
 $adat['cim'] = ‘Aktív felhasználók’;
 $this->parser->parse(‘listazas’, $adat);


Megjelenítés
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en” lang=”en”>

<head>

<title>{cim}</title>

</head>

<body>

<h2>{cim}</h2>

{felhasznalok}

<strong>{nev}</strong><br />

{email}<br />

{telefonszam}<br />

<hr />

{/felhasznalok}


Láthatjuk, hogy SQL eredmények listázása sem bonyolult ezzel a módszerrel, és mennyivel szebb kódot kapunk azzal hogy nem “<?php echo $valtozonev; ?>” módszert használunk adatok megjelenítésére.