Chyba v template… mezi PC a židlí?

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

Dobrý den,

prosím Vás, mám problém, když použiju 2× v šabloně {block #title}...{/block}. Jde o to, že chci měnit titulek, pokud podmínka platí…

Prolém je ten, že dostávám InvalidStateException, přesněj:

Filter LatteFilter::__invoke: Cannot redeclare block 'title'; on line 58. (in file .../FrontModule/templates/Product/showProduct.phtml)

šablona:

{block #content}

{if $product}
<div id="platno">

{block #title}{$product->producer} - {$product->type}{/block}

<h1><span id="bi">{$product->producer}</span> - {$product->type}</h1>
<h3>{if $product->sex=='man'}pro muže{else}{if $product->sex=='woman'}pro ženy{else}unisex{/if}{/if}</h3>

<div align="center">
<div id="prezentace">
	<a href="#" class="arrowleft">
		<img src="{$basePath}/design/arrowleft.png" width="44" height="33" />
	</a>
	<a href="#" class="arrowright">
		<img src="{$basePath}/design/arrowrightselected.png" width="44" height="33" />
	</a>

	<ul class="points">
		<li class="point"><a href="#"></a></li>
		<li class="point"><a href="#"></a></li>
		<li class="point"><a href="#"></a></li>
		<li class="select-point"><a href="#"></a></li>
	</ul>
	<img id="obrazek" src="{$basePath}/design/bigpicture.png" width="390" height="276" />
</div>
</div>

{if count($product->getGroups())>0}
<h1>
{foreach $product->getGroups() as $group}
{$group->name}{if !$iterator->isLast()}, {/if}
{/foreach}
</h1>
{/if}
{* <h2>Zdravotně nezávazné</h2> *}

<p>
	{$product->description}
<p>

<hr size="1" color="#cccccc" noshade />

<div class="napravo">
	<form action="#" method="post">
		<input class="maly" type="text" size="2" maxlength="2" value="1" />
		<input class="button" type="submit" value="Do košíku" />
	</form>
	<hr class="cleaner" />
</div>

<div id="cena">{$product->price} Kč</div>
<div id="dph">1.788 Kč</div>

{widget addComment $product->id}

</div>
{else}
<h1>{block #title}Produkt neexistuje{/block}</h1>
{/if}
Ondřej Mirtes
Člen | 1536
+
0
-

To nemůžeš no. Co něco takového?

{block #title}
	{if TRUE}Nový titulek{else}{include #parent}{/if}
{/block}
arron
Člen | 464
+
0
-

Mozna budu ukamenovan, ale mam pocit, ze dle MVC (MVP) by mel byt spravny postup zjistit existenci $product v ‚action‘ a eventualne presmerovat na jiny ‚view‘. Ale taky jsem to mozna spatne pochopil. Nicmene pri danem postupu by tento problem nevzniknul:-)

Mesiah
Člen | 240
+
0
-

arron: MVC v tomhle vnimam tak, ze v action ziskavam data, ty dodam do view a jsou-li „pouzitelne“ vykreslim je…
Ale asi by bylo dobre jej presmerovat na nejaky Error presenter…
Děkuju za rady/tipy/postřehy.

Hezky zbytek večera.

arron
Člen | 464
+
0
-

Mesiah napsal(a):

arron: MVC v tomhle vnimam tak, ze v action ziskavam data, ty dodam do view a jsou-li „pouzitelne“ vykreslim je…
Ale asi by bylo dobre jej presmerovat na nejaky Error presenter…
Děkuju za rady/tipy/postřehy.

Hezky zbytek večera.

Ona je to samozrejme hodne filozoficka otazka, jak tohle presne delat. Nicmene co ja jsem pochpil (a pripoustim, ze mozna mylne), tak action si vybere data a podle toho co ziskalo se rozhodne, ktery view zobrazi. Cili v tomto konkretnim pripade by to vedlo na neco jako viewProduct a viewNoProduct.

Nicmene na toto tema se jiste vedlo uz mnoho sahodlouhych debat a dalsi by se vest daly:-)