HEX
Server: Apache
System: Linux v38079.2is.nl 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: democfellows (10015)
PHP: 8.1.34
Disabled: opcache_get_status
Upload Files
File: /var/www/vhosts/creativefellows.nl/education.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;
		}
	
	
	}	
	
	
	
?>