DateTimeI18NBehavior

Como utilizo corretamente essa extensão DateTimeI18NBehavior ?

Eu já coloquei o arquivo na pastar /extensions

Alterei o config/main.php dessa forma:




'components' => array(

[.....]

'i18n' => array (

                        'class' => 'application.extensions.DateTimeI18NBehavior',

                ),



  • Agora qual é a syntaxe exata para aplicar mascaras na minha view ?

  • Onde eu vejo os tipos de máscara que eu posso usar ?

-> Olhei a documentação várias vezes mas não achei um exemplo que ficasse claro para mim.

OBrigado pela ajuda.

Essa extensão não aplica máscaras. Ela ‘intercepta’ os dados enviados pelos forms e os converte para o formato do MySQL antes de salvar. Ao buscar os dados no banco a extensão fará o inverso. Isso geralmente seria um processo chato se tivesse de ser feito por sua conta (usando afterFind e beforeSave).

Para campos com máscaras você poderia usar o CMaskedTextField. Para validar as datas use uma rule apropriada em seu Model.

T+

Sidney Lins

_lins Obrigado pela resposta deu para entender um pouco mais.

Os passos estão lá na própria página da extensão… mas basicamente se resumem a extrair a extensão em extensions e criar o método behaviors no model que você quer automatizar. Ah, e setar a ‘language’=>‘pt’ no teu config/main.php.

A própria extensão identifica os campos date e/ou time do teu model e faz as conversões.

Nota: caso você já tenha códigos nos métodos beforeSave e afterFind dos models que vão receber essa extensão, não esquecer de chamar o método pai (parent::beforeSave(), por exemplo) caso contrário a extensão não funcionará.

Qualquer dúvida adicional posta aí.

I have made a greatly expanded version that I call DateTimeDbBehavior, that tries to parse dates and times using multiple formats into the format required by MySQL in beforeSave, then converts back to i18n in afterSave for other extensions or multiple saves. File attached.2625

DateTimeDbBehavior.php