Estendendo Helpers no Kohana Framework
July 31st, 2008 by newtonOs helpers no Kohana Framework não passam de classes estáticas (que não precisam ser instanciadas), e você pode precisar adicionar funcionalidades à um método ou criar suas próprias funcionalidades. Para isso, você vai precisar criar uma extensão do Helper.
O primeiro passo é ir até o diretório da sua aplicação (por padrão ele é chamado application) e criar um diretório chamado helpers, caso ele ainda não exista, claro, e criar um arquivo chamado MY_form.php. É importante ressaltar que o prefixo MY_ pode ser configurado.
No primeiro exemplo, vamos estender o form helper do framework para criar o input date. Neste caso, utilizamos o plugin datePicker para jQuery (biblioteca javascript) onde, para colocar o seletor de data (calendário) ao lado do combo, basta definir uma classe “date-pick” para o elemento HTML. Vamos ao código:
<?php defined('SYSPATH') or die('No direct script access.');
class form extends form_Core
{
/**
* Creates an HTML form input date tag.
*
* @param string|array input name or an array of HTML attributes
* @param string input value, when using a name
* @param string a string to be attached to the end of the attributes
* @return string
*/
public static function date($data, $value = '', $extra = '')
{
if ( ! is_array($data))
{
$data = array('name' => $data);
}
// Insere atributo class com valor date-pick
$data['class'] = (isset($data['class'])) ? $data['class'].' date-pick' : 'date-pick';
return form::input($data, $value, $extra);
}
} // End form class
Dessa forma, ao usar o código abaixo, será gerado um input text com a classe “date-pick”, e o jQuery faria todo o serviço:
<?php echo form::date('dt_aniversario'); ?>
Você também não terá problemas caso passe outros atributos:
<?php echo form::date( array('name'=>'dt_aniversario', 'title'=>'Data de Aniversário') ); ?>
Na imagem abaixo segue um exemplo do funcionamento do campo data:
