Å bruke templates er veldig greit, dersom du ikke trenger å forandre ti sider men bare en. PHP med Smarty gjør det meget enkelt å bruke templates. Med Smarty trenger du ikke å bruke HTML i .php filene eller PHP i HTML. Smarty gjør det også enkelt for deg som er programmerer å sette sammen designet designeren har lagd for deg.
Krav: Ha php installert, http server og selvsagt må du kunne php.
Vi kan se på et eksempel:
<center>Klokken er: <?= data(“H:i:s”) ?></center>
Legg linjen i en fil som .php og se på resultatet. Bare en linje med kode der resultatet forandrer seg hvert gang du laster ned siden på nytt.
Med Smarty hadde vi hatt HTML og PHP i to forskjellig filer, altså, .php og (template).tpl .
Første eksempel ville sett ut slik med Smarty:
<center>Klokken er: {$klokka}.</center>
Ikke test det, du må forsatt få Smarty i gang, resultatet ville sett slik ut:
Klokken er: {$klokka}.
Programmererens jobb
Men nå skal vi se hva jobben til programmeren er. Eksempel:
<?php
include(‘Smarty.class.php’);
$smarty = new Smarty;
$smarty->assign(‘klokka’, date(“H:i:s”));
$smarty->display(‘smarty.tpl’);
?>
Det første var å få tilgang til Smarty.class.php, det er der all magien ligger. Du trenger bare å bruke funksjonen assign() for å lage variablen $klokka som templaten skal ta i bruk. Funksjonen display() har jobben om å finne variablen i templaten.
Installere Smarty
Nå skal vi installere Smarty og ta det i bruk.
Last ned Smarty (siste versjon) fra Smarty.php.net.
Filen er sikkert pakket som .gx. Bruk WinZIP eller WinRAR for å pakke ut filen. Etter å ha lastet ned filen og pakket ut, finn mappen Smarty. Legg Smarty der du ønsker den. Senere skal vi konfigurere PHP (php.ini) hvor vi forteller PHP hvor Smarty ligger. Det finnes en konfigurasjonsvaribel med navnet include_patch. Legg neste linje i php.ini:
include_path = “c://Smarty/”
Ellers, husk å skifte c://Smarty om dette ikke er der du la mappen.
Nå er installasjonen ferdig og det er alltid greit å teste om man har gjort alt riktig. Den beste metoden å teste dette på er slik:
<?php
require(‘Smarty.class.php’);
$smarty = new Smarty;
?>
Kjør filen og hvis du ikke får noen feilmeldinger så er nok alt i orden. Om det ikke gikk bra, prøv dette:
<?php
require(‘/usr/local/lib/php/Smarty/Smarty.class.php’);
$smarty = new Smarty;
?>
Dynamisk eksempel
Nå kan vi se på noe litt mer avansert. Vi skal vise fram data fra en MySQL database med Smarty. Vi lagrer en fil med navnet smarty.tpl og skriver dette:
<html>
<head>
<title>Smarty – test</title>
</head>
<body>
<table border=”1″>
<tr>
<th>Id</th>
<th>Navn</th>
</tr>
{section name=”1″ loop=$row}
<tr>
<td>{$row[i].id}</td>
<td>{$row[i].navn}</td>
</tr>
{/section}
</table>
</body>
</html>
Så lagrer vi en fil med navnet test.php og skriver koden:
<?php
include(‘Smarty.clas.php’);
$bind = new mysqli(”, ”, ”, ‘database’);
if (mysqli_connect_errno() != 0){
echo (‘Feil med forbindelsen.’);
exit;
}
$result = $bind->query(‘SELECT * FROM brukere’);
if ($result == FALSE){
echo (‘Feil under forbindelsen.’);
exit;
}
$row = array();
while ($rows = $result->fetch_assoc()){
array_push($row, $rows);
}
$result->close();
$bind->close();
$smarty = new Smarty;
$smarty->assign(‘row’, $row);
$smarty->display(‘Smarty.tpl’);
?>
Fyll linjen med dine egne data, username, password, hostname:
$bind = new mysqli(”, ”, ”, ‘database’);
Husk å legge filene i samma mappe eller så må du endre display(‘Smarty.tpl’); for eksempel med display(‘/template/Smarty.tpl’);
Flere ressurser
Håper du fikk en god inntrykk av Smarty og hvor enkelt det er å bruke templates.
For mer informasjon om Smarty, se Google.
