Zmeny v snippetoch (aký majú vplyv na ich používanie oproti starým)
- misiak
- Člen | 28
Zdravím,
chcel by som sa opýtať aký majú vplyv nové snippety a ako ich používať? Úplne rovnako ako tie staré? Zmenilo sa aj niečo v ich ajaxovaní? Lebo pre Ajax requesty mi to nevracia správny json formát ale niečo takéto:
<?php
<div>
<div id="ewAdminMenu">
<ul>
<li>
<a href="/kostol/www/?do=eventViewer-add" class="ajax">Pridať</a>
</li>
</ul>
</div>
<div id="snippet-eventViewer-eventFlashes"></div>
<div id="snippet-eventViewer-addForm"><form action="/kostol/www/?do=eventViewer-eventAddForm-submit" method="post" id="frm-eventViewer-eventAddForm" class="ajax">
<table>
<tr class="required">
<th><label class="required" for="frmeventAddForm-title">Názov</label></th>
<td><input type="text" class="text" name="title" id="frmeventAddForm-title" required="required" data-nette-rules="{op:':filled',msg:"N\u00e1zov mus\u00ed by\u0165 vyplnen\u00fd."},{op:':filled',rules:[{op:':maxLength',msg:"N\u00e1zov nesmie by\u0165 dlh\u0161\u00ed ako 100 znakov.",arg:100},{op:':minLength',msg:"N\u00e1zov nesmie byt krat\u0161\u00ed ako 5 znakov.",arg:5}],control:'title'}" value="" /></td>
</tr>
<tr class="required">
<th><label class="required" for="frmeventAddForm-date">Dátum a čas</label></th>
<td><input type="text" class="dateTimePicker" name="date" id="frmeventAddForm-date" required="required" data-nette-rules="{op:':filled',msg:"D\u00e1tum a \u010das mus\u00ed by\u0165 vyplnen\u00fd!"},{op:':filled',rules:[],control:'date'}" value="" /></td>
</tr>
<tr>
<th> </th>
<td><input type="checkbox" name="repeat" id="frmeventAddForm-repeat" /><label for="frmeventAddForm-repeat">Opakovať každý týždeň?</label></td>
</tr>
<tr class="required">
<th><label class="required" for="frmeventAddForm-description">Popis</label></th>
<td><textarea cols="40" rows="10" name="description" id="frmeventAddForm-description" required="required" data-nette-rules="{op:':filled',msg:"Popis nesmie by\u0165 pr\u00e1zdny."},{op:':filled',rules:[{op:':minLength',msg:"Popis nesmie by\u0165 krat\u0161\u00ed ako 5 znakov.",arg:5}],control:'description'}"></textarea></td>
</tr>
<tr>
<th> </th>
<td><input type="submit" class="button" name="eventAddFormSubmitOk" id="frmeventAddForm-eventAddFormSubmitOk" value="Pridaj" /></td>
</tr>
</table>
</form>
</div>
<div id="snippet-eventViewer-editForm"></div>
<div id="snippet-eventViewer-ewMainFrame"> <div class="main">
<a href="/kostol/www/udalosti/skusobny-event">Skúšobný event</a>
<a href="/kostol/www/?eventViewer-slug=skusobny-event&do=eventViewer-edit" class="ajax">Uprav</a><br />
<a href="/kostol/www/udalosti/2010-10-16-18-31skusobny-event">Skúšobný event</a>
<a href="/kostol/www/?eventViewer-slug=2010-10-16-18-31skusobny-event&do=eventViewer-edit" class="ajax">Uprav</a><br />
<a href="/kostol/www/udalosti/2010-10-20-17-31-fero-ma-narodky">Fero ma narodky</a>
<a href="/kostol/www/?eventViewer-slug=2010-10-20-17-31-fero-ma-narodky&do=eventViewer-edit" class="ajax">Uprav</a><br />
<a href="/kostol/www/udalosti/skusobny-event-opakovaci">Skúšobný event opakovací</a>
<a href="/kostol/www/?eventViewer-slug=skusobny-event-opakovaci&do=eventViewer-edit" class="ajax">Uprav</a><br />
</div>
</div>
</div>{"state":[]}
?>
s týmto problémom sa už snažím bojovať pár dni no márne. Neviem ako to je možné, používam najnovšiu verziu Nette z git repozitára.
- Mikulas Dite
- Člen | 756
Nějaký json tam je: {"state":[]}
. Pošli template, z toho
bude problém jasnější.
- misiak
- Člen | 28
<?php
<div>
{if $isAdmin}
<div id="ewAdminMenu">
<ul>
<li>
<a href="{link add!}" class="ajax">Pridať</a>
</li>
</ul>
</div>
{/if}
{snippet eventFlashes}
{foreach $flashes as $flash}
<div id="flash" class="{$flash->type}">{$flash->message}</div>
{/foreach}
{/snippet}
{snippet addForm}
{if isset($showAddForm) && $showAddForm == true}
{control eventAddForm}
{/if}
{/snippet}
{snippet editForm}
{if isset($showEditForm) && $showEditForm == true}
{control eventEditForm}
{/if}
{/snippet}
{snippet ewMainFrame}
<div class="list">
<h3>Najbližšie udalosti</h3>
<div class="content-right-event">
{if isset($events)}
{foreach $events as $event}
{if $iterator->isFirst()}
{assign $day = $event->DAY, $month = $event->MONTH}
<span>{$event->start|datetoeventformat|lower}</span>
<p>
<a href="{$control->presenter->link('Events:event', $event->slug)}">{$event->title}</a>
{/if}
{if $day == $event->DAY && $month == $event->MONTH}
, <a href="{$control->presenter->link('Events:event', $event->slug)}">{$event->title}</a>
{else}
{assign $day = $event->DAY, $month = $event->MONTH}
</p>
</div>
<div class="content-right-event">
<span>{$event->start|datetoeventformat|lower}</span>
<p>
<a href="{$control->presenter->link('Events:event', $event->slug)}">{$event->title}</a>
{/if}
{if $iterator->isLast()}
</p>
</div>
{/if}
{/foreach}
<span class="link"><a href="{$control->presenter->link('Events:default')}">Prezrieť kalendár...</a></span>
{else}
<span>V databázi sa nenachádzajú žiadne udalosti.</span>
{/if}
</div>
{/snippet}
</div>
?>
nepomohlo ani celé zaobalenie do snippetu, pokiaľ sa nemýlim, prestalo mi to fungovať na nových snippetoch (po update Nette). Ale asi to najskôr bude moja chyba.
- Vyki
- Člen | 388
Mrkni na https://forum.nette.org/…n-ve-verzi-2?…
Stáhni si Nette 2.0 alfa a dolň zavináče – to je poslední verze, kde snippety fungujou tak nějak v pohodě.
- crempa
- Člen | 198
Zdar, prepisuju projekt z cca rok stare verze nette do dvojky dev a po ajax requestu se me vraci komplet HTML bez znamek jsonu. Nejakej tip co by to mohlo zpusobovat ze zmen za posledni rok? Changelogy s forum jsem se snazil jakz takz projit, ale jsou toho tu desny kvanta.. :-)
Zavinace mam snad vsude, ale mam pocit ze se vubec neaktivuje ajax driver pro realizaci ajax odpovedi..
Diky
- crempa
- Člen | 198
Pouzivam prave alpha verzi takze tam snippety jdou. Ale problem jsem odhalil, takze pro pripadne budouci switchery:
Po vytvoreni nove komponenty je nutne ji rucne invalidovat. Nevim od kdy je to nutne ale drive to tak nebylo.
viz. examples:
<?php
protected function createComponentFifteen()
{
$fifteen = new FifteenControl;
$fifteen->onGameOver[] = callback($this, 'gameOver');
$fifteen->invalidateControl(); //drive nebylo nutne
return $fifteen;
}
?>