Selectbox, $useKeys = FALSE a použití ITranslatoru
- uestla
- Backer | 799
Zdravím!
Nevím, jestli něco dělám špatně já, nebo jestli jsem narazil na poměrně závažnou chybu… Pokusím se rozebrat problém:
// EDIT: pro přehlednost problému mírně zestručněno
Formulář vytvořím následujícím způsobem:
$form = new Form();
$form->setTranslator(new MyTranslator());
$form->addSelect('source', 'form.source')
->addRule(Form::FILLED, 'rule.source.filled');
$options = array(
'form.source.search',
'form.source.facebook',
'form.source.friends',
'form.source.other',
);
$form['source']->setItems($options, FALSE)
->skipFirst('form.source.skipfirst');
// ... atd.
Jednotlivé možnosti se při vykreslení předávají překladači a ten vrátí přeloženou hodnotu. Na výstup se tak dostávají optiony následujícího ražení:
<option>Možnost č. 1 přeložená do češtiny</option>
<!-- atd. -->
Při klasickém použití (tj. když se používají klíče, neboli atributy
value
elementu <option> používají jako ty určující),
funguje vše v pořádku a překládané hodnoty jsou jen „pro čtení“,
aby uživatel věděl, co volí.
Ve chvíli ale, kdy jsou překládané hodnoty těmi klíčovými, nastává fatální problém, protože nikdy nedojde ke splnění pravidla o zvolení hodnoty a formulář nepustí dál.
Co vy na to?
Framework::VERSION = '1.0-dev';
Framework::REVISION = 'f706a3c released on 2010-06-30';
Prosím o vyjádření, předem díky.
Editoval uestla (27. 8. 2010 14:31)