File: /var/www/vhosts/creativefellows.nl/jhtaxatie.creativefellows.nl/classes/HtmlElement.php
<?php
class HtmlElement
{
protected $post_value = null;
public function __construct(array $data,$role = 0)
{
$this->element = $data;
$this->role = $role;
}
public function setPostValue($value)
{
$this->post_value = $value;
}
public function id()
{
return $this->element[0];
}
public function name(){
return $this->element[1];
}
public function findings(){
}
public function value(){
switch( $this->element[2] )
{
default:
$element = $this->post_value;
$element .= '<input type="hidden" value="'. $this->post_value .'" name="'. $this->element[0] .'">';
break;
case "select_smart_v2":
$option = $this->element[5][$this->post_value];
$element .= '<div class="row collapse">';
$element .= '<div class="small-9 columns">';
$element .= $option["label"];
$element .= '</div>';
$element .= '<div class="small-3 columns text-right">';
$element .= number_format($option["price"],2,',','.');
$element .= '</div>';
$element .= '</div>';
$element .= '<input type="hidden" value="'. $this->post_value .'" name="'. $this->element[0] .'">';
$element .= '<input type="hidden" value="'. $option["options"] .'" name="'. $this->element[0] .'_options">';
break;
case "checkbox_inline":
case "checkbox_hidden":
$element = implode(", ",$this->post_value);
foreach($this->post_value as $value){
$element .= '<input type="hidden" value="'. $value .'" name="'. $this->element[0] .'[]">';
}
break;
case "checkbox_v2_not_custom":
case "checkbox_truck_version":
$options = $this->element[5];
// d($this->post_value);
// die();
foreach($this->element[5] as $i => $option){
if(isset($this->post_value) && in_array($i,$this->post_value))
{
$element .= '<div class="row collapse">';
$element .= '<div class="small-9 columns">';
$element .= $option["label"];
$element .= '</div>';
$element .= '<div class="small-3 columns text-right">';
$element .= number_format($option["value"],2,',','.');
$element .= '</div>';
$element .= '</div>';
$element .= '<input type="hidden" value="'. $i .'" name="'. $this->element[0] .'[]">';
}
}
break;
case "select":
$element = $this->element[5][$this->post_value];
$element .= '<input type="hidden" value="'. $this->post_value .'" name="'. $this->element[0] .'">';
break;
case "checkbox_v2":
$options = $this->element[5];
//d($this->post_value);
foreach($this->element[5] as $i => $option){
//die();
if(isset($this->post_value) && in_array($i,$this->post_value) || $option["custom"] == true)
{
$element .= '<div class="row collapse">';
$element .= '<div class="small-9 columns">';
$element .= $option["label"];
$element .= '</div>';
$element .= '<div class="small-3 columns text-right">';
$element .= number_format($option["value"],2,',','.');
$element .= '</div>';
$element .= '</div>';
if($option["custom"] == false)
{
$element .= '<input type="hidden" value="'. $i .'" name="'. $this->element[0] .'[]">';
}
else{
$element .= '<input type="hidden" value="'. $option["label"] .'" name="'. $this->element[0] .'_custom[]">';
$element .= '<input type="hidden" value="'. $option["value"] .'" name="'. $this->element[0] .'_custom_price[]">';
}
}
}
break;
case "enquiry_sum_price":
$star_prices = $this->element[5]["truck_total"];
$sum_options = $this->element[5]["options_price"];
$element .= '<div class="row collapse">';
$element .= '<div class="small-12 medium-4 columns"><strong style="font-size:0.875rem;">Sterren</strong></div>';
$element .= '<div class="small-6 medium-4 columns text-left"><strong style="font-size:0.875rem;">Truckprijs</strong></div>';
$element .= '<div class="small-6 medium-4 columns text-right"><strong style="font-size:0.875rem;">Incl. opties</strong></div>';
$element .= '</div>';
foreach($star_prices["stars"] as $i => $star)
{
$truck_star_price = $star_prices["custom_price"][$i]["excl"];
$element .= '<div class="row collapse">';
$element .= '<div class="small-4 columns">';
$element .= $star["label"];
$element .= '</div>';
$element .= '<div class="small-4 columns text-left">';
$element .= number_format($star["value"],2,',','.');
$element .= '</div>';
$element .= '<div class="small-4 columns text-right">';
$element .= number_format($star["value"] + $sum_options["value"],2,',','.');
$element .= '</div>';
$element .= '</div>';
$element .= '<input type="hidden" value="'. ($truck_star_price == 0 ? 0 : number_format(floatval($truck_star_price),2,'.','')) .'" name="truck_price_custom_excl_'. $i .'">';
}
break;
case "enquiry_sum_price_anton":
$truck_version = $this->element[5]["truck_version"];
$sum_options = $this->element[5]["options_price"];
//d($this->element[5]);
$element .= '<div class="row collapse">';
$element .= '<div class="small-5 columns"><strong style="font-size:0.875rem;">Uitvoering</strong></div>';
$element .= '<div class="small-3 columns text-left"><strong style="font-size:0.875rem;">Truckprijs</strong></div>';
$element .= '<div class="small-4 columns text-right"><strong style="font-size:0.875rem;">Incl. opties</strong></div>';
$element .= '</div>';
$element .= '<div class="row collapse">';
$element .= '<div class="small-5 columns">';
$element .= $truck_version["label"];
$element .= '</div>';
$element .= '<div class="small-3 columns">';
$element .= number_format($truck_version["price"],2,',','.');
$element .= '</div>';
$element .= '<div class="small-4 columns text-right">';
$element .= number_format($truck_version["price"] + $sum_options["value"],2,',','.');
$element .= '</div>';
$element .= '</div>';
// $element .= '<input type="hidden" value="'. ($truck_star_price == 0 ? 0 : number_format(floatval($truck_star_price),2,'.','')) .'" name="truck_price_custom_excl_'. $i .'">';
//}
break;
case "slider_single":
$element = ($this->post_value / 10) . "%";
$element .= '<input type="hidden" value="'. ($this->post_value / 1000) .'" name="'. $this->element[0] .'">';
break;
}
return $element;
}
public function modifyFieldType($new_type)
{
$this->element[2] = $new_type;
}
public function modifyFieldValue($value)
{
$this->element[5] = $value;
}
public function getInputElement($value = "")
{
$value = $value == "" ? $this->element[5] : $value;
$required = $this->element[7] !== null && $this->element[7] == false ? "" : " required";
$match_id = $this->element[8] !== null ? ' data-equalto="'. $this->element[8] .'"' : "";
$custom_validator = "";
if($this->element[9] !== null)
{
if($this->element[9][1] == "current") $custom_validator = ' data-validator="'. $this->element[9][0] .'" data-not-equal-to="'. $this->element[9][1] .'"';
else $custom_validator = ' data-validator="'. $this->element[9][0] .'" data-elements="'. $this->element[9][1] .'"';
}
switch( $this->element[2] )
{
case "input":
case "textarea":
$element .= '<label for="'. $this->element[0] .'" class="input-name">';
$element .= $this->element[1];
$element .= '<div class="input-element">';
if($this->element[2] == "input") $element .= '<input type="text" value="'. $value .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'" onkeyup="this.setAttribute(\'value\', this.value);" class="'. $this->element[6] .'" placeholder=""'.$required.''.$custom_validator.'>';
else $element .= '<textarea id="'. $this->element[0] .'" name="'. $this->element[0] .'" class="'. $this->element[6] .' '. ($value != "" ? "has-value" : "") .'" rows="3" placeholder=""'.$required.'>'. $value .'</textarea>';
$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>';
$element .= '<span class="placeholder">'. $this->element[3] .'</span>';
$element .= '</div>';
$element .= '</label>';
break;
case "input_custom_error":
//d($value);
$element .= '<label for="'. $this->element[0] .'" class="input-name">';
$element .= $this->element[1];
$element .= '<div class="input-element">';
$element .= '<input type="text" value="'. $value .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'" onkeyup="this.setAttribute(\'value\', this.value);" class="'. $this->element[6] .'" placeholder="" autocomplete="off"'.$required.''.$custom_validator.'>';
$element .= '<span class="form-error">'. $this->element[9][1] .'</span>';
$element .= '<span class="placeholder">'. $this->element[3] .'</span>';
$element .= '</div>';
$element .= '</label>';
break;
case "functions":
$element .= '<label for="'. $this->element[0] .'" class="input-name">';
$element .= $this->element[1];
$element .= '<div class="input-element">';
$element .= '<input type="hidden" value="'. $value .'" id="'. $this->element[0] .'_ids" name="'. $this->element[0] .'">';
$element .= '<input type="text" value="'. $value .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'_labels" class="'. $this->element[6] .'" placeholder=""'.$required.''.$custom_validator.'>';
$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>';
$element .= '<span class="placeholder">'. $this->element[3] .'</span>';
$element .= '</div>';
$element .= '</label>';
break;
case "input_duplicate":
$element .= '<div class="image-uploads">';
if($value){
foreach(explode(", ",$value) as $i => $sticker)
{
$element .= '<div class="image-file-input'. ($i == 0 ? " first-item" : "") .'">';
$element .= '<label class="input-name">';
$element .= $this->element[1];
$element .= '<div class="input-element input-element__sticker">';
$element .= '<input type="text" value="'. $sticker .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'[]" onkeyup="this.setAttribute(\'value\', this.value);" class="'. $this->element[6] .'" placeholder=""'.$required.''.$custom_validator.'>
<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>
<span class="placeholder">'. $this->element[3] .'</span>';
$element .= '</div>';
$element .= '</label>';
$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
$element .= '<button class="button secondary duplicate-input-field" data-append-to=".image-uploads" type="button">Extra stickernummer</button>';
$element .= '</div>';
}
}
else{
$element .= '<div class="image-file-input first-item">';
$element .= '<label class="input-name">';
$element .= $this->element[1];
$element .= '<div class="input-element input-element__sticker">';
$element .= '<input type="text" value="'. $value .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'[]" onkeyup="this.setAttribute(\'value\', this.value);" class="'. $this->element[6] .'" placeholder=""'.$required.''.$custom_validator.'>
<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>
<span class="placeholder">'. $this->element[3] .'</span>';
$element .= '</div>';
$element .= '</label>';
$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
$element .= '<button class="button secondary duplicate-input-field" data-append-to=".image-uploads" type="button">Extra stickernummer</button>';
$element .= '</div>';
}
$element .= '</div>';
break;
case "calendar":
$element .= '<label for="'. $this->element[0] .'" class="input-name">';
$element .= $this->element[1];
$element .= '<div class="input-element">';
$element .= '<input type="text" value="'. strftime("%d-%m-%Y",strtotime($value)) .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'" onkeyup="this.setAttribute(\'value\', this.value);" class="calendar" placeholder=""'.$required.''.$custom_validator.'>';
$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>';
$element .= '<span class="placeholder">'. $this->element[3] .'</span>';
$element .= '</div>';
$element .= '</label>';
break;
case "slider_single":
// calc start value
$start_value = $value == "" ? 0 : ($value - 1) * 1000;
$element .= '<div class="checkbox-custom">';
$element .= '<input type="checkbox" value="1" id="'. $this->element[0] .'"><label class="input-name checkbox-custom" for="'. $this->element[0] .'">'. $this->element[1] .'</label>';
$element .= '<div class="slider" data-slider data-start="'. $this->element[10][0] .'" data-initial-start="'. $start_value .'" data-end="'. $this->element[10][1] .'" data-changed-delay="0">';
$element .= '<span class="slider-handle" data-slider-handle role="slider" tabindex="1"><span class="slider-value slider-value__percentage">'. ($start_value / 10).'</span></span>';
$element .= '<span class="slider-fill" data-slider-fill></span>';
$element .= '<input type="hidden" value="0" name="'. $this->element[0] .'">';
$element .= '</div>';
$element .= '</div>';
break;
case "slider":
$element .= '<label for="'. $this->element[0] .'" class="input-name">';
$element .= $this->element[1];
$element .= '</label>';
$element .= '<div class="slider" data-slider data-initial-start="25" data-initial-end="75">';
$element .= '<span class="slider-handle" data-slider-handle role="slider" tabindex="1"></span>';
$element .= '<span class="slider-fill" data-slider-fill></span>';
$element .= '<span class="slider-handle" data-slider-handle role="slider" tabindex="1"></span>';
$element .= '<input type="number" value="0" name="'. $this->element[0] .'_min">';
$element .= '<input type="number" value="0" name="'. $this->element[0] .'_max">';
$element .= '</div>';
break;
case "radio_image":
$element .= '<label class="input-name">'. $this->element[1] .'</label>';
$element .= '<div class="radio-images">';
foreach($this->element[5] as $option => $val)
{
$checked = $option == $value ? " checked" : "";
$elementId = $this->element[0].$option;
$element .= '<span class="item"><input type="radio" name="'. $this->element[0] .'" value="'. $option .'" id="'. $elementId .'"'.$checked.'><label for="'. $elementId .'">'. $val .'</label></span>';
}
$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>';
$element .= '</div>';
break;
case "hidden":
case "hidden_with_edit":
if( is_array($value) ) $value = $value[0];
$element .= '<input type="hidden" value="'. $value .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'" placeholder="" required>';
break;
case "password":
$element .= '<label class="input-name">';
$element .= $this->element[1];
$element .= '<div class="input-element">';
$element .= '<input type="password" value="" name="'. $this->element[0] .'" id="'. $this->element[0] .'" onkeyup="this.setAttribute(\'value\', this.value);" placeholder="" autocomplete="off"'. $required . $match_id .''.$custom_validator.'>';
$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>';
$element .= '<span class="placeholder">'. $this->element[3] .'</span>';
$element .= '</div>';
$element .= '</label>';
break;
case "select":
case "select_not_required":
$required = $this->element[2] == "select" && $this->element[2] != true ? " required" : "";
$disabled = isset($this->element["disabled"]) && $this->element["disabled"] === true ? " disabled" : "";
$disabled_elements = [];
if($this->element[9] && $this->element[9][0] == "disable_checks"){
$custom_validator = [];
$groups = explode("||",$this->element[9][1]);
foreach($groups as $group){
$items = explode(":",$group);
$disabled_elements[$items[0]] = $items[1];
$custom_validator[] = $items[1];
}
$custom_validator = ' data-disable-checks="'. implode(",",$custom_validator) .'"';
}
$element .= '<label class="input-name">';
$element .= $this->element[1];
$element .= '<select id="'. $this->element[0] .'" name="'. $this->element[0] .'"'. $required . $disabled . $custom_validator .'>';
foreach($this->element[5] as $option => $val)
{
$selected = $value == $option || $option == $this->element["value"] ? " selected" : "";
$data = "";
if(!empty($disabled_elements)){
$data = isset($disabled_elements[$option]) ? 'data-elements="'. $disabled_elements[$option] .'"' : 'data-elements=""';
}
$element .= '<option value="'. $option .'"'. $selected .' '. $data .'>'. $val .'</option>';
}
$element .= '</select>';
$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>';
$element .= '</label>';
break;
case "select_smart":
$element .= '<label class="input-name">'. $this->element[1] .'</label>';
$element .= '<div class="smart-select" id="'. $this->element[0] .'">';
foreach($this->element[5] as $option => $val){
$values = !is_array($this->element[6]) ? explode(", ",$this->element[6]) : $this->element[6];
$checked = in_array($option,$values) ? " checked" : "";
$elementId = $this->element[0].$option;
$element .= '<div class="item" data-show-options="'. $this->element[6][$option][0] .'" data-hide-options="'. $this->element[6][$option][1] .'">
<input type="radio" name="'. $this->element[0] .'" value="'. $option .'" id="'. $elementId .'"'.$checked.'><label for="'. $elementId .'">'. $val .'</label>
</div>';
}
$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>';
$element .= '</div>';
break;
case "select_smart_v2":
$element .= '<label class="input-name">'. $this->element[1] .'</label>';
$element .= '<div class="smart-select" id="'. $this->element[0] .'">';
foreach($this->element[5] as $count => $option){
$checked = $option["checked"] ? " checked" : "";
$elementId = $this->element[0].$count;
$element .= '<div class="item" data-show-options="'. $this->element[6][$option][0] .'" data-hide-options="'. $this->element[6][$option][1] .'">
<input type="radio" name="'. $this->element[0] .'" value="'. $option["version_id"] .'" id="'. $elementId .'"'.$checked.' data-version-change data-price="'. $option["price"] .'" data-fork-adjuster="'. $option["fork_adjuster"] .'"><label for="'. $elementId .'">'. $option["label"] .'</label>
</div>';
$element .= '<input type="text" value="'. $option["options"] .'" name="'. $this->element[0] .'_options'. $option["version_id"] .'">';
}
$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>';
$element .= '</div>';
break;
case "select_smart_multiple":
$element .= '<label class="input-name">'. $this->element[1] .'</label>';
$element .= '<div class="smart-select" id="'. $this->element[0] .'">';
$tips = [];
foreach($this->element[5] as $option => $val)
{
$checked = !is_array($value) && in_array($option,explode(",",$value)) ? " checked" : "";
$elementId = $this->element[0].$option;
$element .= '<div class="item" data-show-options="'. $this->element[6][$option][0] .'" data-hide-options="'. $this->element[6][$option][1] .'">
<input type="checkbox" name="'. $this->element[0] .'[]" value="'. $option .'" id="'. $elementId .'"'.$checked.'>
<label for="'. $elementId .'" data-toggle2="tip'.$option.'">
'. $val .'
</label>
</div>'; //'. ($this->element[6][$option] != "" ? '<span data-tooltip class="top" data-click-open="false" title="'. $this->element[6][$option] .'"><i class="fa fa-info-circle"></i></span>' : "") .'
if(isset($this->element[6][$option]) && $this->element[6][$option] != "")
{
$tips["tip".$option] = [
"tip" => $this->element[6][$option],
"checked" => in_array($option,explode(", ",$value)) ? true : false
];
}
}
foreach($tips as $i=> $tip)
{
$hide = "";//$tip["checked"] == false ? " hide" : "";
$element .= '<div class="callout success'. $hide .'" id="'. $i .'" data-toggler=".hide"><strong>'. $tip["tip"] .'</strong></div>';
}
$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>';
$element .= '</div>';
break;
case "checkbox":
$element .= '<div class="row">';
$element .= '<div class="small-12 columns">';
$element .= '<label class="input-name">'. $this->element[1] .'</label>';
$element .= '</div>';
if(!is_array($value)) $value = explode(", ",$value);
//echo "name=".$this->element[1];
foreach($this->element[5] as $option => $val)
{
$checked = in_array($option,$value) ? " checked" : "";
$elementId = $this->element[0].$option;
$element .= '<div class="small-12 medium-4 columns"><label for="'. $elementId .'"><input type="checkbox" name="'. $this->element[0] .'[]" value="'. $option .'" id="'. $elementId .'"'. $checked .'>'. $val .'</label></div>';
}
$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>';
$element .= '</div><br />';
break;
case "checkbox_inline":
case "checkbox_hidden":
if($this->element[2] == "checkbox_hidden") $element .= '<div class="hide">';
$element .= '<label class="input-name">'. $this->element[1] .'</label>';
foreach($this->element[5] as $i => $option)
{
$elementId = $this->element[0].$option["label"];
$checked = $option["checked"] ? " checked" : "";
$tabindex = ($this->element[2] == "checkbox_hidden") ? 'tabindex="-1"' : "";
$element .= '<div class="choice-row choice-row__inline choice-'.$this->element[0].'">
<span class="float-left">
<input type="checkbox" name="'. $this->element[0] .'[]" data-factor="'. $option["value"] .'" value="'. $option["label"] .'" id="'. $elementId .'"'.$checked.' '. $tabindex .'><label for="'. $elementId .'">'. $option["label"] .'</label>
</span>
</div>';
}
if($this->element[2] == "checkbox_hidden") $element .= '</div>';
break;
case "checkbox_truck_version":
$element .= '<div class="data-truck-version-options"><label class="input-name">'. $this->element[1] .'</label>';
foreach($this->element[5] as $i => $option)
{
$element_id = $this->element[0].$option["label"].$option["version_id"];
$element .= '<div class="choice-row" data-choice-row>';
$element .= '<span class="float-left">';
$element .= '<input type="checkbox" name="'. $this->element[0] .'[]" value="'.$i .'" data-price="'. $option["value"] .'" id="'. $element_id .'" data-version="'.$option["version_id"].'">';
$element .= '<label for="'. $element_id .'">' . $option["label"] .'</label>';
$element .= '</span>';
$element .= '<span class="option-price float-right">'. $option["value"] .'</span>';
$element .= '</div>';
}
$element .= '</div>';
break;
case "checkbox_v2":
case "checkbox_v2_not_custom":
$element .= '<label class="input-name">'. $this->element[1] .'</label>';
//d($this->element[5]);
foreach($this->element[5] as $i => $option)
{
$checked = isset($option["checked"]) && $option["checked"] === true ? " checked" : "";
$elementId = $this->element[0].$option["label"];
$element_name = isset($option["custom"]) && $option["custom"] == true ? : $this->element[0];
if(isset($option["custom"]) && $option["custom"] == true){
$element .= '<div class="choice-row" data-choice-row>
<span class="float-left">
<input type="checkbox" name="custom_options[]" value="'. $option["label"] .'" data-price="'. $option["value"] .'" id="'. $elementId .'"'. $checked .'>
<label for="'. $elementId .'">'. $option["label"] .'</label>
<input type="hidden" name="custom_options_price[]" value="'. $option["value"] .'">
</span>
<span class="option-price float-right">'. $option["value"] .'</span>
</div>';
}
else{
//d($option);
$element .= '<div class="choice-row" data-choice-row>';
$element .= '<span class="float-left">';
$element .= '<input type="checkbox" name="'. $element_name .'[]" value="'. $i .'" data-price="'. $option["value"] .'" id="'. $elementId .'"'. $checked .'>';
$element .= '<label for="'. $elementId .'">';
$element .= $option["label"];
if($option["tooltip"]) $element .= ' <span data-tooltip title="'. $option["tooltip"] .'"><i class="fa fa-info-circle"></i></span>';
$element .= '</label>';
$element .= '</span>';
$element .= '<span class="option-price float-right">'. $option["value"] .'</span>';
$element .= '</div>';
}
}
if( $this->element[2] == "checkbox_v2") $element .= '<div class="choice-row choice-row__custom" choice-row-custom>
<button type="button" class="button primary" data-custom-option>+</button>
<div class="input-element">
<input type="text" class="custom-option-description" value="" name="custom_option_desc[]" class="" placeholder="Korte omschrijving optie">
</div>
<div class="input-element input-element__price">
<input type="text" class="custom-option-price" value="" name="custom_option_price[]" class="text-right" placeholder="0,00">
</div>
</div>';
break;
case "enquiry_sum_price";
case "enquiry_sum_price_anton";
$star_prices = $this->element[5]["truck_total"];
$sum_options = $this->element[5]["options_price"];
$element .= '<div class="enquiry-sum">';
foreach($this->element[5] as $key => $option)
{
if($key == "truck_version") continue;
$element .= '<div class="sum-row '. $option["class"] .'">';
if(!$option["stars"])
{
$element .= '<span class="float-left">';
$element .= '<span class="sum-label">'. $option["label"] .'</span>';
$element .= '</span>';
$element .= '<span class="sum-price float-right" data-'. $key .'>';
$element .= number_format($option["value"],2,',','.');
$element .= '</span>';
}
elseif( $this->element[2] == "enquiry_sum_price")
{
$element .= '<div class="truck-pricing">';
if($option["stars"]){
// header
$element .= '<div class="sum-stars-row sum-stars-row__labels">';
$element .= '<div class="sum-star-label"><strong>Sterren</strong></div>';
$element .= '<div class="sum-star-org-price"><strong>Truckprijs</strong></div>';
$element .= '<div class="sum-price"><strong>Incl. opties</strong></div>';
$element .= '</div>';
foreach($option["stars"] as $i => $star)
{
$truck_star_price = $star_prices["custom_price"][$i];
$input_value_excl = isset($star_prices["custom_price"][$i]) && !empty($star_prices["custom_price"][$i]) ? number_format($star["value"],2,',','') : 0;
$input_value_incl = isset($star_prices["custom_price"][$i]) && !empty($star_prices["custom_price"][$i]) ? number_format($star["value"] + $sum_options["value"],2,',','') : 0;
$element .= '<div class="sum-stars-row" data-stars="'. $i .'">';
// star labek
$element .= '<div class="sum-star-label">';
$element .= $star["label"];
$element .= '</div>';
// truck price
$element .= '<div class="sum-star-org-price">';
$element .= '<div class="price-element">' . number_format($star["value"],2,',','.'). '</div>';
$element .= '<div class="input-element hide">';
$element .= '<input type="text" class="custom-option-description" value="'.$input_value_excl.'" data-value="'. number_format($star["value"],2,',','') .'" name="truck_price_custom_excl_'. $i .'" data-calculate="0" autocomplete="off">';
$element .= '</div>';
$element .= '</div>';
// truck price with options
$element .= '<div class="star-price sum-price">';
$element .= '<div class="price-element text-right">' . number_format($star["value"] + $sum_options["value"],2,',','.'). '</div>';
$element .= '<div class="input-element hide">';
$element .= '<input type="text" class="custom-option-description" value="'.$input_value_incl.'" data-value="'. number_format($star["value"] + $sum_options["value"],2,',','') .'" name="truck_price_custom_incl_'. $i .'" data-calculate="1" autocomplete="off">';
$element .= '</div>';
$element .= '</div>';
if( in_array($this->role,[2,3,14]))
{
$element .= '<div class="star-edit">';
$element .= '<button type="button" class="button primary" data-custom-starprice><i class="fa fa-pencil"></i></button>';
$element .= '</div>';
}
$element .= '</div>';
}
}
$element .= '</div>';
}
$element .= '</div>';
}
$element .= '</div>';
/**/
break;
case "upload":
$org_image_input = "";
$element .= '<div class="image-uploads">';
// field has value
if($value){
foreach($value as $i => $img)
{
$element .= '<div class="image-file-input'. ($i == 0 ? " first-item" : "") .'">';
$element .= '<label class="input-name">';
$element .= $this->element[1];
$element .= '<div class="input-element">';
$element .= '<div class="file-upload"><input type="file" placeholder="" value="" name="'. $this->element[0] .'[]"></div>';
$element .= '<span class="placeholder" data-label="'. $this->element[3] .'">'. $this->element[3] .'</span>';
$element .= '<input type="hidden" value="'. $img["img_id"] .'" name="'. $this->element[0] .'_org[]">';
$element .= '</div>';
$element .= '</label>';
$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
$element .= '<button class="button secondary duplicate-image-upload" data-append-to=".image-uploads" type="button">Extra foto</button>';
$element .= '</div>';
$org_image_input .= '<input type="hidden" value="'. $img["img_id"] .'" name="'. $this->element[0] .'_check[]">';
}
}
else
{
$element .= '<div class="image-file-input first-item">';
$element .= '<label class="input-name">';
$element .= $this->element[1];
$element .= '<div class="input-element">';
$element .= '<div class="file-upload"><input type="file" placeholder="" value="'. $value .'" name="'. $this->element[0] .'[]"></div>';
$element .= '<span class="placeholder" data-label="'. $this->element[3] .'">'. $this->element[3] .'</span>';
$element .= '<input type="hidden" value="'. $value .'" name="'. $this->element[0] .'_org">';
$element .= '</div>';
$element .= '</label>';
$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
$element .= '<button class="button secondary duplicate-image-upload" data-append-to=".image-uploads" type="button">Extra foto</button>';
$element .= '</div>';
}
$element .= '</div>';
// include the original images input
$element .= $org_image_input;//'<input type="hidden" value="'. $img["img_id"] .'" name="'. $this->element[0] .'_org[]">';
break;
case "upload2":
$org_image_input = "";
$element .= '<div class="image-uploads">';
// field has value
if($value){
foreach($value as $i => $img)
{
$element .= '<div class="image-file-input'. ($i == 0 ? " first-item" : "") .'">';
$element .= '<label class="input-name">';
$element .= $this->element[1];
$element .= '<div class="input-element">';
$element .= '<div class="file-upload"><input type="file" placeholder="" value="" name="'. $this->element[0] .'[]"></div>';
$element .= '<span class="placeholder" data-label="'. $this->element[3] .'">'. $img->getOrgName() .'</span>';
$element .= '<input type="hidden" value="'. $img->getFileId() .'" name="'. $this->element[0] .'_org[]">';
$element .= '</div>';
$element .= '</label>';
$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
$element .= '<button class="button secondary duplicate-image-upload" data-append-to=".image-uploads" type="button">Extra foto</button>';
$element .= '</div>';
$org_image_input .= '<input type="hidden" value="'. $img->getFileId() .'" name="'. $this->element[0] .'_check[]">';
}
}
else
{
$element .= '<div class="image-file-input first-item">';
$element .= '<label class="input-name">';
$element .= $this->element[1];
$element .= '<div class="input-element">';
$element .= '<div class="file-upload"><input type="file" placeholder="" value="'. $value .'" name="'. $this->element[0] .'[]"></div>';
$element .= '<span class="placeholder" data-label="'. $this->element[3] .'">'. $this->element[3] .'</span>';
$element .= '<input type="hidden" value="'. $value .'" name="'. $this->element[0] .'_org">';
$element .= '</div>';
$element .= '</label>';
$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
$element .= '<button class="button secondary duplicate-image-upload" data-append-to=".image-uploads" type="button">Extra foto</button>';
$element .= '</div>';
}
$element .= '</div>';
// include the original images input
$element .= $org_image_input;//'<input type="hidden" value="'. $img["img_id"] .'" name="'. $this->element[0] .'_org[]">';
break;
case "switch":
$input_checked = $value == 1 ? " checked" : "";
$element = '<label class="input-name">';
$element .= $this->element[1];
$element .= '</label>';
$element .= '<div class="switch small">';
$element .= '<input class="switch-input" id="'. $this->element[0] .'" type="checkbox" name="'. $this->element[0] .'" value="1"'.$input_checked.'>';
$element .= '<label class="switch-paddle" for="'. $this->element[0] .'">';
$element .= '<span class="switch-active" aria-hidden="true">Ja</span>';
$element .= '<span class="switch-inactive" aria-hidden="true">Nee</span>';
$element .= '</label>';
$element .=' </div>';
break;
case "multi":
$element .= '<legend>'. $this->element[1] . '</legend>';
// get inspection form version
$form_version = $this->element[6];
foreach($this->element[5] as $name => $label)
{
$tagname = strtolower($label) == "overig" ? "label" : "div";
$option_checked = is_array($value) ? $value[$name] : "";
$element .= '<'.$tagname.' class="input-name multiple-choice" id="'. preg_replace("/ /","-",$this->element[0]) ."_". $this->versionName($name,$form_version) .'">';
$element .= '<span class="text-label">'. $label .'</span>';
if(strtolower($label) == "overig")
{
$element .= '<div class="input-element input-element__full-width">';
$element .= '<input type="text" value="'. $value[$name."_title"] .'" name="'. $this->versionName($name,$form_version) .'_title" id="'. $this->versionName($name,$form_version) .'" onkeyup="this.setAttribute(\'value\', this.value);"><span class="placeholder">Overige informatie</span>';
$element .= '</div>';
}
$element .= '<div class="input-element">';
$element .= '<span class="item">
<input type="radio" name="'. $this->versionName($name,$form_version) .'" '. $this->optionIsChecked(1,$option_checked) .' value="1" id="'. $this->versionName($name,$form_version) . '.1">
<label for="'. $this->versionName($name,$form_version) . '.1">Goed</label>
</span>';
$element .= '<span class="item">
<input type="radio" name="'. $this->versionName($name,$form_version) .'" '. $this->optionIsChecked(2,$option_checked) .' value="2" id="'. $this->versionName($name,$form_version) . '.2">
<label for="'. $this->versionName($name,$form_version) . '.2">Matig</label>
</span>';
$element .= '<span class="item">
<input type="radio" name="'. $this->versionName($name,$form_version) .'" '. $this->optionIsChecked(3,$option_checked) .' value="3" id="'. $this->versionName($name,$form_version) . '.3">
<label for="'. $this->versionName($name,$form_version) . '.3">Slecht</label>
</span>';
$element .= '<span class="item">
<input type="radio" name="'. $this->versionName($name,$form_version) .'" '. (!is_array($value) || $option_checked == 0 ? "checked" : "") .' value="0" id="'. $this->versionName($name,$form_version) . '.0">
<label for="'. $this->versionName($name,$form_version) . '.0">N.v.t.</label>
</span>';
$element .= '</div>';
$element .= '</'.$tagname.'>';
}
break;
}
$column_width = !isset($this->element[4]) ? "small-12" : $this->element[4];
return '<div class="'. $column_width .' columns">'. $element .'</div>';
}
private function versionName($name,$form_version){
return $name."_".$form_version;
}
private function optionIsChecked($item,$saved)
{
return $item == $saved ? "checked" : "";
}
public function formVersionId(){
return $this->element[6];
}
public function setDisabled(){
return $this->element["disabled"]= true;
}
/*
public function __get( $key )
{
return $this->values[ $key ];
}*/
}