Nueva versión de la clase PHP para crear formularios de emergencia.

Mejoras desde la versión 0.1:

- Cambio del metodo "Subtitulo" por "Etiqueta"
- Formato del texto dentro del formulario por defecto: Verdana, 12px, negra
- Posibilidad de cambiar el formato del texto dentro del formulario
- Posibilidad de definir campos del tipo textarea
- Posibilidad de definir campos del tipo select
- Corrección de código

Autor: Alejandro Alvarez

PHP:
  1. <?
  2. /**********************************************************/
  3. /* Formulario_rapido 0.5, es una clase PHP para crear     */
  4. /* formularios de emergencia (ver ejemplo)                */
  5. /* Fecha de creación: Domingo, 7 de Enero de 2007         */
  6. /* Fecha de actualización: Viernes, 23 de Marzo de 2007   */
  7. /* Creado por: A. Alejandro Alvarez Ortiz (hieloverde)    */
  8. /**********************************************************/
  9.  
  10. /*
  11. Mejoras desde la versión 0.1:
  12. - Cambio del metodo "Subtitulo" por "Etiqueta"
  13. - Formato del texto dentro del formulario por defecto: Verdana, 12px, negra
  14. - Posibilidad de cambiar el formato del texto dentro del formulario
  15. - Posibilidad de definir campos del tipo textarea
  16. - Posibilidad de definir campos del tipo select
  17. - Corrección de código
  18. */
  19.  
  20. class Formulario_rapido
  21. {
  22.     var $codigo_formulario;     // Bufer que contendra el codigo del formulario
  23.    
  24.     /* Formulario */
  25.     var $formulario='form name="[name]" method="[method]" action="[action]" onSubmit="[on_submit]"';
  26.     var $f_metodo;              // Metodo HTTP para enviar formulario "post" ó "get"
  27.     var $f_accion;              // Destino de los datos
  28.     var $f_nombre;              // Nombre del formulario
  29.     var $f_al_enviar;           // Funcion javascript que se ejecuta antes de enviar el formulario
  30.    
  31.     /* Para el formato por defecto */
  32.     var $_f_tipo="Verdana";
  33.     var $_f_tamaño="12";
  34.     var $_f_color="#000000";
  35.     var $_formato;
  36.    
  37.     /* Campos */
  38.     var $c_tipo;                // text, checkbox, radio, textarea, select, submit
  39.    
  40.     /* Metodo constructor, incluye metodo de envio, destino, nombre del formulario y accion de validación
  41.     Ej: $ob->Formulario_rapido("post","prueba.php","mi_formulario","validacion()"); */   
  42.     function Formulario_rapido($_metodo='',$_accion='',$_nombre='',$_al_enviar='')
  43.     {       
  44.         $this->_formato='style="font-family:'.$this->_f_tipo.'; font-size:'.$this->_f_tamaño.'; color:'.$this->_f_color.';"';
  45.  
  46.         $this->f_metodo=($_metodo!="")?$_metodo:"get";
  47.             $this->formulario=str_replace("[method]",$this->f_metodo,$this->formulario);           
  48.         $this->f_accion=($_accion!="")?$_accion:$_SERVER['PHP_SELF'];
  49.             $this->formulario=str_replace("[action]",$this->f_accion,$this->formulario);
  50.         $this->f_nombre=($_nombre!="")?$_nombre:rand(1000,2000);
  51.             $this->formulario=str_replace("[name]",$this->f_nombre,$this->formulario);
  52.         $this->f_al_enviar=($_al_enviar!="")?$_al_enviar:"";
  53.             $this->formulario=str_replace("[on_submit]",$this->f_al_enviar,$this->formulario);               
  54.     }
  55.    
  56.     function Formato($_fuente_tipo='',$_fuente_tamaño='',$_fuente_color='')
  57.     {   
  58.         $this->_f_tipo=($_fuente_tipo!="")?$_fuente_tipo:$this->_f_tipo;   
  59.         $this->_f_tamaño=($_fuente_tamaño!="")?$_fuente_tamaño:$this->_f_tamaño;
  60.         $this->_f_color=($_fuente_color!="")?$_fuente_color:$this->_f_color;         
  61.         $this->_formato='style="font-family:'.$this->_f_tipo.'; font-size:'.$this->_f_tamaño.'px; color:'.$this->_f_color.';"';
  62.     }
  63.    
  64.     /* Para poner un titulo al formulario (acepta formato html)
  65.     Ej: $ob->Titulo("<h1>Este es el titulo de mi formulario</h1>"); */   
  66.     function Titulo($_titulo)
  67.     {
  68.         $this->codigo_formulario.="<b>".$_titulo."</b><br> rn";   
  69.     }
  70.    
  71.     function Etiqueta($_etiqueta)
  72.     {
  73.         $this->codigo_formulario.="<br>".$_etiqueta."<br> rn";
  74.     }
  75.    
  76.     /* Para la creacion de todo tipo de campos incluidos textarea y select
  77.     Ej: $ob->Campo("Campo 1 ","text","mi_campo","valor del campo");
  78.     Nota: en el caso de un campo "select" el "valor de campo" debe ser un Array */
  79.     function Campo($_etiqueta,$_tipo,$_nombre,$_valor='')
  80.     {       
  81.         if($_tipo=="text" || $_tipo=="checkbox" || $_tipo=="radio" || $_tipo=="submit")
  82.         {
  83.             $_n_campo='input type="[type]" name="[name]" value="[value]"';
  84.             $_n_campo=str_replace("[type]",$_tipo,$_n_campo);   
  85.             $_n_campo=str_replace("[name]",$_nombre,$_n_campo);
  86.             $_n_campo=str_replace("[value]",$_valor,$_n_campo);
  87.             $_n_campo=$_etiqueta." <".$_n_campo."><br> rn";           
  88.         }
  89.         elseif($_tipo=="textarea")
  90.         {
  91.             $_n_campo='textarea name="[name]"';
  92.             $_n_campo=str_replace("[name]",$_nombre,$_n_campo);
  93.             $_n_campo="<".$_n_campo.">".$_valor."</textarea><br> rn";   
  94.         }
  95.         elseif($_tipo=="select")
  96.         {
  97.             if(is_array($_valor))
  98.             {
  99.                 $_n_campo='select name="[name]"';
  100.                 $_n_campo=str_replace("[name]",$_nombre,$_n_campo);
  101.                 $_n_campo="<".$_n_campo."> rn";
  102.                
  103.                 foreach($_valor as $val=>$etq)
  104.                 {
  105.                     $_n_campo.='<option value="'.$val.'">'.$etq.'</option>'."rn";
  106.                 }
  107.                
  108.                 $_n_campo.="</select><br> rn";   
  109.             }
  110.             else
  111.             {
  112.                 return false;
  113.             }   
  114.         }
  115.         else
  116.         {
  117.             return false;
  118.         }       
  119.         $this->codigo_formulario.=$_n_campo;
  120.     }
  121.    
  122.     /* Para terminar el formulario y mostrarlo en pantalla
  123.     Ej: $ob->Cierra_formulario(); */   
  124.     function Cierra_formulario()
  125.     {
  126.         $this->codigo_formulario="<".$this->formulario." ".$this->_formato.">rn".$this->codigo_formulario."rn</form>rn";
  127.         echo $this->codigo_formulario;
  128.     }   
  129. }
  130.  
  131. ##################
  132. # EJEMPLO DE USO #
  133. ##################
  134.  
  135. /*
  136. - Crear formulario
  137. Formulario_rapido(metodo del formulario,url destino,nombre,js al enviar -opcional-)
  138. Ejemplo: */
  139.  
  140. $f=new Formulario_rapido("get","prueba.php","mi_forma","return valida_formulario();");
  141.  
  142. /*
  143. - Formato para el texto
  144. Formato()
  145. Ejemplo:
  146. */
  147. $f->Formato("Arial","13","#0000FF");
  148.  
  149. /*
  150. - Titulo
  151. Titulo(aqui va el titulo)
  152. Ejemplo: */
  153. $f->Titulo("Este es el titulo de mi formulario");
  154.  
  155. /*
  156. - Etiqueta
  157. Etiqueta(texto para la etiqueta)
  158. Campo de texto */
  159. $f->Etiqueta("Este es un ejemplo de un etiqueta");
  160.  
  161. /* Campo de texto */
  162. $f->Etiqueta("Campo de texto");
  163. $f->Campo("Campo 1 ","text","mi_campo");
  164.  
  165. /* Radio */
  166. $f->Etiqueta("Radio");
  167. $f->Campo("Opcion 1 ","radio","opcion","1");
  168. $f->Campo("Opcion 2 ","radio","opcion","2");
  169. $f->Campo("Opcion 3 ","radio","opcion","3");
  170.  
  171. /* Checkbox */
  172. $f->Etiqueta("Checkbox");
  173. $f->Campo("Casilla 1","checkbox","casilla","marcada");
  174.  
  175. /* Textarea */
  176. $f->Etiqueta("Textarea");
  177. $f->Campo("Area de Texto ","textarea","mi_texto","Contenido de la area de texto");
  178.  
  179. /* Select
  180. En este caso el valor del campo debera ser un Array simple que contenga las opciones
  181. del campo Select, tal como se muestra en el ejemplo:
  182. */
  183. $f->Etiqueta("Select");
  184. $f->Campo("Lista desplegable ","select","mi_lista",array("a"=>"Opción A","b"=>"Opción B","c"=>"Opción C"));
  185.  
  186. /* Submit */
  187. $f->Etiqueta("Submit");
  188. $f->Campo("","submit","enviar"," Enviar ");
  189.  
  190. /* Cierra e imprime el código del formulario en pantalla */
  191. $f->Cierra_formulario();
  192. ?>

Popularidad: 15%