nefunkční confirmDialog – problém s přechodem na Nette 2.0beta

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

Zdravím,
netušíte prosím někdo, jak upravit předchozí verzi confirmDialogu (v Nette 2.0dev fungovala) do Nette 2.0beta ?

Nette\Latte\DefaultMacros::$defaultMacros['@confirm'] = 'data-confirm="<?php echo %:formatString% ?>"';

zkoušel jsem

	$latte = new Nette\Latte\Engine;
	$macroSet = new Nette\Latte\Macros\MacroSet($latte->parser);
	$macroSet->addMacro(
	      'confirm',
	      'echo data-confirm="%:formatString%"',
	      'confirm'
	);

i

	$latte = new Nette\Latte\Engine;
	$macroSet = new Nette\Latte\Macros\MacroSet($latte->parser);
	$macroSet->addMacro(
	      '@confirm',
	      'data-confirm="<?php echo %:formatString% ?>"'
	);

ale nic nepomohlo :(
Díky za případné odpovědi

Aurielle
Člen | 1281
+
0
-

Používám verzi podporující překlady, a přidávám toto makro:

// konstruktor
$me->addMacro('@confirm', array($me, 'macroConfirm'));

// samotná metoda
	public function macroConfirm(MacroNode $node, $writer)
        {
                $text = $node->args;
                if(!$text) {
                        $text = 'Do you really want to perform this action?';
                }

                return $writer->write('?> data-confirm="<?php echo %escape(' . "\$template->translate('$text')" . ') ?>"<?php');
        }
drakul
Člen | 37
+
0
-

Můžu se zeptat, odkud se bere $me ?
Protože když nastavím:

$latte = new Nette\Latte\Engine;
$me= new Nette\Latte\Macros\MacroSet($latte->parser);

vyhodí to chybu

Call to a member function getByClass() on a non-object

Díky

drakul
Člen | 37
+
0
-

Tak po 3hodinách laborování jsem přišel na tohle:
do kontruktoru BasePresenteru

	$latte = new Nette\Latte\Engine;
	$me = Nette\Latte\Macros\MacroSet::install($latte->parser);
	$me->addMacro('@confirm', '?> data-confirm="<?php echo %escape(\'%node.args\'); ?>"<?php','confirm');
	$this->template->registerFilter($latte);

Ale pořád mi to hází da confirmDialogu : „Opravdu chcete provést akci XYZ: null“
Nevíte někdo, jak se zbavit toho: " :null" ?

UPDATE:
v latte souboru mám:

<a n:href="doSomeAction!" n:confirm="Opravdu chcete provést akci XYZ ?">do action</a>

Editoval drakul (4. 1. 2012 19:42)