Ako správne vložím {block #head} z Controleru?
- Jamicon
- Člen | 19
Chcem máť na svojej stránke EditorControl, ktorý má vo svojej šablone:
{block head}
<script src="{$basePath}/HtmlBox/jquery.codify.min.js" type="text/javascript"></script>
<script src="{$basePath}/HtmlBox/htmlbox.colors.js" type="text/javascript"></script>
<script src="{$basePath}/HtmlBox/htmlbox.styles.js" type="text/javascript"></script>
<script src="{$basePath}/HtmlBox/htmlbox.syntax.js" type="text/javascript"></script>
<script src="{$basePath}/HtmlBox/htmlbox.undoredomanager.js" type="text/javascript"></script>
<script src="{$basePath}/HtmlBox/htmlbox.min.js" type="text/javascript"></script>
<link rel="stylesheet" media="screen,projection,tv" href="{$basePath}/css/{$css}" type="text/css">
{/block}
Scripty v inej časti aplikácie nepotrebujem, preto ich nechcem vkladať do
@layout.latte.
EditForm volám z viacerých presenterov klasicky, továrničkou. Controler
funguje, ale výrez zdroja stránky vyzerá takto:
<script type="text/javascript" src="/lekari2/js/novinky.js"></script>
<script type="text/javascript" src="/lekari2/js/identifikacia.js"></script>
</head>
<body>
<div>
<table style="width: 100%">
<td valign="top"> <script src="/lekari2/HtmlBox/jquery.codify.min.js" type="text/javascript"></script>
<script src="/lekari2/HtmlBox/htmlbox.colors.js" type="text/javascript"></script>
<script src="/lekari2/HtmlBox/htmlbox.styles.js" type="text/javascript"></script>
<script src="/lekari2/HtmlBox/htmlbox.syntax.js" type="text/javascript"></script>
<script src="/lekari2/HtmlBox/htmlbox.undoredomanager.js" type="text/javascript"></script>
<script src="/lekari2/HtmlBox/htmlbox.min.js" type="text/javascript"></script>
<link rel="stylesheet" media="screen,projection,tv" href="/lekari2/css/clanok.css" type="text/css" />
Chcem vedieť či sa dá aby som mal {block head} na správnom mieste na stránke.
- Václav Mašín
- Člen | 34
Nejsem si jist, že správně rozumím otázce, ale nestačí v takovém
případě v hlavní šabloně na daném místě uvést prostě jen
{block #head}{/block}
?
- Jamicon
- Člen | 19
Václav Mašín napsal(a):
Nejsem si jist, že správně rozumím otázce, ale nestačí v takovém případě v hlavní šabloně na daném místě uvést prostě jen
{block #head}{/block}
?
Bohužiaľ nestačí, {block #head}{/block} v layout.latte mám.
EditorControl vyrába továrnička, pokiaľ si to dobre pamätám, kǒd
spúšťa až šablóna presenteru a vtedy je už blok <head> možno aj
poslaný prehliadaču, takže do neho zasiahne už jedine javascript.
Vyriešil som to takto. Presenter má takúto šablónu:
{block head}
{control editorForm:head}
{/block}
{block content}
{control editorForm content}
Editor má 2 šablóny, v prvej časti je kód, patriaci do hlavičky, renderovaný metódou renderHead()
protected function renderHead() {
$template = $this->template;
$template->setFile(dirname(__FILE__) . '/templates/editorHeadForm.latte');
$template->css = $this->model->getTyp() . ".css";
$template->render();
}
Metóda render() zostala nezmenená. Konečne mi táto časť funguje tak ako potrebujem, ďakujem za spoluprácu.
Editoval Jamicon (1. 11. 2011 15:02)