sexta-feira, 28 de junho de 2013

Script padrão para bancos de dados Mysql em linguagem PHP - XI

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