4.8 Helpers

Nov 1, 2011

Los helpers (ayudas) se usan en los views. Encapsulan código en métodos para su fácil reuso.

KumbiaPHP ya viene con helpers creados.

Pero lo realmente útil, es que los usuarios se pueden crear sus propios helpers y colocarlos en app/extensions/helpers/. Y después usarlos tranquilamente en sus views, KumbiaPHP se encarga de cargar transparentemente sus helpers así como los uses.

4.8.1 Clase Html

Clase con métodos estáticos con la que podemos crear etiquetas HTML optimizadas respetando las convenciones de KumbiaPHP.

Html::img()

Permite incluir una imagen

$src ruta de la imagen

$alt atributo alt para la imagen

$attrs atributos adicionales

img ($src, $alt=NULL, $attrs = NULL)

/*Ejemplo*/

echo Html::img(‘spin.gif’,’una imagen’); //se muestra la imagen spin.gif que se encuentra dentro de «/public/img/»

//con el artibuto alt ‘una imagen’

Html::link()

Permite incluir un link

$action ruta a la acción

$text texto a mostrar

$attrs atributos adicionales

Html::link ($action, $text, $attrs = NULL)

/*Ejemplo*/

echo Html::link(‘pages/show/kumbia/status’,’Configuración’); //se muestra un link con el texto ‘Configuración’

Html::lists()

Crea una lista html a partir de un array

$array contenido de la lista

$type por defecto ul, y si no ol

$attrs atributos adicionales

Html::lists($array, $type = ‘ul’, $attrs = NULL)

/*Ejemplo*/

$ar = array(‘Abdomen’ => ‘Abdomen’,

‘Brazos’ => ‘Brazos’,

‘Cabeza’ => ‘Cabeza’,

‘Cuello’ => ‘Cuello’,

‘Genitales’ => ‘Genitales’,

‘Piernas’ => ‘Piernas’,

‘Tórax’ => ‘Tórax’,

‘Otros’ => ‘Otros’);

//$ar el array que contiene los items de la lista

echo Html::lists($ar, $type = ‘ol’); //Muestra una lista <ol></ol>

$ar2 = array(‘Abdomen’,’Brazos’,’Cabeza’,’Cuello’,’Genitales’,’Piernas’,’Tórax’,’Otros’);

echo Html::lists($ar2, $type = ‘ol’); //Muestra una lista <ol></ol>

Html::gravatar()

Incluye imágenes de gravatar.com

$email Correo para conseguir su gravatar

$alt Texto alternativo de la imagen. Por defecto: gravatar

$size Tamaño del gravatar. Un numero de 1 a 512. Por defecto: 40

$default URL gravatar por defecto si no existe, o un default de gravatar. Por defecto: mm

Html::gravatar($email, $alt=’gravatar’, $size=40, $default=’mm’)

echo Html::gravatar( $email ); // Simple

echo Html::link( Html::gravatar($email), $url); // Un gravatar que es un link

