Cambio di rotta … del cliente… non vanno piu bene i si/no nei boolean, deve essere tradotto in base al contesto: per esempio lo stato isActive diventa Attivo/Cancellato, per cui ho buttato via il boolean formatter e sono tornato così:
view admin
array (
'name'=> 'isActive',
'value'=> 'MyHelper::booleanFormatter($data->isActive, "Si","No")',
'filter' => MyHelper::booleanDropDown("Si","No"),
),
view _search
<?php echo $form->dropDownList($model, 'isActive',
MyHelper::booleanDropDown("Si", "No", "Tutti")
); ?>
Da notare: la combo in _search ha “si, no, tuti” (autotradotti come sempre), mentre il filtro di colonna in _admin ha Si,No, perchè il vuoto vale per ‘tutti’. (Adesso non pensate a si/no/tutti invece di attivo/cancellato/tutti, devo ancora fare le traduzioni in 5 lingue…)
Questa cosa funziona benissimo.
Ora … mi è stato chiesto, in tutti i posti dove c’è un concetto di isActive di preselezionare nel filtro la voce ‘Si’ quindi sia nella _search, sia nel filro _admin, sia come filtraggio predefinito della tabella…
Come faccio a mettere questa preselezione ? Non è che il caso utente<>root, che è permanente e l’utente non può modificarla, qui l’utente può modificare il filtro, ma è predefinito a true.
Ho provato a preselezionare la voce Attivi
<?php echo $form->dropDownList($model, 'isActive',
MyHelper::booleanDropDown("Attivo", "Cancellato", "Tutti"),
array('options'=>array(
1=>array('selected'=>'selected'),
)
)
); ?> )
ma così nell’html mi trovo sia la voce ‘tutti’ che la voce ‘attivo’ con l’attribuito selected … e questo non me lo spiego …