PHP - TextBox Class

This TextBox class can be used to create form textbox elements, which can then be inserted into a template file.
  1. <?php
  2.  
  3.         class TextBox {
  4.  
  5.                 private $control ="";
  6.                 private $properties = null;
  7.                 private $textmode = "";
  8.                 private $textmode_properties ="";
  9.                 private $error_message;
  10.  
  11.                 public function __construct(){
  12.  
  13.                         $this->properties = array ( 'Value'=> '', 'Name' => '', 'ID' => '', 'Class' => '', 'MaxLength' => '' );
  14.                         $this->textmode_properties = array ( 'SingleLine', 'MultiLine', 'Password', 'Hidden' );
  15.  
  16.                 }
  17.  
  18.                 public function __get($property){
  19.  
  20.                         if ( in_array($property, $this->properties) ){
  21.  
  22.                                 return $this->properties['$property'];
  23.                         }else{
  24.  
  25.                                 trigger_error ('Class TextBox | Property : '.$property.' - does not exists');
  26.                         }
  27.  
  28.                 }
  29.  
  30.                 public function __set($property, $value){
  31.  
  32.                         if ( array_key_exists($property, $this->properties) ){
  33.  
  34.                                 return $this->properties[$property] = $value;
  35.                         }else{
  36.  
  37.                                 trigger_error ('Class TextBox | Property : '.$property.' - does not exists');
  38.                         }
  39.                 }
  40.  
  41.  
  42.                 public function ErrorMessage($errormessage){
  43.  
  44.                         if ( (is_string($errormessage) && ($errormessage !="")) ){
  45.  
  46.                                 $this->error_message = "<label>" . $errormessage . "</label>";
  47.                         }
  48.                 }
  49.  
  50.  
  51.                 public function TextMode($textmode){
  52.  
  53.                         if ( is_string($textmode) ){
  54.  
  55.                                 $this->textmode = $textmode;
  56.  
  57.                         }else{
  58.  
  59.                                 trigger_error ('Class TextBox | Function : TextMode - Must be a string');
  60.                         }
  61.                 }
  62.  
  63.                 private function BuildControl(){
  64.  
  65.                         if ( in_array($this->textmode, $this->textmode_properties) ){
  66.  
  67.                                 switch ($this->textmode){
  68.  
  69.                                         case 'SingleLine':
  70.  
  71.                                                 $this->SingleLine();
  72.                                                 break;
  73.  
  74.                                         case 'MultiLine':
  75.  
  76.                                                 $this->MultiLine();
  77.                                                 break;
  78.  
  79.                                         case 'Password':
  80.  
  81.                                                 $this->Password();
  82.                                                 break;
  83.                                                
  84.                                         case 'Hidden':
  85.  
  86.                                                 $this->Hidden();
  87.                                                 break;                                         
  88.                                 }
  89.  
  90.                         }else{
  91.  
  92.                                 $this->SingleLine();
  93.                         }
  94.  
  95.                 }
  96.  
  97.  
  98.                 private function SingleLine(){
  99.  
  100.                         $this->control = "<input type=\"text\" ";
  101.  
  102.                         foreach( $this->properties as $property => $value ){
  103.  
  104.                                 if ( $value !="" ){
  105.                                         $this->control .= strtolower($property) . "=\"" . $value . "\" ";
  106.                                 }
  107.                         }
  108.  
  109.                         $this->control .= " />" . $this->error_message;
  110.                 }
  111.  
  112.                 private function MultiLine(){
  113.  
  114.                         $text = "";
  115.                         $this->control = "<textarea ";
  116.  
  117.                         foreach( $this->properties as $property => $value ){
  118.  
  119.                                 if ( $property == "Value" ){
  120.  
  121.                                         $text = $value;
  122.  
  123.                                 }else{
  124.  
  125.                                         if ( $value !="" ){
  126.                                                 $this->control .= strtolower($property) . "=\"" . $value . "\" ";
  127.                                         }
  128.                                 }
  129.                         }
  130.  
  131.                         $this->control .= ">" . $text . "</textarea>" . $this->error_message;
  132.                 }
  133.  
  134.                 private function Password(){
  135.  
  136.                         $this->control = "<input type=\"password\" ";
  137.  
  138.                         foreach( $this->properties as $property => $value ){
  139.  
  140.                                 if ( $value !="" ){
  141.                                         $this->control .= strtolower($property) . "=\"" . $value . "\" ";
  142.                                 }
  143.                         }
  144.  
  145.                         $this->control .= " />" . $this->error_message;
  146.                 }
  147.                
  148.                 private function Hidden(){
  149.  
  150.                         $this->control = "<input type=\"hidden\" ";
  151.  
  152.                         foreach( $this->properties as $property => $value ){
  153.  
  154.                                 if ( $value !="" ){
  155.                                         $this->control .= strtolower($property) . "=\"" . $value . "\" ";
  156.                                 }
  157.                         }
  158.  
  159.                         $this->control .= " />" . $this->error_message;
  160.                 }
  161.                
  162.                
  163.  
  164.                 public function __tostring(){
  165.  
  166.                         $this->BuildControl();
  167.                         return $this->control;
  168.  
  169.                 }
  170.  
  171.         }
  172.  
  173.  
  174. ?>
  175.  
  176.  
  177. <?php
  178.  
  179. //Usage
  180.  
  181. $txtFirstName = new TextBox();
  182. $txtFirstName->Name = "txtFirstName";
  183. $txtFirstName->ID = "txtFirstName";
  184. $txtFirstName->Class = "css_field";
  185. echo $txtFirstName;
  186.  
  187. ?>

No comments:

Post a Comment