Posts Tagged ‘ helpers

Helpers 2/2 – Select Box

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)

Continuando este tema que lo dejé para continuar viendo otras cosas, me gustaría seguir hablando y creando helpers que ayuden a las personas que no están usando algún framework que ya disponga de algo parecido como Symfony.

Ya habíamos visto en el artículo de introducción llamado Helpers – Funciones genéricas la idea de crear un helper para crear controles input para formularios, ya sean de tipo text, button, submit, checkbox, radio, etc. Hoy me gustaría tratar un helper un poco más complejo para los selects (combo box) ya que si no lo tenemos hay que ir creando componentes de tipo <select> cada vez que obtenemos los datos de la base de datos y suele resultar un poco cansador.

Definamos la base

Tomemos como base crear una función a la cual llamaremos select_helper() que tomará por argumento los datos necesarios para la creación del combo. En un principio necesitaremos los argumentos más principales como el name del componente y las opciones (<option>) que se desplegarán. Este último será tratado como un array asociativo en donde tendremos como clave el value de nuestros options, y como el valor de la clave el texto a mostrar por cada opción. Haciéndolo bien básico podríamos tener el siguiente código

function select_helper($name, $selectOptions)
{
    //-- Cargaermos el texto HTML generado dentro de
    //   la variable $ret para finalmente hacer un return
    $ret = '<select name="' . $name . '">';

    //-- Por cada par (clave => valor) crearemos un <option]> que
    //   iremos concatenando a la variable $ret
    foreach($selectOptions as $key => $value)
    {
        $ret .= '<option value="' . $key . '">' . $value . '</option>';
    }

    //-- Finamente concatenamos el cierre del combo
    $ret .= '</select>';

    //-- Retornamos el HTML para usarlo con un echo
    return $ret;
}

//-- Esto lo podríamos utilizar así
//-- Creamos un array (lo podríamos haber obtenido de la base de datos
//   por ejemplo de una tabla parametrica como por ejemplo lo explicado
//   este artículo)
$paises = array(
    'PY' => 'Paraguay',
    'AR' => 'Argentina',
    'UR' => 'Uruguay'
);

echo select_helper('pais', $paises);

Leer mas

Helpers 1/2 – Funciones genericas

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)

Analizando un poco sobre los famosos helpers mencionados hoy en día en la mayoría de los Frameworks orientados a la web, me pareció interesante la idea de formular alguna explicación de como crearlos a fin de que sean lo más genéricos y reutilizables posible.

Para el ejemplo tomaremos el caso de un helper capaz de crear un input de formulario de la familia de los text, hidden, password, radio, checkbox, button, submit, reset. La idea sería crear una función que genere el HTML necesario para esto. Vayamos a un primer ejemplo y analicemoslo.

function input_helper($name, $type='text', $value='')
{
    $ret = '<input type="' . $type . '" name="' . $name . '" value="' . $value . '">';
    return $ret;
}

echo input_helper('nombre');
echo input_helper('id', 'hidden', 1);
echo input_helper('nombre', 'text', 'John Doe');
echo input_helper('sexo', 'checkbox', 'M');

Esto podría ser de ayuda para lo que necesitamos y es super sencillo. Obligatoriamente deberíamos pasar un nombre para el input y luego opcionalmente un tipo y un valor, tomando en cuenta que si no enviamos el tipo lo tomamos como inputtext

Supongamos que necesitaremos que el helper también sirva para agregar un class para trabajar con CSS. Este ya no sería un atributo obligatorio así que debería ser opcional y lo podremos como último parámetro de entrada. Leer mas