Formuláře %label a %

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

Při tvorbě formuláře, jehož název obsahuje procento a zároveň je v podmínce proměnná %label vzniká následující chyba.

Pokud dám do názvu procento 1×, pak je vyvolána chyba „too few arguments“ způsobena $message = vsprintf($message, (array) $rule->arg); (jelikože je %label nahrazen za název a pak je provedena vsprintf. Pro tuto funkci je však procento řídící znak.

Pokud je v názvu prodento 2×, pak sice chyba nevznikne, ale v názvu je procento 2×.

$form->addText('procento_alkoholu', 'Alkohol [%]')
	->addRule(Form::FILLED, "'%label' je povinná položka !")
despiq
Člen | 320
+
0
-

to je v poradku ne?
%

%
David Grudl
Nette Core | 8228
+
0
-

Podle dokumentace k sprintf by se procento mělo zapsat jako dva znaky %%.

Foowie
Člen | 269
+
0
-

David Grudl napsal(a):

Podle dokumentace k sprintf by se procento mělo zapsat jako dva znaky %%.

Jak jsem psal výše. Pokud do popisu formulářového prvku vložím místo %%%, tak sice chyba nevzniká, ale při vykreslení daného prvku je v jeho popisu %%;

Shrnutí …

V labelu je %:

  • Popis prvku se zobrazí správně
  • Je vyvolána chyba u validací

V labelu je %%:

  • Chyba u validace je odstraněna
  • Popis prvku však obsahuje %% místo %
David Grudl
Nette Core | 8228
+
0
-

fixed