AJAX a snippety – problém
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- eldest
- Člen | 58
Zdravím,
chtěl bych se zeptat, kam v této template patří všude zavináče. Zkoušel
jsem snad milion kombinací a stále mi to háže chyby:
@{block content}
<a href="{link Jazyky:default pridat}"><img src="{$basePath}/images/add-icon.png">
Přidat nový jazyk</a><br>
{if isset($jazyky)}
{snippet obsah}
<table border="1" cellspacing="0" cellpadding="0" class="vypis">
<tr>
<th># ID</th><th>Název</th><th>Zkratka</th><th>Pořadí</th><th>Akce</th>
</tr>
{foreach $jazyky as $popis => $hodnota}
<tr>
<td>{$hodnota->id}</td><td>{$hodnota->nazev}</td>
<td>{$hodnota->zkratka}</td><td>{$hodnota->poradi}</td>
<td>
<a href="{link Jazyky:default array(editovat,$hodnota->id)}"><img src="{$basePath}/images/edit-icon.png"></a>
<a href="{link Jazyky:default array(smazat,$hodnota->id)}"><img src="{$basePath}/images/Trash-Empty-icon.png"></a>
</td>
</tr>
{/foreach}
</table>
{/snippet}
{/if}
{if isset($akce) && $akce == 'pridat'}
{widget pridatJazyk}
{elseif isset($akce) && $akce == 'editovat'}
{widget editovatJazyk}
{/if}
- Panda
- Člen | 569
@{block content}
<a href="{link Jazyky:default pridat}"><img src="{$basePath}/images/add-icon.png">
Přidat nový jazyk</a><br>
@{if isset($jazyky)}
{snippet obsah}
<table border="1" cellspacing="0" cellpadding="0" class="vypis">
<tr>
<th># ID</th><th>Název</th><th>Zkratka</th><th>Pořadí</th><th>Akce</th>
</tr>
{foreach $jazyky as $popis => $hodnota}
<tr>
<td>{$hodnota->id}</td><td>{$hodnota->nazev}</td>
<td>{$hodnota->zkratka}</td><td>{$hodnota->poradi}</td>
<td>
<a href="{link Jazyky:default array(editovat,$hodnota->id)}"><img src="{$basePath}/images/edit-icon.png"></a>
<a href="{link Jazyky:default array(smazat,$hodnota->id)}"><img src="{$basePath}/images/Trash-Empty-icon.png"></a>
</td>
</tr>
{/foreach}
</table>
{/snippet}
@{/if}
{* Pokud následující komponenty nejsou formuláře a je v nich potřeba AJAX: *}
@{if isset($akce) && $akce == 'pridat'}
@{widget pridatJazyk}
@{elseif isset($akce) && $akce == 'editovat'}
@{widget editovatJazyk}
@{/if}
Doplnění: viz Zavináčová magie v praxi.
Ještě bude potřeba zavináček v layoutu:
@{include #content}
Editoval Panda (23. 8. 2010 11:04)
- eldest
- Člen | 58
Děkuju, ale stejně to háže:
Parse Error
syntax error, unexpected '}'
Line 61: <?php foreach ($iterator = $_cb->its[] = new SmartCachingIterator($menu) as $menu => $item): ?>
Line 62: <li><a href="<?php echo TemplateHelpers::escapeHtml($control->link("Admin:$item")) ?>" class="ajax"><?php echo TemplateHelpers::escapeHtml($menu) ?></a></li>
Line 63: <?php endforeach; array_pop($_cb->its); $iterator = end($_cb->its) ?>
Line 64: </ul>
Line 65: </div>
Line 66: <div class="prava">
Line 67: <?php } LatteMacros::callBlock($_cb, 'content', $template->getParams()) ;if (SnippetHelper::$outputAllowed) { ?>
Line 68: </div>
Line 69:
Line 70: <div id="cleaner"></div>
Line 71: <?php else: LatteMacros::callBlock($_cb, 'content', $template->getParams()) ;endif ?>
Line 72: <div class="footer">
Line 73: <a href="https://nette.org" title="Nette Framework - The most innovative PHP framework"><img
Line 74: src="<?php echo TemplateHelpers::escapeHtml($basePath) ?>/images/nette-powered1.gif" width="80" height="15" alt="Nette Framework powered" /></a>
Line 75: </div>
- Ondřej Mirtes
- Člen | 1536
Nativní podpora AJAXu v Nette pracuje se signály (handle* metody) a ty můžeš spouštět jen nad aktuálním presenterem.