makro n:ifset neumí negaci

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

nevím, jestli je to chyba nebo feature, ale libílo by se mi mít sjednocené chování pro n:if/n:ifset:

<div n:if="!$value">Show it if $value is not empty</div> //v pořádku
<div n:ifset="!$value">Show it if $value is not set</div> //končí se syntax error
redhead
Člen | 1313
+
0
-

Ale do funkce isset() lze dát pouze proměnnou, proto to nejde. Je to kvůli substituci za if(isset(%%)).

Spíš než chybu bych to viděl na feature request a dát na GitHub do issues.

Editoval redhead (15. 7. 2011 12:55)

Mikulas Dite
Člen | 756
+
0
-

Logicky je to nesmysl, při převedení do php by to bylo isset(!$value), tzn. udělal bys bool z neznámé $value. Šlo by upravit to makro, ale přijde mi to wtf (minimálně pro ty, co ví, jak ta makra fungují).

Já na tohle používám párové if (potažmo else), což navíc zamezí opakování toho obalovacího tagu.

redhead
Člen | 1313
+
0
-

Ale nevím, co udělat s více proměnnýma nebo nedej bože s bloky.

<div n:ifset="!$value, $value2, #block">?</div>
22
Člen | 1478
+
0
-

@redahead, mikulas: je mi to jasné už. Muselo být nové makro n:ifnotset. Jako dá se to přežít s n:if :-)