Overview

Packages

  • Auth
  • Config
  • Controller
  • Date
  • Db
  • Feed
    • Abstract
    • Writers
  • File
    • Decorator
  • Form
    • Element
  • Image
  • Log
    • Writer
  • Net
    • Exception
  • None
  • PHP
  • PHPMailer
  • Session
  • Util
  • Validate
    • Validator
  • Zend
    • Registry

Classes

  • Form_Element_AutoCompleter
  • Form_Element_Checkbox
  • Form_Element_Colorpicker
  • Form_Element_Date
  • Form_Element_DatePicker
  • Form_Element_Email
  • Form_Element_File
  • Form_Element_Hidden
  • Form_Element_Html
  • Form_Element_Ip
  • Form_Element_Mac
  • Form_Element_Multi
  • Form_Element_NumericStepper
  • Form_Element_Password
  • Form_Element_Radio
  • Form_Element_Select
  • Form_Element_Slider
  • Form_Element_Submit
  • Form_Element_Text
  • Form_Element_Textarea
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Pry Framework
  4:  *
  5:  * LICENSE
  6:  *
  7:  * This source file is subject to the new BSD license that is bundled
  8:  * with this package in the file LICENSE.txt.
  9:  * 
 10:  * @version $Revision: 276 $
 11:  */
 12: 
 13: /**
 14:  * Element Autocompleter. Permet de définir un champs texte avec une auto complétion.
 15:  * @category Pry
 16:  * @package Form
 17:  * @subpackage Form_Element
 18:  * @version 1.5.1 
 19:  * @author Olivier ROGER <oroger.fr>
 20:  *       
 21:  *
 22:  */
 23: class Form_Element_AutoCompleter extends Form_Element_Text
 24: {
 25:     
 26:     /**
 27:      * Class css du div d'autocompletion
 28:      *
 29:      * @var string
 30:      * @access private
 31:      */
 32:     private $autoCompleteCss;
 33:     
 34:     /**
 35:      * Url du fichier fournissant les données
 36:      *
 37:      * @var string
 38:      * @access private
 39:      */
 40:     private $url;
 41:     
 42:     /**
 43:      * Nom du paramèter envoyé en post
 44:      *
 45:      * @var string
 46:      * @access private
 47:      */
 48:     private $paramName;
 49:     
 50:     /**
 51:      * Nombre de caractère mini avant déclenchement de l'autocompletion
 52:      *
 53:      * @var int
 54:      * @access private
 55:      */
 56:     private $minChar;
 57:     
 58:     /**
 59:      * Nombre de résultat maximum retourné
 60:      * 
 61:      * @var int
 62:      * @access private
 63:      */
 64:     private $max;
 65:     
 66:     /**
 67:      * Fréquence de rafraichissement de l'input en ms
 68:      *
 69:      * @var float
 70:      * @access private
 71:      */
 72:     private $frequency;
 73:     
 74:     /**
 75:      * Paramètres additionnels
 76:      *
 77:      * @var array
 78:      */
 79:     private $params;
 80:     
 81:     /**
 82:      * Constructeur.
 83:      *
 84:      * @param string $nom
 85:      * @param Form_Form $form
 86:      */
 87:     public function __construct($nom,$form)
 88:     {
 89:         parent::__construct($nom,$form);
 90:         $this->autoCompleteCss = 'autocomplete';
 91:         $this->minChar      = 2;
 92:         $this->max          = 25;
 93:         $this->frequency    = 400;
 94:         $this->params       ='{';
 95:     }
 96:     
 97:     /**
 98:      * Défini la class css pour le div autocompletion
 99:      *
100:      * @param string $css
101:      * @return Form_Element_AutoCompleter
102:      */
103:     public function setAutoCompleteClass($css)
104:     {
105:         $this->autoCompleteCss = $css;
106:         return $this;
107:     }
108:     
109:     /**
110:      * Défini l'adresse du fichier
111:      *
112:      * @param string $url
113:      * @return Form_Element_AutoCompleter
114:      */
115:     public function setUrl($url)
116:     {
117:         $this->url = $url;
118:         return $this;
119:     }
120:     
121:     /**
122:      * Défini le nom du paramètre envoyé
123:      *
124:      * @param string $name
125:      * @return Form_Element_AutoCompleter
126:      */
127:     public function setParamName($name)
128:     {
129:         $this->paramName = $name;
130:         return $this;
131:     }
132:     
133:     /**
134:      * Défini le nombre de caractère nécessaire
135:      *
136:      * @param int $char
137:      * @return Form_Element_AutoCompleter
138:      */
139:     public function minCharNeeded($char)
140:     {
141:         $this->minChar = $char;
142:         return $this;
143:     }
144:     
145:     /**
146:      * Taux de rafraichissement de l'input en sec
147:      *
148:      * @param float $frq
149:      * @return Form_Element_AutoCompleter
150:      */
151:     public function refreshFrequency($frq)
152:     {
153:         $this->frequency = $frq;
154:         return $this;
155:     }
156:     
157:     
158:     public function setMaxResult($max)
159:     {
160:         $this->max = intval($max);
161:     }
162:     /**
163:      * Ajoute des paramètres
164:      *
165:      * @param array $tab
166:      * @return Form_Element_AutoCompleter
167:      */
168:     public function addParams($tab)
169:     {
170:         foreach($tab  as $key => $value)
171:         {
172:             $this->params .=$key.':'.$value.',';
173:         }
174:         $this->params = substr($this->params,0,strlen($this->params)-1);
175:         return $this;
176:     }
177:     
178:     /**
179:      * Ecrit l'objet
180:      *
181:      * @return string
182:      */
183:     public function __toString()
184:     {
185:         $this->params.='}';
186:         $field.=parent::__toString();
187:         //$field.="\t".'</p><div id="'.$this->attrs['id'].'_autocomplete" class="'.$this->autoCompleteCss.'"></div><p>'."\n";
188:         $this->form->javascript.='$("#'.$this->attrs['id'].'").autocomplete("{source:'.$this->url.'",delay:'.$this->frequency.',minLength:'.$this->minChar.'});';
189:         return $field;
190:     }
191:     
192: }
193:  ?>
Pry Framework API documentation generated by ApiGen 2.6.1