File: /var/www/vhosts/creativefellows.nl/sht.creativefellows.nl/classes/CassetteForm.php
<?php
class CassetteForm extends BaseController{
function __construct($settings,$form_data,$form_fields)
{
$this->settings = $settings;
$this->formHandler = $form_data["custom_handler"] != "" ? $form_data["custom_handler"] : "handle-form";
foreach($form_data as $el => $val)
{
$this->$el = $val;
}
$this->fields = $form_fields;
//d($this->settings);
}
public function getFormIntro()
{
$return = '<h2>'. $this->getFormName() .'</h2>';
if( $desc = $this->getFormDesc() ) $return .= '<p>'. $desc .'</p>';
return $return;
}
private function getFormName()
{
return $this->form_name;
}
private function getFormDesc()
{
return $this->form_intro;
}
public function getForm()
{
$html = '<form class="form regular" action="'. $this->getFormHandler() .'" method="post" enctype="multipart/form-data" data-abide novalidate>';
foreach($this->getFields() as $el)
{
$html .= $this->cassetteFormElement($el);
}
$html .= "</form>";
return $html;
}
private function getMandatoryLabel()
{
return $this->settings["mandatory_field"];
}
private function cassetteFormElement($array)
{
$hidefieldsets = array("hidden","msg","captcha");
$full_width = array();
$type = $array["type"];
$name = $array["name"];
$desc = (trim($array["desc"]) != "") ? $array["desc"] : $name;
$opts = (isset($array["options"])) ? $array["options"] : null ;
$eid = (isset($array["elementId"])) ? $array["elementId"] : null;
$req = (isset($array["required"]) && $array["required"] == 1) ? " required" : "";
$inpName = $eid.preg_replace("/[^0-9a-zA-Z]/","",strtolower($name));
$required_msg = '<span class="form-error">'. $this->getMandatoryLabel() .'</span>';
$el = "";
switch($type){
case "input":
$el .= '<label><span>'. $desc .'</span>';
$el .= '<input type="text" name="'. $inpName .'" autocomplete="off" placeholder="'. $desc .'" '. $req .' />';
$el .= $required_msg;
$el .= '</label>';
break;
case "inactiveinput":
$el .= '<label><span>'. $desc .'</span>';
$el .= "<input type='text' name='$inpName' value='#value#' disabled />";
$el .= '</label>';
break;
case "deactivatedfield":
$el .= "<input type='hidden' name='$inpName' value='$desc'/>";
break;
case "datepicker":
$el .= '<label><span>'. $desc .'</span>';
$el .= '<input type="text" name="'. $inpName .'" class="form-text calendar" autocomplete="off" '. $req .' />';
$el .= $required_msg;
$el .= '</label>';
break;
case "select":
$el .= '<label><span>'. $desc .'</span>';
$el .= '<select type="text" name="'. $inpName .'" '. $req .'>';
foreach($opts as $o)
{
$el .= '<option value="'. htmlentities($o) .'">'. utf8_decode($o) .'</option>';
}
$el .= "</select>";
$el .= $required_msg;
$el .= '</label>';
break;
case "radio":
$el .= '<legend><span>'. $desc . '</span></legend>';
foreach($opts as $i => $o)
{
$checked = $i == 0 ? " checked" : null;
$el .= '<input type="radio" id="'. $inpName . $i .'" name="'. $inpName .'" value="'. $o .'" '. $req .' /> <label for="'. $inpName . $i .'">'. $o .'</label>';
}
$el .= $required_msg;
$el .= '</label>';
break;
case "checkbox":
$el .= '<legend><span>'. $desc . '</span></legend>';
foreach($opts as $o){
$el .= '<input type="checkbox" id="'. $inpName . $i .'" name="'. $inpName .'[]" value="'. $o .'" /> <label for="'. $inpName . $i .'">'. $o .'</label>';
}
break;
case "textarea":
$el .= '<label><span>'. $desc .'</span>';
$el .= '<textarea name="'. $inpName .'"" placeholder="'. $desc .'"></textarea>';
$el .= '</label>';
break;
case "submit":
$el .= '<button class="button" type="submit">'. $this->getButtonLabel() .'</button>';
break;
case "hidden":
$el .= '<input type="hidden" name="'. $inpName .'" value="'. $desc .'" />';
break;
case "msg":
$el .= "<p>". $desc ."</p>";
break;
case "tussenkop":
$el .= "<label class='group'>$name</label>";
if($array["desc"]) $el .= "<p>".$array["desc"]."</p>";
break;
case "bijlage":
$el .= '<label>'. $desc;
$el .= '<input type="file" name="'. $inpName .'"" accept="image/*" />';
$el .= '</label>';
break;
case "captcha":
$el .= '<div class="g-recaptcha" data-sitekey="'. $name .'"></div>';
break;
}
$data = "";
if(!in_array($type,$hidefieldsets)) $data .= '<fieldset class="'. (!in_array($type,$full_width) ? "small-12 medium-6" : "small-12" ) .' columns '. $f[3] .'">';
$data .= $el;
if(!in_array($type,$hidefieldsets)) $data .= '</fieldset>';
return $data;
}
private function getButtonLabel()
{
return $this->button_label;
}
private function getFormHandler()
{
return $this->formHandler;
}
private function getFields()
{
return $this->fields;
}
}
?>