AppForm: Flash Messages odvozené z rules
- maarlin
- Člen | 207
Napadlo mě udělat takovou extension do Nette, která by jednoduše uměla generovat flash messages (v první verzi třeba zatím jen v češtině) na základě zadaných popisků polí (labelů) a pravidel – tzn. programátor by se mohl zabývat opravdu jen tou logikou aplikace.
Přijde mi totiž, že to je jedna z věcí, kterou tam programátor dopisuje a může to za něj udělat nějaká lépe cvičená opice.
Příklad:
$form->addText('name', 'Jméno:', 30)
->addRule(AppForm::FILLED, NULL);
$form->addText('name', 'E-mail:', 50)
->addRule(AppForm::EMAIL, NULL);
/*
* Automaticky se doplní flashMessage, resp. $form->addError();
* v některém z následujících znění
* "%label je povinné pole"
* "Nevyplnil/a jste %label"
* "Pole %label vyžaduje platnou e-mailovou adresu"
*/
Nechci tady experimentovat s nějakým strojovým skloňováním ve 4.pádě (nevyplnili jste přezdívku /od „Přezdívka:“/), ale kdyby se ty hlášky napsaly nějak lidsky, bylo by to imho použitelné.
Moje 3 důležité otázky zní:
- Neuvažoval jste nad tím už někdo jiný? Nemáte něco hotové? Abych nenosil dříví do lesa.
- Byl by o takovou věc obecně zájem?
- Jde tyto zprávy nějak rozumně navěsit na AppForm?
Editoval maarlin (30. 6. 2010 16:18)
- Majkl578
- Moderator | 1364
K tomu slouží přesně to, co píše uestla.
Příklad:
Nette\Forms\Rules::$defaultMessages = array(
Nette\Forms\Form::FILLED => 'Položka „%label“ musí být vyplněna',
Nette\Forms\Form::LENGTH => 'Položka „%label“ musí být v rozmezí %d a %d znaků',
...
);
Editoval Majkl578 (30. 6. 2010 19:17)
- maarlin
- Člen | 207
Majkl578 napsal(a):
K tomu slouží přesně to, co píše uestla.
Příklad:Nette\Forms\Rules::$defaultMessages = array( Nette\Forms\Form::FILLED => 'Položka „%label“ musí být vyplněna', Nette\Forms\Form::LENGTH => 'Položka „%label“ musí být v rozmezí %d a %d znaků', ... );
Zajímavé, ani jsem nevěděl, že něco takového existuje… :-) Díky.