Autor: ICe

output

Příkaz pro definování a plnění kanálů (conduits).

Tento příkaz je v tuto chvíli dostupný jen v administračním rozhraní jNP.

Za normálních okolností výstup ze šablony směřuje na místo, kde se vyskytuje příslušný text nebo příkaz. Pomocí příkazu output je možné výstup nasměřovat jinam – do tzv. kanálů (conduits):

  • Každý kanál je definován svým jménem; v prostředí TFS je uložené jeho místo (typicky tam, kde byl vytvořen).
  • Během vypisování stránky každý kanál shromažďuje výstup, který mu patří.
  • Na místo kanálu se nakonec vloží veškerý nasbíraný text kanálu
output name [ new | continue | reset | switch ] [ once key ]
  statement-body
/output
name
Jméno kanálu.
new
Vytvoří nový kanál. Způsobí chybu, pokud kanál s daným jménem už existuje 1.
continue
Doplní existující kanál. Způsobí chybu, pokud kanál s daným jménem ještě neexistuje 1.
reset
Přepíše dosavadní obsah kanálu.
switch
Změní místo kanálu z původního na místo příkazu s tímto přepínačem. Hodí se např. na přesunutí javascriptů ke konci HTML dokumentu.
once key
Výraz key specifikuje klíč obsahu. Daný obsah se generuje, pokud pro daný klíč kanál ještě nebyl generován.
statement-body
Výchozí obsah kanálu. Lze jej doplnit (continue) nebo přepsat (reset).

1) Není-li uveden žádný klíč (new nebo continue) bude obsah do kanálu doplněn (pokud kanál s daným jménem již existuje) nebo se vytvoří nový kanál s tímto obsahem (pokud kanál s daným jménem dosud neexistuje).

Příklad: Příkaz output
Šablona main_template
<html>
<head>
	<title>Output</title>
	{output "styles" new}
		<link rel="stylesheet" href="screen.css" type="text/css">
	{/output}
</head>
<body>
	<h1>Output</h1>
	{while range(1,4)}
		{output "styles" continue once "calendar-css"}
			<link rel="stylesheet" href="calendar.css" type="text/css">
		{/output}
		{_}. <input type="text" class="calendar">
	{/while}
	{_template.footer_template}
</body>
</html>
Šablona footer_template
{output "styles" continue}
	<link rel="stylesheet" href="footer.css" type="text/css">
{/output}
<div id="footer">
	Lorem ipsum dolor sit amet.
</div>
Výstup
<html>
<head>
	<title>Output</title>
	<link rel="stylesheet" href="screen.css" type="text/css">
	<link rel="stylesheet" href="calendar.css" type="text/css">
	<link rel="stylesheet" href="footer.css" type="text/css">
</head>
<body>
	<h1>Output</h1>
	1. <input type="text" class="calendar">
	2. <input type="text" class="calendar">
	3. <input type="text" class="calendar">
	4. <input type="text" class="calendar">
	<div id="footer">
		Lorem ipsum dolor sit amet.
	</div>
</body>
</html>

Styl pro kalendář se přidá jen jednou, protože příkaz output obsahuje přepínač once.

Pro vložení příspěvku do diskuse se přihlašte.