Vkládání bloků do layout.latte

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

Ahoj,

chtěl jsem si udělat jako se načítá content přes {include content} a v šablonách pak {block content}…{/block} to samé pro scripts. Jakmile však napíšu {include scripts}, tak mi to hlásí chybu:
Cannot include undefined block ‚scripts‘

Musí se to někde speciálně ještě registrovat?

Layout.latte

<?php
	...
          <div class="cleaner"></div>

        </nav>

        {include content}

        </section>
        <div id="loading"><p>{_orgasoft.system.loading}</p></div>

        <script src="{$basePath}/js/jquery.js"></script>
        <script src="{$basePath}/js/jquery-ui-1.10.4.custom.min.js"></script>
        <script src="{$basePath}/js/netteForms.js"></script>
        <script src="{$basePath}/js/functions.js"></script>
        <script src="{$basePath}/js/main.js"></script>
        {block scripts}
        {/block}
    </body>
</html>

?>

component.latte

<?php
{block scripts}
<script>
    $('#frm-documentForm-documentForm-files').change(function() {
        var filenameAndSuffix = $('input[type=file]').val().split('\\').pop();
        var filenameArray = filenameAndSuffix.split('.');
        filenameArray.pop();

        var filename = filenameArray.join('.');

        $('#frm-documentForm-documentForm-document-title').val(filename);
    });
</script>
{/block}
{block content}
...
{/block}
?>

Editoval tttpapi (4. 7. 2014 10:39)

Mysteria
Člen | 797
+
0
-

Ta chyba znamená, že ti v té konkrétní šabloně chybí {block scripts}{/block}.

tttpapi
Člen | 100
+
0
-

Takže bych musel mít pak ve všech šablonách {block scripts} … {/block}?
Nejde to jen vkládat tam, kde potřebuji?

TOMeek
Člen | 64
+
0
-

Není toto co hledáš? Bloky {block} a {define} ?

Editoval TOMeek (4. 7. 2014 10:15)

tttpapi
Člen | 100
+
0
-

To už jsem četl, ale moc jsem z toho nepochopil.

Chci mít v layout.latte nějaký blok, do kterého se mi budou vkládat z určitých komponent skripty, pokud je ta komponenta bude vyžadovat.

Pokud jsem použil v layout.latte použil include, tak to skončí errorem.
Pokud jsem použil kombinaci
layout.latte block a v komponentě block
layout.latte block a v komponentě taky define
layout.latte define a v komponentě taky block
layout.latte define a v komponentě taky define

Tak mi ani jedno nefunguje.

tttpapi
Člen | 100
+
0
-

Přidal jsem kód z šablon.

mkoubik
Člen | 728
+
0
-

Z šablony komponenty nemůžeš plnit blok layoutu, protože z něj nedědí (je to úplně jiná šablona, než šablona view presenteru).