PHP Classes

File: class_campo_001.php3

Recommend this page to a friend!
  Classes of Devta Singh   Form auto Generator   class_campo_001.php3   Download  
File: class_campo_001.php3
Role: ???
Content type: text/plain
Description: Class Campo (Field)
Class: Form auto Generator
Author: By
Last change:
Date: 23 years ago
Size: 11,153 bytes
 

Contents

Class file image Download
<? ########################################### //inicio definicion clase Campo class Campo { ########################################### //variables de definicion de campo var $nombre; //nombre del campo var $tipo; //tipo de campo (según la lista de arriba) var $valor; //valor asignado por defecto al campo var $longitud; //(tipos TEXT y PASSWORD) -> longitud visible del campo //(tipo TEXTAREA) -> numero de columnas var $longitud_maxima; //(tipos TEXT y PASSWORD) -> longitud máxima del contenido del campo //(tipo TEXTAREA) -> numero de filas (líneas) var $valores; //(tipos RADIO y SELECT) -> lista de valores posibles del campo var $evento; //evento de javascript a situar dentro del código de campo var $evento_funciones;//código de las funciones de javascript en caso de que el evento (anterior) lo requiera var $habilitado; //especifica si el campo está habilitado o deshabilitado (disabled) var $deshabilitado; var $rotulo; //TEXTo que acompaña y describe el campo var $rotulos; //(tipos RADIO y SELECT) -> lista de rotulos para cada uno de los valores var $rotulo_pos; //posición del rótulo var $rotulo_estilo; //estilo css del rótulo var $poner_rotulos; //determina si los campos se muestran con rótulos o sin ellos var $poner_br; //determina si se incluirán <BR> en los rótulos mostrados var $destacar_campo; //destaca el campo cuyo valor es el valor por defecto (RADIO y SELECT) ########################################### //funciones //función que inicia el campo function inicia_campo(){ #global $multiple,$valor; $dump=""; if($this->tipo=="TEXT" || $this->tipo=="HIDDEN" || $this->tipo=="CHECKBOX" || $this->tipo=="PASSWORD" || $this->tipo=="BUTTON"){ $dump="\n<INPUT TYPE=\"$this->tipo\" NAME=\"$this->nombre\""; } elseif ($this->tipo=="SELECT") { $dump="\n<SELECT NAME=\"$this->nombre\"".$this->deshabilitado.$this->multiple.$this->evento.">"; if($this->poner_rotulos){ if($this->poner_br){ $br="\n<br>"; } else { $br=""; } $dump=$br.$this->rotulo.$dump; } } elseif ($this->tipo=="TEXTAREA") { $dump="\n<TEXTAREA NAME=\"$this->nombre\"".$this->deshabilitado.$this->multiple.$this->evento.""; } return($dump); } //función que dibuja el nucleo del campo function nucleo_campo(){ #global $tipo,$valor,$valores,$rotulos,$longitud,$longitud_maxima; #global $rotulo_estilo,$rotulo_pos,$nombre; $dump=""; if($this->tipo=="TEXT" || $this->tipo=="PASSWORD"){ //campo tipo TEXT o PASSWORD $dump=" SIZE=\"$this->longitud\" "; $dump.="MAXLENGTH=\"$this->longitud_maxima\" "; $dump.="VALUE=\"$this->valor\""; } elseif($this->tipo=="HIDDEN"){ //campo tipo HIDDEN $dump.=" VALUE=\"$this->valor\""; } elseif($this->tipo=="CHECKBOX"){ //campo tipo CHECKBOX $dump.=" VALUE=\"$this->valor\""; } elseif ($this->tipo=="SELECT") { //campo tipo SELECT $listaval=explode(",",$this->valores); $listarot=explode(",",$this->rotulos); $n=SIZEof($listaval); for($c=0;$c<$n;$c++){ $val=$listaval[$c]; $rot=$listarot[$c]; if($this->valor==$val){ $seleccionado=" SELECTED"; $marca="->"; } else { $seleccionado=""; $marca="&nbsp;&nbsp;&nbsp;&nbsp;"; } $dump.="\n<OPTION VALUE=\"$val\"$seleccionado>$marca$rot</OPTION>"; } } elseif ($this->tipo=="RADIO") { //campo tipo RADIOBUTTON $listaval=explode(",",$this->valores); $listarot=explode(",",$this->rotulos); $n=sizeof($listaval); for($c=0;$c<$n;$c++){ $val=$listaval[$c]; $rot=$listarot[$c]; //si se ha de destacar el campo seleccionado if($this->destacar_campo){ if($this->valor==$val){ $seleccionado=" CHECKED"; $marca="#"; $destacar_campo1="<b>(</b>"; $destacar_campo2="<b>)</b>"; $destacar_rotulo1="<b>"; $destacar_rotulo2="</b>"; $destacar1="<b>"; $destacar2="</b>"; } else { $seleccionado=""; $marca=""; $destacar_campo1=""; $destacar_campo2=""; $destacar_rotulo1=""; $destacar_rotulo2=""; } } //si se establecio $poner_rotulos if($this->poner_rotulos){ if($this->poner_br){ $br="\n<br>"; } else { $br=""; } //pone los rotulos correspondientes $campo_="\n$destacar_campo1<INPUT TYPE=\"RADIO\" NAME=\"$this->nombre\" VALUE=\"$val\"$seleccionado$this->deshabilitado$this->evento>$destacar_campo2"; $letrero_="\n$br<SPAN CLASS=\"$this->rotulo_estilo\">$destacar_rotulo1$marca$rot$destacar_rotulo2</SPAN>"; //pone el rotulo en el sitio indicado if($this->rotulo_pos==6){ $dump.=$campo_.$letrero_; } elseif($this->rotulo_pos==4) { $dump.=$letrero_.":".$campo_; } else { $dump.="$campo_$letrero_<br>"; } }else { $dump.="\n<INPUT TYPE=\"RADIO\" NAME=\"$this->nombre\" VALUE=\"$val\"$seleccionado$this->deshabilitado$this->evento>"; } }//fin del for } elseif ($this->tipo=="TEXTAREA") { //campo tipo TEXTAREA $dump=" cols=\"$this->longitud\""; $dump.=" rows=\"$this->longitud_maxima\">"; $dump.="$this->valor"; } elseif($tipo=="BUTTON"){ //campo tipo BUTTON $dump.=" VALUE=\"this->$valor\""; }//fin del if return($dump); }//fin de la funcion function finaliza_campo(){ $dump=""; if($this->tipo=="TEXT" || $this->tipo=="HIDDEN" || $this->tipo=="CHECKBOX" || $this->tipo=="PASSWORD" || $this->tipo=="BUTTON"){ $dump=$this->deshabilitado.$this->evento.">"; } elseif ($this->tipo=="SELECT") { $dump="\n</SELECT>"; } elseif ($this->tipo=="TEXTAREA") { $dump="</TEXTAREA>"; } return($dump); } //constructor //la función constructora es la que se llama igual que la clase function Inicializa_Campo($campo){ #global $nombre,$tipo,$valor,$valores,$rotulos,$evento,$habilitado,$rotulo,$rotulo_pos,$rotulo_estilo,$js_funciones,$multiple; #global $longitud,$longitud_maxima,$deshabilitado; //establece las variables de control de errores $allright=1; $error_msg=""; $error_num=0; //toma el valor del nombre de campo $this->nombre=$campo["nombre"]; $this->tipo=$campo["tipo"]; $this->valor=$campo["valor"]; $this->longitud=$campo["longitud"]; $this->longitud_maxima=$campo["longitud_maxima"]; $this->valores=$campo["valores"]; $this->rotulos=$campo["rotulos"]; $this->multiple=$campo["multiple"]; $this->evento=$campo["evento"]; $this->habilitado=$campo["habilitado"]; $this->rotulo=$campo["rotulo"]; $this->rotulo_pos=$campo["rotulo_pos"]; $this->rotulo_estilo=$campo["rotulo_estilo"]; $this->js_funciones=$campo["evento_funciones"]; //comprueba errores //si no se especificó nombre del campo if($this->nombre==""){ $allright=0; $error_num++; $error_msg[($error_num - 1)]="Error $error_num - No se especifico NOMBRE del campo, es imprescindible..."; } //si no se especificó tipo del campo if($this->tipo==""){ $allright=0; $error_num++; $error_msg[($error_num - 1)]="Error $error_num - No se especifico TIPO del campo, es imprescindible..."; } //determina si esta deshabilitado if($this->habilitado){ $this->deshabilitado=""; } else { $this->deshabilitado=" disabled "; } //si todo ha salido bien, devuelve true, los variables son globales if($allright){ return(true); } else { $error_msg=implode("\n<BR>",$error_msg); print "\n<BR><BR>Se han producido ($error_num) errores al definir el campo:<hr>$error_msg"; return(false); } } function volcado_campo(){ //esta funcion devuelve el codigo para generar el campo //variables globales #global $tipo,$nombre,$rotulo,$rotulo_pos,$rotulo_estilo,$js_funciones,$valores; //inicializa el campo a null $dump=""; //si hay funciones (javascript) definidas las incorpora al código if($this->js_funciones){ $dump.="\n<SCRIPT language=\"JavaScript\">\n<!--\n$this->js_funciones\n-->\n</SCRIPT>\n"; } //añade la parte inicial del campo $dump.=$this->inicia_campo(); //añade el núcleo del campo $dump.=$this->nucleo_campo(); //añade el final del campo $dump.=$this->finaliza_campo(); //devuelve como resultado el código del campo return($dump); } function tipo_de_campo(){ switch ($this->tipo){ case TEXT: { $tipo="T"; break; } case PASSWORD: { $tipo="P"; break; } case HIDDEN: { $tipo="H"; break; } case CHECKBOX: { $tipo="C"; break; } case SELECT: { $tipo="S"; break; } case TEXTAREA: { $tipo="A"; break; } case BUTTON: { $tipo="B"; break; } case RADIO: { $tipo="R"; break; } case IMAGE: { $tipo="I"; break; } } return($tipo); } function volcado(){ //esta funcion devuelve el codigo para generar el campo //variables globales #global $tipo,$nombre,$rotulo,$rotulo_pos,$rotulo_estilo,$js_funciones,$valores; //inicializa el campo a null $dump=""; //si hay funciones (javascript) definidas las incorpora al código if($this->js_funciones){ $dump.="\n<SCRIPT language=\"JavaScript\">\n<!--\n$this->js_funciones\n-->\n</SCRIPT>\n"; } //añade la parte inicial del campo $dump.=$this->inicia_campo(); //añade el núcleo del campo $dump.=$this->nucleo_campo(); //añade el final del campo $dump.=$this->finaliza_campo(); if($this->poner_rotulos){ if($this->poner_br){ $br="\n<br>"; } else { $br=""; } //si el el campo es uno de estos tipos if($this->tipo=="TEXT" || $this->tipo=="PASSWORD" || $this->tipo=="CHECKBOX" || $this->tipo=="SELECT" || $this->tipo=="TEXTAREA"){ //si esta definido el estilo (CSS) if($this->rotulo_estilo){ //define el estilo CSS con el que se dibujará el campo $e1="<SPAN CLASS=\"$this->rotulo_estilo\">"; //define el cierre de la llamada de estilo CSS $e2="</SPAN>"; //determina la posicion del rótulo y lo incorpora al código del campo //posición 6: campo - rotulo if($this->rotulo_pos==6){ $dump=$br.$dump."&nbsp;".$e1.$this->rotulo.$e2; //posición 4: rótulo - campo } elseif($this->rotulo_pos==4) { $dump=$br.$e1.$this->rotulo.$e2."&nbsp;".$dump; //posición 0: sin rótulo } elseif($this->rotulo_pos==0) { //indeterminado: rotulo<br>campo } else { $dump=$e1.$this->rotulo.$e2.$br.$dump; } } } } //devuelve como resultado el código del campo return($dump); } } //fin de la clase Campo ?>