Je možné získat v presenteru HTML ze šablony pro další použití?
- worsik
- Člen | 40
Ahoj,
potřeboval bych si vytvořit šablonu, která by se nezobrazovala
uživateli, ale která by sloužila pro přípravu vzhledu tvořeného dokumentu
PDF.
Představuji si to tak, že si vytvořím šablonu, nějaká action ji naplní
daty a na konci si z ní vytáhne HTML kód, který pak předá ve formě
stringu funkci, která generuje PDF.
Je nějak možné toto udělat?
Díky za odpovědi
- worsik
- Člen | 40
Nějak jsem z toho nepochopil, kde vezmu ty HTML data…
dejme tomu, ze mam jednoduchy presenter a action
<?php
public function renderDefault()
{
$this->template->rows = dibi::query("SELECT * FROM table)->fetchAll();
$html = $this->__FunkceKterouHledam();
}
?>
a šablonu default.phtml
<?php
{block content}
<table n:if="rows">
{foreach $rows as $row}
{foreach $row as $key => $val}
<tr>
<th>{$key}</th>
<td>{$val}</td>
</tr>
{/foreach}
{/foreach}
</table>
?>
Existuje jednoduchy zpusob, jak v action renderDefault() naplnit promennou
$html?
Zbytek už s TCPDF zvládnu, ale potřebuji dostat HTML data z již naplněné
šablony a tento postup není popsán v žádném příspěvku z toho
odkazu…
- worsik
- Člen | 40
Zkusil jsem takovýto postup:
<?php
public function renderDefault()
{
$this->template->nadpis = "Nadpis ze šablony";
$html = $this->createTemplate()->setFile(APP_DIR."/templates/Homepage/default.phtml")->__toString();
}
?>
a šablonu
<?php
{block content}
<h1>{$nadpis}</h1>
?>
A vyhodilo mi to chybu Undefined variable: nadpis
Když dám nadpis napevno do šablony, tak vše funguje správně, ale neplní to účel, protože chci šablonu naplnit daty a nmít ji statickou.