Como ainda não tem PHP, vou postar aki mesmo

Iniciado por d3rf, 14 de Fevereiro , 2007, 10:55:02 AM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

d3rf

É o seguinte, uma classe criada por mim e aperfeiçoada por alguns colegas meus, ela serve para gerar formulário, pq afinal de contas é chato demais ficar digitando todas akelas tags de html qndo se está programando em PHP, outra coisa, o formulário gerado atende as normas do XHTML, uma maneira mais aperfeiçoada de HTML ... entao ae vai ....
Citar/**
 * Classe desenvolvida para geração de formulários
 * Autor:Frederico
 *Colaboradores: Raphael Zamana, Leandro Alves, Michael Granados
 * 12/2006 - CamposFácil
 */       
class Forms {
   private $nome;
   private $metodo;
   private $acao;
   private $config;
   private $inputs=array();
   private $textarea=array();
   private $checkbox=array();
   private $selects=array();
   private $radios=array();
   private $buttons=array();
   private $tabular=array();//Array usado para mostrar os itens de acorde que são chamados
   
  public function __construct($nome,$metodo,$acao,$config=""){
      $this->nome=$nome;
      $this->metodo=$metodo;
     $this->acao=$acao;
      $this->config=$config;
   }
  /* Adiciona Inputs na Array Inputs */
   public function addInputs($label,$nome,$tipo,$value="",$opcoes=" "){
     //conta qntos itens tem no array e seta em num
      $num=count($this->inputs);
      //insere a string no fim do array e seta campo com essa string
      if ($tipo=="hidden"){
        $campo=$this->inputs[$num]=" \n";
      }
    else {
        $campo=$this->inputs[$num]="

\n";
    }
      //conta qntos itens tem no array e seta em ordem
      $ordem=count($this->tabular);
      //insere a string no fim do array tabular
      $this->tabular[$ordem]=$campo;
   }
   public function addCheckBox($show=0,$label,$nome,$value="",$opcoes=" "){
     //conta qntos itens tem no array e seta em num
      $num=count($this->checkbox);
      //insere a string no fim do array e seta campo com essa string
   
    if ($show == 1){
     echo $campo=$this->checkbox[$num]="

\n";
    }else{
    $campo=$this->checkbox[$num]="

\n";
      //conta qntos itens tem no array e seta em ordem
      $ordem=count($this->tabular);
      //insere a string no fim do array tabular
      $this->tabular[$ordem]=$campo;
      }
   }
   public function addTextAreas($label,$nome,$value="",$opcoes=""){
     $num=count($this->textarea);
      //insere a string no fim do array e seta campo com essa string
      $campo=$this->textarea[$num]="

\n\n";
      //conta qntos itens tem no array e seta em ordem
      $ordem=count($this->tabular);
      //insere a string no fim do array tabular
      $this->tabular[$ordem]=$campo;
   }
   /* Adiciona Selects na Array Selects */
   public function addSelects($texto,$nome,$values=array(),$label=array(),$selected=""){
     $num=count($values);
      for ($i=0;$i<$num;$i++){
      if ($values[$i]==$selected){
        $options .= "\n\t\t";
      }
      else{
          $options .= "\n\t\t";
       }
      }
      $numselects=count($this->selects);
      $campo=$this->selects[$numselects]="

\n\t\n\t\n

\n";
      $ordem=count($this->tabular);
      $this->tabular[$ordem]=$campo;
   }
   /* Monta e mostra o Formulário */
   public function addRadioGroups($texto,$nome,$itens=array(),$label=array(),$checked='null',$classe='null'){
     $num=count($itens);
      for ($i=0;$i<$num;$i++){
        if ($checked == $itens[$i]){
        $radio .= "$label[$i] \n";
      }
      else {
        $radio .= "$label[$i] \n";
      }
      }
     $numradio=count($this->radios);
      if (isset($classe)){
      $classe=" class="$classe"";
    }
      $campo=$this->radios[$numradio]="$texto $radio

";
      $ordem=count($this->tabular);
      $this->tabular[$ordem]=$campo;
    }
   public function addButtons($tipo,$name,$value,$class=null){
     if (isset($class)){
      $class=" class="$class"";
    }
      $num=count($this->buttons);
      //insere a string no fim do array e seta campo com essa string
      $campo=$this->buttons[$num]="

\n";
      //conta qntos itens tem no array e seta em ordem
      $ordem=count($this->tabular);
      //insere a string no fim do array tabular
      $this->tabular[$ordem]=$campo;
   }
   public function addFieldSet($bol,$legenda=""){
    if ($bol==1){
      $com="
\n\t$legenda ";
      $ordem=count($this->tabular);
      $this->tabular[$ordem]=$com;
    }
    if($bol==0){
      $com="
\n";
      $ordem=count($this->tabular);
      $this->tabular[$ordem]=$com;
    }
  }
  public function mostraform(){
    if (count($this->buttons)==0) {
      $this->addButtons("submit","submit","Enviar");
    }
    echo ("config >\n");
    for ($i=0;$itabular);$i++){
      echo ($this->tabular[$i]."\n");
    }
    echo ("\n");
   }
}
?>
Para usá-lo é simples:

Crie um objeto passando como parâmetro o nome do formulário, o método, e o action ...
Ex:
$formulario_de_cadastro = new Forms("cadastra_usuario","POST","#");
Agora é só chamar os métodos
addInputs(label, nome,tipo,value,options)
  label = Um label para aparecer antes de do campo do formulário
 nome = o nome do campo e do id para o campo
 tipo = os tipos de inputs ...(hidden, password,text,file,etc...)
 value = se kiser um valor padrao para ele,
 Options =  algumas opçoes q deve ser digitadas como se fosse no propria tag
Ex:
$formulario_de_cadastro->addInputs("Usuário","usuario","text","d3rf","onClick="alert("d3rf")\'");
addTextAreas = Semelhante ao addInputs
temos tb a opcao do FieldSet
funciona assim ...
addFieldSet(1,"Legenda") para abrir o fieldSet
e
addFieldSet(0), para fecha-lo ...

Qq dúvida é só perguntar ... por favor se forem usar nao tirar os autores