Citat:
Ursprungligen inskrivet av
Tunnelsork
En väldigt enkel variant kan se ut så här:
<?php
class Template
{
private
$env = [],
$path = null;
public function __construct($path)
{
$this->path = $path;
}
public function set($key, $value)
{
$this->env[$key] = $value;
}
public function render()
{
ob_start();
extract($this->env);
include($this->path);
return ob_get_clean();
}
}
// I din controller:
$tpl = new Template("view.tpl.php");
$tpl->set("foo", "bar");
echo $tpl->render();
/* I din template:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<h1><?= $foo ?></h1>
</body>
</html>
*/
Skickades från m.sweclockers.com
Fantastiskt.
Jag kan inte komma på hur jag skall skicka in flera värden och skriva ut de i min html-template. Jag har ju flera stycken produkter som skall skickas i en orderbekräftelse. Jag måste skicka med dessa produkter in till min html-template.
Här är mina produkter:
while($row = mysql_fetch_row($result_products))
{
$order_items = "INSERT INTO order_items(order_id,product_id,product_name,product_price,quantity,flavor)
VALUES(
'{$row_order_id[0]}',
'$product_id',
'{$row[0]}',
'{$row[1]}',
'$qty',
'$flavor')";
mysql_query($order_items)
or die(mysql_error());
//Mina produkter
$products .= "<p>" . $row[0] . "st " . $qty . " " . $flavor . " " . " " . $row[1] . " " . $qty * $row[1] . "kr</p>";
$total_price += $qty * $row[1];
}
Så här vill jag loopa ut de i min template som sedan skall skcikas via mail:
<table width="100%" border="0" cellpadding="4" cellspacing="2" class="pr">
<tr style="font-size:11px;border-bottom:1px solid #acacac">
<th class="tblhead">Produkt</th>
<th class="tblhead">Smak</th>
<th class="tblhead">Antal</th>
<th class="tblhead">A-pris</th>
<th class="tblhead">Pris</th>
<tr>
<!-- LOOPA UT HÄR -->
<td>Fisk</td>
<td>Choklad</td>
<td>2</td>
<td>399</td>
<td>798</td>
</tr>
</tr>
Såhär anropar jag klassen och skickar in parametrar:
// I din controller:
$orderconfirmation_body = new Template("view.tpl.php");
$orderconfirmation_body->set("bar", $products); //bar är variabelnamnen som kommer att användas i templaten
$orr = $orderconfirmation_body->render();
Det är ju set-metoden jag skickar in de olika värderna som används för att loopa ut allt i templaten.