Tok signálu

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

Zdravím,
chtěl bych se zeptat jak přesně a kde dochází ke zpracování signálů? Mám totiž problém, že se mi signál pro komponentu přenese bez parametrů, tzn handle se provede, ale nedostane žádné parametry. Přitom ve vygenerované url parametr je. Zkoušel jsem, zda něco někde nekazí moje vlastní routy a použil jsem pouze SimpleRoute, ale problém trvá. Předpokládám, že jsem si někde něco špatně podědil/přepsal, ale už nevím kde hledat. Pro vytváření používám továrničku a zkoušel jsem i „vynutit“ vytvoření komponenty hned ve Startupu presenteru.

Za jakékoli postrčení díky

Filip Procházka
Moderator | 4668
+
0
-

Pokud se parametr netýká presenteru tak tam je u něj navíc jméno komponenty, ukaž jaké ti to generuje url a jaká funkce s jakým názvem komponenty má signál přijímat a taky jak generuješ odkaz a kde se nachází templata kde ten odkaz generuješ

Editoval HosipLan (2. 2. 2010 23:34)

Aleš
Člen | 30
+
0
-

vygenerované url:
…/stranka?soubory-id=10&do=soubory-smazat

presenter

<?php

class Front_StrankaPresenter extends BasePresenter{
...
  public function startup(){
    parent::startup();
    $soubory =$this["soubory"] ;
  }
...
  public function createComponentSoubory($name){
        $soubory = new Files("stranka");
        return $soubory;
  }

}
?>

generování odkazů

{foreach $files as $file }
	 <a href="{!$path}{!$file["name"]}" >{$file["name"]}</a>
 <a href="{link smazat!, "id"=>$file["id"] }">smazat</a>)
{/foreach}

Funkce pro přijímání signálu

<?php
class Files extends Control
{
...
    public function handleSmazat($id)
    {
	//echo pouze pro test
        echo "Test - $id -";
    }
...
}
?>

signál se přijme, ale vypíše pouze „Test – -“.

Nicméně si nemyslím, že by to byla chyba komponenty, nefunguje mi ani třeba změna počtu vypisovaných položek u DataGridu. Nicméně signály z něj (datagridu, např pro smazání) fungují v pořádku :-/

Ondřej Mirtes
Člen | 1536
+
0
-

Nepřepisuješ konstruktor Controlu?

Aleš
Člen | 30
+
0
-

Ondřej Mirtes napsal(a):

Nepřepisuješ konstruktor Controlu?

díky, problém vyřešen (u vlastní komponenty), nenapadlo mě, že se to zpracovává přes konstruktor.

Datagrid pořád zlobí, ale hádám že tam bude asi chyba jinde.

PetrP
Člen | 587
+
0
-

Pro budouci generace jeste doplnim že podobný problém může vzniknout i když prepisete PresenterComponent::attached a nezavolate patent::attached. (podobně i u FormControl)