ConfirmationDialog nette 2.x

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

Implementoval jsem si do appky confirmation dialog a zatím funguje tak jak potřebuji, ale narazil jsem na chybu kdy se tam přidělují handlery pro confirm akci.

Komponent má vlastní formatSignalMethod

public function formatSignalMethod($signal)
{
	if ( stripos($signal, 'confirm') === 0 && isset($this->confirmationHandlers[lcfirst(substr($signal, 7))]) ) {
	return '_handleShow';
	}

	parent::formatSignalMethod($signal);
}

Problém nastane když chci přiřadit handle pro otevření dialogu:

{link confirmForm:confirmEnable! id => $item->id}

Nelíbí se mu počet proměnných co do toho handle vstupují, tedy id protože metoda _handleShow nemá žádné:

function _handleShow()
{
	list(,$signal) = $this->presenter->getSignal();
	$confirmName = (substr($signal, 7));
	$confirmName{0} = strtolower($confirmName{0});
	$params = $this->getParameter();

	$this->showConfirm($confirmName, $params);
}

Vyhazuje to tedy exception že se předává více parametrů než je potřeba. Když metodu _handleShow upravím, resp přidám tam proměnnou id tak funguje korektně.

V základu by mě tam asi stačilo jen to id, ale v okamžiku kdy budu do toho confirm dialogu předávat více parametrů, tak nastane problém.

Řešil to někdo z vás?