Odkaz na signal komponenty cez n:href – nette 2.1 dev

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

Caute, neviete ci sa v novom nette 2.1 dev nemenil sposob generovania url pre signal komponenty? Dodnes som pouzival bezne:

<a n:href="deleteShoppingCartItem! $id">Odstrániť</a>

ale to mi zrazu hlada signal v presentru ale ten je v komponente

error: Unknown signal 'deleteShoppingCartItem', missing handler Nas\ShopModule\AdminModule\OrderPresenter::handledeleteShoppingCartItem()

ked to skusim cez link tak je to ok, takze nemam chybu v tom ze by som v komponente ten signal nemal

{link deleteShoppingCartItem! $id}

Neviete ci sa to menilo?

Šaman
Člen | 2668
+
0
-

Střílím od boku: Zkus přejmenovat handleDeleteShoppingCartItem() na handledeleteShoppingCartItem(). To je jediné, co mě na té hlášce trklo. Jestli to pomůže, tak je chyba v Nette.

David Grudl
Nette Core | 8282
+
0
-

Můžeš se podívat, jaký Latte generuje PHP kod při použití {link} a n:href?

duskohu
Člen | 778
+
0
-

@Šaman skusil som premenuvat handleDeleteShoppingCartItem() na handledeleteShoppingCartItem(), ale nepomohlo
@David Grudl prepac, ale neviem ci som uplne pochopil otazku, chcel si vystup co vygeneruje {link} a co n:href? lebo ak ano prikladam, ak nie, prosim specifukuj inak, tym padom som nepochopil spravne :-)

{link deleteShoppingCartItem! $id}
/sukromne/www.nas.dusan.hudak.com/www/admin/shop/order/edit/55?editOrder-item=22&do=editOrder-deleteShoppingCartItem
n:href="deleteShoppingCartItem! $id"
error: Unknown signal 'deleteShoppingCartItem', missing handler Nas\ShopModule\AdminModule\OrderPresenter::handledeleteShoppingCartItem()
Šaman
Člen | 2668
+
0
-

Myslím, že David chtěl abys v nakešované (tedy už přeložené) šabloně našel PHP kód, který odpovídá tomu n:href a linku.
Šablona bude v temp/cache/_Nette.FileTemplate. Obsahuje už jen php kód, žádná makra, takže např. odkaz na homepage vypadá takto:

<?php

# původně <a href="{$homepage->url}" class="active"><strong>{$homepage->label}</strong></a>
<a href="<?php echo htmlSpecialChars($item->url) ?>" class="active"><strong><?php echo Nette\Templating\Helpers::escapeHtml($item->label, ENT_NOQUOTES) ?></strong></a>
?>
duskohu
Člen | 778
+
0
-

Aha, prepac, nepochopil som spravne :-), takze:

//n:href
href="<?php echo htmlSpecialChars($_presenter->link("deleteShoppingCartItem!", array($id))) ?>"
// {link}
<?php echo Nette\Templating\Helpers::escapeHtml($_control->link("deleteShoppingCartItem!", array($id)), ENT_NOQUOTES) ?>

Takze n:href smeruje na presenter, ale preco? mam tam !

David Grudl
Nette Core | 8282
+
0
-

Máš tam nějaké rozšíření nebo vytváříš vlastní makra nebo něco takového?

duskohu
Člen | 778
+
0
-

@David Grudl mas pravdu pouzivam jedno rozsirenie ktore som vypol a uz to ide, a nasiel som ze asi prepisuje n:href makro. Takze budem kontaktovat tvorcu. Dakujem velmi pekne pani, toto ma ani nenapadlo kde hladat.

enumag
Člen | 2118
+
0
-

Auu. Omlouvám se, tohle je moje chyba. @duskohu dostal na testování jednu z mých experimentálních extensions a teď jsem byl na dva dny pryč (bez netu). Jdu se na to mrknout.