Custom tags de coldfusion

Cada vez se usan menos porque se tiende a usar funciones pero no hay que olvidarse de las posibilidades que pueden llegar a dar.

Para el que no sepa muy bien de lo que van, las custom tags (como su nombre indica) son etiquetas personalizadas que se pueden crear para hacer una determinada funcionalidad. A diferencia de los includes que son bloques de código, las custom tags pueden recibir parámetros directamente. Pero vayamos al ejemplo practico directamente.

Imaginemos que queremos crear formularios en serie que funcionen todos de la misma forma. Una forma de hacerlo sería hacer una custom para que cree una tabla, las etiquetas del formulario y el submit:

<!--- formulario.cfm --->
<cfparam name="Attributes.formName" type="string" default="miform">

<cfoutput>
<cfif ThisTag.ExecutionMode EQ "Start">
  <!--- cuando se ejecute el inicio de la custom tag --->
  <table cellspacing="0" cellpadding="0" border="0">
  <form name="#Attributes.formName#" method="Post">
<cfelse>
   <!--- cuando se ejecute el final de la custom tag --->
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Enviar"></td>
  </tr>
  </form>
  </table>
</cfif>
</cfoutput>

También podríamos crearnos una custom tag para los campos de los formularios:

<!--- campo.cfm --->
<cfparam name="Attributes.fieldName" type="string">
<cfparam name="Attributes.size" type="numeric">
<cfparam name="Attributes.maxLength" type="numeric">
<cfparam name="Attributes.label" type="string" default="#Attributes.fieldName#">

<cfoutput>
<tr>
  <td>#Attributes.label#&nbsp;&nbsp;</td>
  <td>
    <input
      type="text"
      name="#Attributes.fieldName#"
      size="#Attributes.size#"
      maxlength="#Attributes.maxlength#" >
  </td>
</tr>
</cfoutput>

De esta forma, crear un formulario sería tan sencillo como:

<cf_formulario formName="formu"> 
	<cf_campo fieldName="campo" size="50" maxLength="50" label="El campo1">
	<cf_campo fieldName="campo2" size="50" maxLength="50" label="El campo2">	
</cf_formulario>
Dejar un comentario?

1 Comentarios.

  1. Estoy aprendiendo a programar en coldfusion y no entendia la diferencia entre el include y el cfparam, pero con esto me a quedado claro, muchas gracias por el ejemplo

Deje un comentario


NOTA - Puede usar estosHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.