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
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?