{ifset} – undefinet variable
- rostislavcz
- Člen | 8
Zdravím,
mám malý dotaz, asi něco dělám špatně nebo plně nechápu k čemu slouží makro {ifset}.
Dal jsem do šablony něco takového :
{ifset $article} <p>kód článku</p> {/ifset}
<p>a poté to zase pokračuje html kód</p>
Když mám vypnutý Debugger a proměnná $article nastavená není, tak je vše ok, ovšem když je Debugger zapnutý (a $article nastavený není), tak mi vyskočí undefinet variable $article…
Já přeci nepotřebuji vědět, že tato proměnná není nastavená, když tam mám vloženou podmínku ifset. Nevíte prosím někdo, v čem dělám chybu a nebo jak se dá nějak zrušit vyhazování této chyby?
v šabloně mám pouze tohle:
{ifset $article}
<article>
<header>
<h2 n:block="title">{$article->title}</h2>
{if $user->isInRole('admin')}<a n:href="Administration:edit $article->id">Upravit</a>{/if}
{if $user->isInRole('admin')}<a n:href="Administration:delete $article->id">Odstranit</a>{/if}
</header>
<section>
{!$article->content}
</section>
<footer>
{!$article->footer}
</footer>
<ul id="nextArticle">
<li>{if $article->id -1 > 0} <a n:href="Basic:uvod $article->id -1">Předchozí článek</a>{/if}</li>
<li id="right">{if $article->id +1 <= $count} <a n:href="Basic:uvod $article->id +1">další článek</a>{/if}</li>
</ul>
</article>
{/ifset}
a v presenteru
public function renderUvod($postId) {
if($postId)
{
$post = $this->uvodRepository->fetchOne($postId);
if (!$post) {
$this->error("stránka nebyla nalezena");
}
$this->template->article = $post;
}
Editoval rostislavcz (23. 9. 2014 18:01)
- David Matějka
- Moderator | 6445
Jsi si jisty, ze nikde mimo ifset blok se nesnazis pracovat s tou promennou?
- David Matějka
- Moderator | 6445
Tu „undefined variable“ hlasku to hlasi ve zkompilovane sablone na radku, kde je neco jako
if(isset($article)) {
?
- rostislavcz
- Člen | 8
Právě jsem přišel v čem byla chyba…
Bylo to kvůli tomu, že tam je n:block=„title“
<h2 n:block="title">{$article->title}</h2>
z nějakého důvodu to je správně takto, ale popravdě nevím proč… myslel jsem, že pokud jednou ifset neplatí, tak že vůbec nebude hledět na to co je uvnitř, ani když se tam definuje block…
<h2 n:block="title">{ifset $article->title}{$article->title}{/ifset}</h2>