form : fields are now extendable by the user

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@2167 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2015-05-12 09:28:45 +00:00
parent a17171e83a
commit 5c6efd369e

912
form.php
View File

@@ -141,6 +141,7 @@ class form
$group = "";
foreach ($this->fields as $field)
{
$field->formName = $this->formName;
if (isset ($field->group) && $field->group !== $group && $group !== "" ||
!isset ($field->group) && $group !== "")
{
@@ -155,440 +156,7 @@ class form
}
$res .=" ";
switch ($field->type)
{
case "checkbox":
// No $field->multiple, $field->rows $field->cols
// values !
$res .= "<div class='form-group";
if (isset ($errors[$field->name]))
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."_0'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($field->label);
if (isset ($field->mandatory) && $field->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
if (is_string ($field->defaults))
$field->defaults = array ($field->defaults);
foreach ($field->titles as $key=>$val)
{
$res .= " <input type='hidden'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."][$key]'";
$res .= " value='unset'";
$res .= "/>";
$res .= "<input type='checkbox'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."][$key]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."_$key'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
$res .= " disabled='disabled'";
if (isset ($values[$field->name][$key]) &&
$values[$field->name][$key] !== "unset")
$res .= " checked='checked'";
elseif (isset ($field->defaults[$key]) &&
$field->defaults[$key] !== "")
$res .= " checked='checked'";
$res .= " class='form-control'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= "/>";
$res .= "$val\n";
}
if (isset ($errors[$field->name]))
$res .= " <span class='help-block'>".$errors[$field->name][1].
"</span>\n";
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
break;
case "hidden":
// No $field->label, $field->multiple, $field->readonly, $field->hidden,
// $field->rows $field->cols
$res .= "<input type='hidden'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($values[$field->name]))
$res .= " value='".htmlspecialchars ($values[$field->name])."'";
else
$res .= " value='".htmlspecialchars ($field->defaults)."'";
$res .= "/>\n";
break;
case "password":
// No $field->multiple, $field->rows $field->cols
$res .= "<div class='form-group";
if (isset ($errors[$field->name]))
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($field->label);
if (isset ($field->mandatory) && $field->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
$res .= " <input type='password'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($values[$field->name]))
$res .= " value='".htmlspecialchars ($values[$field->name],
ENT_QUOTES)."'";
else
$res .= " value='".htmlspecialchars ($field->defaults, ENT_QUOTES).
"'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
$res .= " readonly='readonly'";
$res .= " class='form-control'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= "/>\n";
if (isset ($errors[$field->name]))
$res .= " <span class='help-block'>".$errors[$field->name][1].
"</span>\n";
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
break;
case "radio":
// No $field->multiple, $field->rows $field->cols
$res .= "<div class='form-group";
if (isset ($errors[$field->name]))
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."_0'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($field->label);
if (isset ($field->mandatory) && $field->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
if (is_string ($field->defaults))
$field->defaults = array ($field->defaults);
$res .= " <input type='hidden'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " value='unset'";
$res .= "/>\n";
foreach ($field->titles as $key=>$val)
{
$res .= " <label class='radio'>";
$res .= "<input type='radio'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."_$key'";
$res .= " value='".htmlspecialchars ($val, ENT_QUOTES)."'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
$res .= " readonly='readonly'";
if (isset ($values[$field->name]) &&
$values[$field->name] === $val)
$res .= " checked='checked'";
elseif (isset ($field->defaults[0]) &&
$field->defaults[0] === $val)
$res .= " checked='checked'";
$res .= " class='form-control'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= "/>";
$res .= "$val";
$res .= "</label>\n"; // End label radio
}
if (isset ($errors[$field->name]))
$res .= " <span class='help-block'>".$errors[$field->name][1].
"</span>\n";
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
break;
case "select":
// $values->$field, $field->cols
$res .= "<div class='form-group";
if (isset ($errors[$field->name]))
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($field->label);
if (isset ($field->mandatory) && $field->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
if (isset ($field->defaults) && is_array ($field->defaults))
{
if (isset ($field->readonly) && $field->readonly !== FALSE)
{
foreach ($field->defaults as $key=>$val)
{
$res .= " <input type='hidden'";
if (isset ($field->multiple) && $field->multiple !== FALSE)
{
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."][".
htmlspecialchars ($key, ENT_QUOTES)."]'";
}
else
{
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
}
$res .= " value='";
$res .= htmlspecialchars ($key, ENT_QUOTES)."'";
$res .= "/>\n";
}
}
$res .= " <select";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]";
if (isset ($field->multiple) && $field->multiple !== FALSE)
$res .= "[]";
$res .= "'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->multiple) && $field->multiple !== FALSE)
$res .= " multiple='multiple'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
$res .= " disabled='disabled'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= " class='form-control'";
if (isset ($field->rows))
$res .= " size='".$field->rows."'";
$res .= ">\n";
foreach ($field->defaults as $key=>$val)
{
$res .= " <option value='";
$res .= htmlspecialchars ($key, ENT_QUOTES)."'";
if (isset ($values[$field->name]) &&
is_string ($values[$field->name]) &&
$values[$field->name] == $key)
$res .= " selected='selected'";
elseif (isset ($values[$field->name]) &&
is_array ($values[$field->name]) &&
in_array ($key, $values[$field->name]))
$res .= " selected='selected'";
$res .= ">";
$res .= htmlspecialchars ($val);
$res .= "</option>\n";
}
$res .= " </select>\n";
if (isset ($errors[$field->name]))
$res .= " <span class='help-block'>".$errors[$field->name][1].
"</span>\n";
}
else
{
$res .= dgettext("domframework", "No value provided");
}
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
break;
case "submit":
// No $field->label, $field->multiple, $field->error, $field->rows,
// $field->cols
$res .= "<div class='form-group'>\n";
$res .= " <div class='col-sm-12'>\n";
$res .= " <input type='submit'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
$res .= " disabled='disabled'";
if (isset ($field->defaults))
$res .= " value='".htmlspecialchars ($field->defaults, ENT_QUOTES).
"'";
elseif (isset ($field->label))
$res .= " value='".htmlspecialchars ($field->label, ENT_QUOTES)."'";
$res .= " class='form-control btn-primary'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= "/>\n";
$res .= " </div>\n";
$res .= " </div>\n";
break;
case "textarea":
// No $field->multiple, $field->titles
$res .= "<div class='form-group";
if (isset ($errors[$field->name]))
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($field->label);
if (isset ($field->mandatory) && $field->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
$res .= " <textarea";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
$res .= " readonly='readonly'";
$res .= " class='form-control'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
if (!isset ($field->cols))
$field->cols = 20;
$res .= " cols='".$field->cols."'";
if (!isset ($field->rows))
$field->rows = 4;
$res .= " rows='".$field->rows."'";
$res .= ">";
if (isset ($values[$field->name]))
$res .= htmlspecialchars ($values[$field->name], ENT_QUOTES);
else
$res .= htmlspecialchars ($field->defaults, ENT_QUOTES);
$res .= "</textarea>\n";
if (isset ($errors[$field->name]))
$res .= " <span class='help-block'>".$errors[$field->name][1].
"</span>\n";
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
break;
default:
// No $field->multiple, $field->titles, $field->rows, $field->cols
$res .= "<div class='form-group";
if (isset ($errors[$field->name]))
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($field->label);
if (isset ($field->mandatory) && $field->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
$res .= " <input type='text'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($values[$field->name]))
$res .= " value='".htmlspecialchars ($values[$field->name],
ENT_QUOTES)."'";
else
$res .= " value='".htmlspecialchars ($field->defaults, ENT_QUOTES).
"'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
$res .= " readonly='readonly'";
$res .= " class='form-control'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= "/>\n";
if (isset ($errors[$field->name]))
$res .= " <span class='help-block'>".$errors[$field->name][1].
"</span>\n";
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
break;
}
$res .= $field->display ();
}
if ($group !== "")
@@ -621,6 +189,8 @@ class form
/** the definition of a formfield */
class formfield
{
/** The form name */
public $formName;
/** The name of the field */
public $name;
/** The label of the field */
@@ -630,7 +200,7 @@ class formfield
/** The defaults values of the field */
public $defaults;
/** The type of the field (text, password, checkbox, select)*/
public $type;
public $type="text";
/** The multiplicity of selection of the field (available in select only)*/
public $multiple;
/** The name of group for the fields */
@@ -651,11 +221,481 @@ class formfield
/** When adding a field, the name and the label are the minimum mandatory
@param string $name Name of the field
@param string $label Label of the field */
function __construct ($name, $label)
public function __construct ($name, $label)
{
$this->name = $name;
$this->label = $label;
}
/** Display really the form */
public function display ()
{
$func = "field".$this->type;
return $this->$func ();
}
/** Return the checkbox defined */
public function fieldcheckbox ()
{
// No $this->multiple, $this->rows $this->cols
$res = "";
$res .= "<div class='form-group";
if (isset ($errors[$this->name]))
$res .= " has-".$errors[$this->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."_0'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($this->label);
if (isset ($this->mandatory) && $this->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
if (is_string ($this->defaults))
$this->defaults = array ($this->defaults);
foreach ($this->titles as $key=>$val)
{
$res .= " <input type='hidden'";
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."][$key]'";
$res .= " value='unset'";
$res .= "/>";
$res .= "<input type='checkbox'";
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."][$key]'";
$res .= " id='$this->formName"."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."_$key'";
if (isset ($this->readonly) && $this->readonly !== FALSE)
$res .= " disabled='disabled'";
if (isset ($values[$this->name][$key]) &&
$values[$this->name][$key] !== "unset")
$res .= " checked='checked'";
elseif (isset ($this->defaults[$key]) &&
$this->defaults[$key] !== "")
$res .= " checked='checked'";
$res .= " class='form-control'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= "/>";
$res .= "$val\n";
}
if (isset ($errors[$this->name]))
$res .= " <span class='help-block'>".$errors[$this->name][1].
"</span>\n";
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
return $res;
}
/** Return the hidden field defined */
public function fieldhidden ()
{
$res = "";
// No $this->label, $this->multiple, $this->readonly, $this->hidden,
// $this->rows $this->cols
$res .= "<input type='hidden'";
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."'";
if (isset ($values[$this->name]))
$res .= " value='".htmlspecialchars ($values[$this->name])."'";
else
$res .= " value='".htmlspecialchars ($this->defaults)."'";
$res .= "/>\n";
return $res;
}
/** Return the password field defined */
public function fieldpassword ()
{
$res = "";
// No $this->multiple, $this->rows $this->cols
$res .= "<div class='form-group";
if (isset ($errors[$this->name]))
$res .= " has-".$errors[$this->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($this->label);
if (isset ($this->mandatory) && $this->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
$res .= " <input type='password'";
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."'";
if (isset ($values[$this->name]))
$res .= " value='".htmlspecialchars ($values[$this->name],
ENT_QUOTES)."'";
else
$res .= " value='".htmlspecialchars ($this->defaults, ENT_QUOTES).
"'";
if (isset ($this->readonly) && $this->readonly !== FALSE)
$res .= " readonly='readonly'";
$res .= " class='form-control'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= "/>\n";
if (isset ($errors[$this->name]))
$res .= " <span class='help-block'>".$errors[$this->name][1].
"</span>\n";
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
return $res;
}
/** Return the radio field defined */
public function fieldradio ()
{
$res = "";
// No $this->multiple, $this->rows $this->cols
$res .= "<div class='form-group";
if (isset ($errors[$this->name]))
$res .= " has-".$errors[$this->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."_0'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($this->label);
if (isset ($this->mandatory) && $this->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
if (is_string ($this->defaults))
$this->defaults = array ($this->defaults);
$res .= " <input type='hidden'";
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."]'";
$res .= " value='unset'";
$res .= "/>\n";
foreach ($this->titles as $key=>$val)
{
$res .= " <label class='radio'>";
$res .= "<input type='radio'";
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."_$key'";
$res .= " value='".htmlspecialchars ($val, ENT_QUOTES)."'";
if (isset ($this->readonly) && $this->readonly !== FALSE)
$res .= " readonly='readonly'";
if (isset ($values[$this->name]) &&
$values[$this->name] === $val)
$res .= " checked='checked'";
elseif (isset ($this->defaults[0]) &&
$this->defaults[0] === $val)
$res .= " checked='checked'";
$res .= " class='form-control'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= "/>";
$res .= "$val";
$res .= "</label>\n"; // End label radio
}
if (isset ($errors[$this->name]))
$res .= " <span class='help-block'>".$errors[$this->name][1].
"</span>\n";
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
return $res;
}
/** Return the checkbox defined */
public function fieldselect ()
{
$res = "";
// $values->$this, $this->cols
$res .= "<div class='form-group";
if (isset ($errors[$this->name]))
$res .= " has-".$errors[$this->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($this->label);
if (isset ($this->mandatory) && $this->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
if (isset ($this->defaults) && is_array ($this->defaults))
{
if (isset ($this->readonly) && $this->readonly !== FALSE)
{
foreach ($this->defaults as $key=>$val)
{
$res .= " <input type='hidden'";
if (isset ($this->multiple) && $this->multiple !== FALSE)
{
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."][".
htmlspecialchars ($key, ENT_QUOTES)."]'";
}
else
{
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."]'";
}
$res .= " value='";
$res .= htmlspecialchars ($key, ENT_QUOTES)."'";
$res .= "/>\n";
}
}
$res .= " <select";
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."]";
if (isset ($this->multiple) && $this->multiple !== FALSE)
$res .= "[]";
$res .= "'";
$res .= " id='$this->formName"."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."'";
if (isset ($this->multiple) && $this->multiple !== FALSE)
$res .= " multiple='multiple'";
if (isset ($this->readonly) && $this->readonly !== FALSE)
$res .= " disabled='disabled'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= " class='form-control'";
if (isset ($this->rows))
$res .= " size='".$this->rows."'";
$res .= ">\n";
foreach ($this->defaults as $key=>$val)
{
$res .= " <option value='";
$res .= htmlspecialchars ($key, ENT_QUOTES)."'";
if (isset ($values[$this->name]) &&
is_string ($values[$this->name]) &&
$values[$this->name] == $key)
$res .= " selected='selected'";
elseif (isset ($values[$this->name]) &&
is_array ($values[$this->name]) &&
in_array ($key, $values[$this->name]))
$res .= " selected='selected'";
$res .= ">";
$res .= htmlspecialchars ($val);
$res .= "</option>\n";
}
$res .= " </select>\n";
if (isset ($errors[$this->name]))
$res .= " <span class='help-block'>".$errors[$this->name][1].
"</span>\n";
}
else
{
$res .= dgettext("domframework", "No value provided");
}
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
return $res;
}
/** Return the submit defined */
public function fieldsubmit ()
{
$res = "";
// No $this->label, $this->multiple, $this->error, $this->rows,
// $this->cols
$res .= "<div class='form-group'>\n";
$res .= " <div class='col-sm-12'>\n";
$res .= " <input type='submit'";
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."'";
if (isset ($this->readonly) && $this->readonly !== FALSE)
$res .= " disabled='disabled'";
if (isset ($this->defaults))
$res .= " value='".htmlspecialchars ($this->defaults, ENT_QUOTES).
"'";
elseif (isset ($this->label))
$res .= " value='".htmlspecialchars ($this->label, ENT_QUOTES)."'";
$res .= " class='form-control btn-primary'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= "/>\n";
$res .= " </div>\n";
$res .= " </div>\n";
return $res;
}
/** Return the textarea defined */
public function fieldtextarea ()
{
$res = "";
// No $this->multiple, $this->titles
$res .= "<div class='form-group";
if (isset ($errors[$this->name]))
$res .= " has-".$errors[$this->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($this->label);
if (isset ($this->mandatory) && $this->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
$res .= " <textarea";
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."'";
if (isset ($this->readonly) && $this->readonly !== FALSE)
$res .= " readonly='readonly'";
$res .= " class='form-control'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
if (!isset ($this->cols))
$this->cols = 20;
$res .= " cols='".$this->cols."'";
if (!isset ($this->rows))
$this->rows = 4;
$res .= " rows='".$this->rows."'";
$res .= ">";
if (isset ($values[$this->name]))
$res .= htmlspecialchars ($values[$this->name], ENT_QUOTES);
else
$res .= htmlspecialchars ($this->defaults, ENT_QUOTES);
$res .= "</textarea>\n";
if (isset ($errors[$this->name]))
$res .= " <span class='help-block'>".$errors[$this->name][1].
"</span>\n";
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
return $res;
}
/** Return the text defined */
public function fieldtext ()
{
$res = "";
// No $this->multiple, $this->titles, $this->rows, $this->cols
$res .= "<div class='form-group";
if (isset ($errors[$this->name]))
$res .= " has-".$errors[$this->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
$res .= htmlspecialchars ($this->label);
if (isset ($this->mandatory) && $this->mandatory !== FALSE)
$res .= "&nbsp;<span style='color:red'>*</span>";
else
$res .= "&nbsp;&nbsp;";
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
$res .= " <input type='text'";
$res .= " name='$this->formName"."[";
if (isset ($this->prefix))
$res .= implode ("][", explode ("/", $this->prefix))."][";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($this->prefix))
$res .= preg_replace ("#[/ ]#", "_", $this->prefix)."_";
$res .= htmlspecialchars ($this->name, ENT_QUOTES)."'";
if (isset ($values[$this->name]))
$res .= " value='".htmlspecialchars ($values[$this->name],
ENT_QUOTES)."'";
else
$res .= " value='".htmlspecialchars ($this->defaults, ENT_QUOTES).
"'";
if (isset ($this->readonly) && $this->readonly !== FALSE)
$res .= " readonly='readonly'";
$res .= " class='form-control'";
if (isset ($this->hidden) && $this->hidden !== FALSE)
$res .= " style='display:none'";
$res .= "/>\n";
if (isset ($errors[$this->name]))
$res .= " <span class='help-block'>".$errors[$this->name][1].
"</span>\n";
$res .= " </div>\n"; // End controls
$res .= " </div>\n"; // End form-group
return $res;
}
}
/** CSRF protection