ifset a n:block skončí vyjímkou

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ondraondra81
Člen | 82
+
0
-

Ahoj,

tak nějak tomu nerozumím proč to tak je,

ale když mám v latte

{ifset $page}
...
<h1 n:block="title">{$page->title}</h1>
.....
{/ifset}

a není definovaná $page, tak to spadne na vyjímce.

Našel jsem nějaké info tady na fóru, že je to vlastnost, ale vlákna jsou 3 a více let stará.

jě nějaká možnost jak to řešit?

Pavel Kravčík
Člen | 1196
+
0
-

Tohle nejde?

{if isset($page)}

Ale ifset jsem nedávno někde v 2.3.2 použil a fungovalo to dobře.

ondraondra81
Člen | 82
+
0
-

ne funguje to úplně stejně :( Nette mám 2.3.2

David Matějka
Moderator | 6445
+
+1
-

tak to spadne na vyjímce.

jake?

ale podminene definovat bloky nejde..

ondraondra81
Člen | 82
+
0
-

jake?

Undefined variable: page

ale podminene definovat bloky nejde..

nechápu proč to nejde/nefuguje

budu to muset řešit nějak jinak

ondraondra81
Člen | 82
+
0
-

tak jako nejlepší řešení se ukázalo udělat dvě šablony a použít $this->setView()

vvoody
Člen | 910
+
0
-

Ten $page je definovany az v sablone?

ondraondra81
Člen | 82
+
0
-

ne $page je definovaný v presenteru

public function renderShow($categoryId, $pageId = NULL)
   {
       /** @var Entity\Category $category */
       $category = $this->catMan->findBySlug($categoryId);
       $this->setView('showCategory');
       $this->template->category = $category[0];

       if(! is_null($pageId)) {
           $page = $this->pageMan->findBySlug($pageId);
           $this->template->page = $page[0];
           $this->setView('showPage');
       }

   }
David Grudl
Nette Core | 8239
+
+2
-

Ifset nema na definici bloku vliv, blok vznikne, jako by tam ifset vubec nebyl.