Smarte maler i PHP

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.]]>

Produkttest: Fitbit Charge 4

Fitbit har kanskje ikke oppdatert utseende på sin nyeste Charge, men det er innsiden som teller, som de sier og der har det skjedd ting. Det amerikanske selskapet ble kjøpt av Google for 2,1...