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
+
0
-

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
+
0
-
@{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
+
0
-

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>
Panda
Člen | 569
+
0
-

Tak pošli ještě šablonu layoutu, protože jak se zdá, tak ten syntax error je v něm.

eldest
Člen | 58
+
0
-

Tak už jsem to vyřešil … děkuju bylo to opravdu v layoutu.

eldest
Člen | 58
+
0
-

Mám tu ještě jeden problém. Snippety mi nefungují když invaliduju a pak je odkaz na jiný Presenter. Odkaz má class=„ajax“ ale nejde to. Nevíte, čím by to mohlo být ?

Ondřej Mirtes
Člen | 1536
+
0
-

Nativní podpora AJAXu v Nette pracuje se signály (handle* metody) a ty můžeš spouštět jen nad aktuálním presenterem.