<?php
require_once('htmltag.class.inc');
require_once('field.class.inc');
/** Boutons de formulaire
*
* @author Nicolas Chambrier - hide@address.com
* @version 1.0
*
* @public
*
**/
class ButtonField extends Field
{
/** valeur du bouton, et texte affiché
*
* @type string
* @private
*
**/
var $value;
/** Construit un bouton
*
* @param int type le type de bouton, une valeur parmi TYPE_SUBMIT, TYPE_RESET et TYPE_BUTTON
* @param string name le nom du composant
* @param string value la valeur du composant, également le texte affiché
* @public
*
**/
function ButtonField ($type, $name, $value)
{
if ($type != Field::TYPE_SUBMIT() && $type != Field::TYPE_RESET() && $type != Field::TYPE_BUTTON())
$type = Field::TYPE_BUTTON();
$this->Field($type, $name);
$this->setValue($value);
}
/** Modifie la valeur du composant
*
* @param string value (optionnel) la nouvelle valeur. Aucune si non spécifié.
* @type void
*
**/
function setValue($value = NULL) {$this->value = $value;}
/** Récupère la valeur du composant
*
* @return la valeur du composant
* @type string
*
**/
function getValue() {return $this->value;}
/** Version affichable
*
* @return la version "string" du composant. Il s'agit du code HTML le decrivant.
* @type string
*
**/
function toString()
{
$tag = new HtmlTag('input', TRUE);
switch ($this->getType()) {
case Field::TYPE_BUTTON():
$tag->addAttribute(new HtmlAttribute('type','button'));
break;
case Field::TYPE_SUBMIT():
$tag->addAttribute(new HtmlAttribute('type','submit'));
break;
case Field::TYPE_RESET():
$tag->addAttribute(new HtmlAttribute('type','reset'));
break;
}
$tag->addAttribute(new HtmlAttribute('name',$this->getName()));
$tag->addAttribute(new HtmlAttribute('value',$this->getValue()));
return $tag->toString();
}
}