title=""; $this->placeholder=""; $this->extra=""; $this->style=' class="input_text" '; $this->autofocus=false; $this->require=false; $this->css_size=""; $this->pattern=""; $this->maxlength=""; $this->datalist=null; } /*! \brief show the html input of the widget */ public function input($p_name=null,$p_value=null) { $this->name=($p_name==null)?$this->name:$p_name; $this->value=($p_value==null)?$this->value:$p_value; if ( $this->readOnly==true) return $this->display(); $this->id=($this->id=="")?$this->name:$this->id; // Double quote makes troubles $this->value=noalyss_str_replace('"','',$this->value); // compute attribute used by javascript $strAttribute=$this->get_node_attribute(); $t= 'title="'.$this->title.'" '; $autofocus=($this->autofocus)?" autofocus ":""; $require=($this->require)?"required":""; // var $pattern regex to match the INPUT TEXT $pattern=""; if ($this->pattern != "") { $pattern= sprintf( 'pattern="%s"',$this->pattern); } // var maxlength HTML attribute $maxlength = ""; if ($this->maxlength !="" ) { $maxlength=sprintf(' maxlength="%s" ',$this->maxlength); } $datalist=(empty($this->datalist ))?"":sprintf('list="dl_%s"',$this->id); if ( ! isset ($this->css_size) || empty ($this->css_size)) { $r= sprintf(' ',$this->style, $this->id, $this->name, htmlentities($this->value, ENT_COMPAT|ENT_QUOTES, "UTF-8"), $this->placeholder, $this->title, $this->size, $this->javascript, $this->extra, $autofocus, $require, $strAttribute, $pattern, $maxlength, $datalist ); } else { $r= sprintf(' ',$this->style, $this->id, $this->name, htmlentities($this->value, ENT_COMPAT|ENT_QUOTES, "UTF-8"), $this->placeholder, $this->title, $this->css_size, $this->javascript, $this->extra, $autofocus, $require, $strAttribute, $pattern, $maxlength, $datalist ); } /* add tag for column if inside a table */ if ( $this->table == 1 ) $r=''.$r.''; $r.=$this->make_datalist(); return $r; } public function get_datalist() { return $this->datalist; } public function set_datalist($datalist) { $this->datalist = $datalist; return $this; } /*!\brief print in html the readonly value of the widget*/ public function display() { $t= ((isset($this->title)))?'title="'.$this->title.'" ':' '; $extra=(isset($this->extra))?$this->extra:""; $strAttribute=$this->get_node_attribute(); $readonly=" readonly "; $this->value=htmlentities($this->value??"", ENT_COMPAT|ENT_QUOTES, "UTF-8"); $this->style=' class="input_text_ro" '; if ( ! isset ($this->css_size)) { $r='style.' TYPE="TEXT" id="'. $this->id.'"'.$t. 'NAME="'.$this->name.'" VALUE="'.$this->value.'" '. 'SIZE="'.$this->size.'" '.$this->javascript." $readonly $this->extra $strAttribute>"; } else { $r='style.' TYPE="TEXT" id="'. $this->id.'"'.$t. 'NAME="'.$this->name.'" VALUE="'.$this->value.'" '. ' style="width:'.$this->css_size.'" '.$this->javascript." $readonly $this->extra $strAttribute>"; } /* add tag for column if inside a table */ if ($this->table == 1) { $r = '' . $r . ''; } return $r; } function set_require($p_boolean) { $this->require=$p_boolean; } static public function test_me() { } /** * @brief add a datalist * @param $array (double array) each row has 2 keys 0 => stored value 1=>label * @return string */ protected function make_datalist() { if ( empty($this->datalist)) return ""; $r=sprintf('',$this->id); foreach ($this->datalist as $item) { $r.=sprintf('' ,$item[0],$item[1] ,htmlentities($item[1])); } $r.=''; return $r; } }