echo Html::gravatar( $email, $name, 20, ‘http://www.example.com/default.jpg‘); //Completo

Html::includeCss()

Incluye los archivos CSS que previamente fueron cargados a la lista mediante Tag::css()

Tag::css(‘bienvenida’); //Pone en lista un CSS (app/public/css/bienvenida.css)

echo Html::includeCss(); //Adiciona los recursos enlazados de la clase en el proyecto

Html::meta()

Crea un metatag y lo agrega a una lista estática que será añadida más adelnate mediante Html::includeMetatags();

$content contenido del metatag

$attrs atributos adicionales del tag

Html::meta($content, $attrs = NULL)

Html::meta(‘Kumbiaphp-team’,»name = ‘Author'»);

//Agrega: <meta content=»Kumbiaphp-team» name = ‘Author’ />

Html::meta(‘text/html; charset=UTF-8’,»http-equiv = ‘Content-type'»);

//Agrega: <meta content=»text/html; charset=UTF-8″ http-equiv = ‘Content-type’ />

Html::includeMetatags()

Agrega los metatag que previamente se habían agregado

Html::meta(‘Kumbiaphp-team’,»name = ‘Author'»);

Html::meta(‘text/html; charset=UTF-8’,»http-equiv = ‘Content-type'»);

echo Html::includeMetatags(); //Visualiza <meta content=»Kumbiaphp-team» name = ‘Author’/>

Html::headLink()

Agrega un elemento de vinculo externo de tipo <link> a la cola de enlaces (para poder ser visualizado se requiere de Html::includeHeadLinks() de modo similar que Html::includeCss())

$href dirección url del recurso a enlazar

$attrs atributos adicionales

Html::headLink($href, $attrs = NULL)

Html::headlink(‘http://www.kumbiaphp.com/public/style.css‘,»rel=’stylesheet’,type=’text/css’ media=’screen'»); //Se agrega a la cola de links el enlace a un recurso externo, en este caso la hoja de estilo ubicada en «http://www.kumbiaphp.com/public/style.css«

/*Agrega a la cola de links «<link rel=»alternate» type=»application/rss+xml» title=»KumbiaPHP Framework RSS Feed» href=»http://www.kumbiaphp.com/blog/feed/» />» con lo cual podemos incluir un feed sin usar las convenciones de kumbiaphp */

Html::headlink(‘http://www.kumbiaphp.com/blog/feed/‘,»rel=’alternate’ type=’application/rss+xml’ title=’KumbiaPHP Framework RSS Feed'»);

Html::headlink(‘http://www.kumbiaphp.com/favicon.ico‘,»rel=’shortcut icon’,type=’image/x-icon'»); //Agrega la etiqueta <link> para usar un favicon externo

echo Html::includeHeadLinks(); //Muestra los links que contiene la cola

Html::headLinkAction()

Agrega un elemento de vinculo interno de tipo <link> a la cola de enlaces (para poder ser visualizado se requiere de Html::includeHeadLinks() de modo similar que Html::includeCss()) respetando las convenciones de KumbiaPHP.

$href dirección url del recurso a enlazar

$attrs atributos adicionales

Html::headLinkAction($action, $attrs = NULL)

/*Agrega a la cola de links «<link rel=»alternate» type=»application/rss+xml» title=»KumbiaPHP Framework RSS Feed» href=»http://www.kumbiaphp.com/blog/feed/» />» con lo cual podemos incluir un feed usando las convenciones de KumbiaPHP.

Siendo ‘articulos/feed’ el nombre de la vista con el contenido del feed */

Html::headLinkAction(‘articulos/feed’, «rel=’alternate’ type=’application/rss+xml’ title=’KumbiaPHP Framework RSS Feed'»);

echo Html::includeHeadLinks(); //Muestra los links que contiene la cola

Html::headLinkResource()

Agrega un elemento de vinculo a un recurso interno con la etiqueta <link> a la cola de enlaces (para poder ser visualizado se requiere de Html::includeHeadLinks())

$resource ubicación del recurso en public

$attrs atributos adicionales

Html::headLinkResource($resource, $attrs = NULL)

Html::headLinkResource(‘favicon.ico’,»rel=’shortcut icon’,type=’image/x-icon'»); //Agrega la etiqueta <link> para usar un favicon interno ubicado en el directorio ‘/public/’

echo Html::includeHeadLinks(); //Muestra los links que contiene la cola

Html::includeHeadLinks()

Incluye los links que previamente se pusieron en cola

Html::headlink(‘http://www.kumbiaphp.com/favicon.ico‘,»rel=’shortcut icon’,type=’image/x-icon'»); //Agrega la etiqueta <link> para usar un favicon externo

Html::headLinkAction(‘articulos/feed’, «rel=’alternate’ type=’application/rss+xml’ title=’KumbiaPHP Framework RSS Feed'»);

echo Html::includeHeadLinks();

4.8.2. Clase Tag

Esta clase nos va a permitir adicionar archivos JS y CSS a nuestro proyecto, bien sean archivos que se encuentren en nuestro servidor o en un servidor externo. También vamos a poder hacer

Las funciones de esta clase son de tipo státicas, lo que nos permite usarlas directamente de la forma como se presentan a continuación.

Tag::css()

Incluye un archivo CSS a la lista

Tag::css(‘bienvenida’); //Pone en lista un CSS (app/public/css/bienvenida.css)

echo Html::includeCss(); //Adiciona los recursos enlazados de la clase en el proyecto

Tag::js()

Incluye un archivo JavaScript a la vista, partial o template

<?php
echo Tag::js(‘jquery/jquery.kumbiaphp’); //Adiciona un archivo javascript (/app/public/javascript/jquery/jquery.kumbiaphp.js)
?>

4.8.3. Clase Form

Clase para el manejo y la creación de formularios

Form::open()

Crea una etiqueta de formulario

$action acción a la que envía los datos, por defecto llama la misma acción de donde proviene

$method ‘POST’, ‘GET’, ‘DELETE’, ‘HEAD’, ‘PUT’. Por defecto se tiene en ‘POST’

$attrs atributos adicionales

Form::open($action = NULL, $method = ‘POST’, $attrs = NULL)

/*Ejemplo*/
<?php echo Form::open(); ?>//inicia un formulario que enviara los datos a la acción que corresponde al controller actual
<?php echo Form::open(‘usuarios/nuevo’); ?> //inicia un formulario que enviara los datos al controller ‘usuarios’ y la acción ‘nuevo’

Form::openMultipart()

Crea una etiqueta de formulario multipart, este es ideal para formularios que contienen campos de subida de archivos

$action acción a la que envía los datos, por defecto llama la misma acción de donde proviene

$attrs atributos adicionales

Form::openMultipart ($action = NULL, $attrs = NULL)

/*Ejemplo*/

echo Form::openMultipart();//inicia un formulario multipart que enviara los datos a la acción que corresponde a la vista actual

echo Form::openMultipart(‘usuarios/nuevo’);//inicia un formulario multipart que enviara los datos al controller ‘usuario’ y la acción ‘nuevo’

Form::close()

Crea una etiqueta de cierre de formulario

/*Ejemplo*/

echo Form::close();

//crea una etiqueta de cierre de formulario </form>

Form::input()

Crea un campo de tipo input

$attrs atributos para el tag

$content contenido interno

Form::input($attrs = NULL, $content = NULL)

/*Ejemplo*/

echo Form::input(‘nombre’);

Form::text()

Crea un campo de tipo input

Siempre que se le da el parámetro name de la forma model.campo, es decir un nombre que contenga un punto dentro del string, se crea el campo de texto con el name= «model[campo]» y el id=»model_campo».

$field Nombre de campo

$attrs atributos de campo

$value valor inicial para el input

Form::text($field, $attrs = NULL, $value = NULL)

/*Ejemplo*/

echo Form::text(‘nombre’); //crea un campo de tipo texto con el parámetro name= «nombre», id = «nombre»

echo Form::text(‘usuario.nombre’); //crea un campo de tipo texto con el parámetro name= «usuario[nombre]», id = «usuario.nombre»

echo Form::text(‘nombre’,»class= ‘caja'»,’55’); //crea un campo de tipo texto con el parámetro name= «nombre», id = «nombre», class= «caja», value = «55»

Form::pass()

Crea un campo de tipo Password

$field nombre de campo

$attrs atributos de campo

$value valor inicial para el campo

Form::pass($field, $attrs = NULL, $value = NULL)

/*Ejemplo*/

echo Form::pass(‘password’); //crea un campo de tipo password con el parámetro name= «password»

Form::textarea()

Crea un textarea

$field nombre de campo

$attrs atributos de campo

$value valor inicial para el textarea

Form::textarea($field, $attrs = NULL, $value = NULL)

echo Form::textarea(‘detalles’); //Crea un textarea

Form::label()

Crea un label y lo asocia a un campo

$text texto a mostrar

$field campo al que hace referencia

$attrs array de atributos opcionales

Form::label($text, $field, $attrs = NULL)

echo Form::label(‘nombre de usuario:’,’nombre’); //Crea un label para el campo nombre con el texto ‘nombre de usuario:’

echo Form::text(‘nombre’);

Form::hidden()

Crea un campo hidden (campo oculto)

$field nombre de campo

$attrs atributos adicionales de campo

$value valor inicial para el campo oculto

Form::hidden($field, $attrs = NULL, $value = NULL)

echo Form::hidden( ‘id’, NULL, 12); //Crea un campo oculto con el name=»id» y el value=»12″

Form::dbSelect()

Crea campo Select que toma los valores de objetos de ActiveRecord, para esta versión del framework el uso de este helper ha sido simplificado. Ya no es necesario instanciar el modelo.

$field nombre del modelo y campo pk (bajo la convención modelo.campo_id)

$show campo que se mostrara

$data array de valores, array(‘modelo’,’metodo’,’param’)

$blank campo en blanco

$attrs atributos de campo

$value valor inicial para el campo

Form::dbSelect($field, $show = NULL, $data = NULL, $blank = NULL, $attrs = NULL, $value = NULL)

Vista

echo Form::dbSelect(‘usuarios.campo_id’); //la forma más fácil, carga el modelo(campo) y muestra el primer campo después del pk(id)

echo Form::dbSelect(‘usuarios.campo_id’, ‘campo’); //muestra el campo y lo ordena ascendentemente

Form::select()

Crea un campo Select (un combobox)

$field nombre de campo

$data array de valores para la lista desplegable

$attrs atributos de campo

$value valor inicial para el campo

Form::select($field, $data, $attrs = NULL, $value = NULL)

$ar2 = array(‘Abdomen’,’Brazos’,’Cabeza’,’Cuello’,’Genitales’,’Piernas’,’Tórax’,’Otros’);

echo Form::Select(‘region’, $ar2, NULL, ‘Cuello’); //Crea un campo Select (un combobox) con el nombre ‘region’ y teniendo preseleccionado ‘Cuello’

Resultado:

<select id=»region» name=»region»>

<option value=»0″>Abdomen</option>

<option value=»1″>Brazos</option>

[…]

</select>

Otra Posibilidad:

$ar2 = array(‘Abdomen’=>’Abdomen’,’Brazos’=>’Brazos’,’Cabeza’=>’Cabeza’,’Cuello’=>’Cuello’,’Genitales’=>’Genitales’,’Piernas’=>’Piernas’,’Tórax’=>’Tórax’,’Otros’=>’Otros’);

echo Form::Select(‘region’, $ar2, NULL, ‘Cuello’);

Resultado:

<select id=»region» name=»region»>

<option value=»Abdomen»>Abdomen</option>

<option value=»Brazos»>Brazos</option>

[…]

</select>

Form::file()

Crea campo File para subir archivos, el formulario se debe abrir con Form::openMultipart()

$field nombre de campo

$attrs atributos de campo

Form::file($field, $attrs = NULL)

echo Form::openMultipart(); //Abre el formulario multipart

echo Form::file(‘subir’); crear el campo para subir archivos

echo Form::close(); //Cierra el formulario

Form::button()

Crea un botón

$text texto del botón

$attrs atributos del botón

Form::button($text, $attrs = NULL)

echo Form::button(‘calcular’); //Crea un botón con el texto ‘calcular’

Form::submitImage()

Crea un botón de tipo imagen siguiendo las convenciones de KumbiaPHP, la imagen deberá estar dentro del directorio ‘/public/img/’

$img ruta de la imagen que usa el botón

$attrs atributos del botón

Form::submitImage($img, $attrs = NULL)

echo Form::submitImage(‘botones/edit.gif’); //Crea un botón con la imagen ‘botones/edit.gif’

Form::submit()

Crea un botón de submit para el formulario actual

$text texto del botón

$attrs atributos del botón

Form::submit($text, $attrs = NULL)

echo Form::submit(‘enviar’); //Crea un botón con el texto ‘enviar’

Form::reset()

Crea un botón reset para el formulario actual

$text texto del botón

$attrs atributos del botón

Form::reset($text, $attrs = NULL)

echo Form::reset(‘reiniciar’); //Crea un botón con el texto ‘reiniciar’

Form::check()

Crea un checkbox

$field nombre de campo

$value valor en el checkbox

$attrs atributos de campo

$checked indica si se marca el campo

Form::check($field, $value, $attrs = NULL, $checked = NULL)

echo Form::check(‘recuerdame’,’1′,»,true); // Crea un check seleccionado con id=»recuerdame» , name=»recuerdame» y value=»1″

echo Form::check(‘recuerdame’,’1′,»,false); // Crea un check NO seleccionado con id=»recuerdame» , name=»recuerdame» y value=»1″

Form::radio()

Crea un radio button

$field nombre de campo

$value valor en el radio

$attrs atributos de campo

$checked indica si se marca el campo

Form::radio($field, $value, $attrs = NULL, $checked = NULL)

$on = ‘masculino’;

echo Form::radio(«rdo», ‘masculino’, NULL, TRUE); //<input id=»rdo1″ name=»rdo» type=»radio» value=»masculino» checked=»checked»>

echo Form::radio(«rdo», ‘femenino’); //<input id=»rdo2″ name=»rdo» type=»radio» value=»femenino»>

Por supuesto… aun falta a esta documentación, por el momento les recomiendo que revisen el CRUD de la versión 1.0 beta 2 allí podrán ver otros cambios, estos se documentaran muy pronto CRUD Beta2 KumbiaPHP

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *