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