A classe paramLine
No post anterior avisamos que iríamos explicar a classe paramLine, responsável pelo ajuste dos delimitadores, valores e da tag HTML de cada campo a ser gravado no campo de dados para a ação de inclusão (addsave).
Código:
// Classe usada para as ações: add, addsave e list
class paramLine{
public $delimitador;
public $valorfinal;
public $tipocampo;
public $taginput;
function __construct($arranjo,$linha,$valorparam){
$valor = $valorparam;
$this->valorfinal = $valorparam;
$this->delimitador = $arranjo[$linha][7];
$tipo = strtolower($arranjo[$linha][4]);
$this->tipocampo = $tipo;
$sTipo = $tipo;
$inp = "<input";
$this->taginput = $inp;
switch ($tipo){
case "select":
$inp = "<select";
$deli = "'";
break;
case "textarea":
$inp = "<textarea";
$deli = "'";
break;
case "":
$deli = "";
$sTipo = "number";
break;
case "'":
$deli = "'";
$sTipo = "text";
break;
case "email":
$deli = "'";
break;
case "hidden":
$deli = "'";
$sTipo = "hidden";
break;
case "pwd":
$deli = "";
$sTipo = "password";
$valor = "PASSWORD('" . $valor . "')";
break;
case "#":
$deli = "'";
$sTipo = "date";
if( preg_match("/\d{1,2}[\/|\-]\d{1,2}[\/|\-]\d{4}/", $valor, $matches) ){
$dt = substr($valor,6,4) . "-" . substr($valor,3,2) . "-" . substr($valor,0,2);
} else {
$dt = $valor;
}
$valor = $dt;
break;
default:
$sTipo = "unknown";
$deli = "'";
break;
}
$this->delimitador = $deli;
$this->valorfinal = $valor;
$this->tipocampo = $sTipo;
$this->taginput = $inp;
}
function getDelimitador(){
return $this->delimitador;
}
function getValorfinal(){
return $this->valorfinal;
}
function getTipocampo(){
return $this->tipocampo;
}
}
Explicação
No início da classe são definidos os quatro parâmetros para saída:
public $delimitador;
public $valorfinal;
public $tipocampo;
public $taginput;
Em seguida vem o construtor, com a seguinte sintaxe:
function __construct($arranjo,$linha,$valorparam){
A ordem dos parâmetros deve ser A MESMA na definição do construtor e na instanciação de um objeto desta classe.
Ajuste inicial
$valor = $valorparam;
$this->valorfinal = $valorparam;
$this->delimitador = $arranjo[$linha][7];
$tipo = strtolower($arranjo[$linha][4]);
$this->tipocampo = $tipo;
$sTipo = $tipo;
$inp = "<input";
$this->taginput = $inp;
Estas linhas armazenam os conteúdos iniciais dos atributos do objeto, tomando o cuidado de resguardar os valores iniciais.
Testes
Para cada tipo possível de dados dos campos, será feito um tratamento diferente:
select
case "select":
$inp = "<select";
$deli = "'";
break;
textarea
case "textarea":
$inp = "<textarea";
$deli = "'";
break;
Numérico
case "":
$deli = "";
$sTipo = "number";
break;
Texto simples
case "'":
$deli = "'";
$sTipo = "text";
break;
Email
case "email":
$deli = "'";
break;
Campo escondido
case "hidden":
$deli = "'";
$sTipo = "hidden";
break;
Senha
case "pwd":
$deli = "";
$sTipo = "password";
$valor = "PASSWORD('" . $valor . "')";
break;
Data
case "#":
$deli = "'";
$sTipo = "date";
if( preg_match("/\d{1,2}[\/|\-]\d{1,2}[\/|\-]\d{4}/", $valor, $matches) ){
$dt = substr($valor,6,4) . "-" . substr($valor,3,2) . "-" . substr($valor,0,2);
} else {
$dt = $valor;
}
$valor = $dt;
break;
Métodos get da classe
function getDelimitador(){
return $this->delimitador;
}
function getValorfinal(){
return $this->valorfinal;
}
function getTipocampo(){
return $this->tipocampo;
}
Nenhum comentário:
Postar um comentário