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/fvr.creativefellows.nl/src/Domain/Form/Data/FormData.php
<?php

namespace App\Domain\Form\Data;

use App\Domain\Data;


final class FormData extends Data
{	
	protected $fields = [];
	protected $html;
	protected $action;
	protected $email;
	protected $form_error_message = "Het formulier kan niet verstuurd worden omdat we een aantal velden niet begrijpen.";
	
	public function id()
	{
		return $this->form_id;
	}
	
	public function setId($id)
	{
		$this->form_id = $id;
	}
	
	public function setHashKey($hash)
	{
		$this->hash = uniqid($hash);
	}
	
	public function setClass($class=null)
	{
		$this->class = $class;
	}
	
	public function class()
	{
		return $this->class ? " ".$this->class : null;
	}
	
	public function uid()
	{
		return $this->unique_id;
	}
	
	public function setUid($uid)
	{
		$this->uid = $uid;
	}
	
	public function getUid()
	{
		return $this->uid;
	}
	
	

	public function setField($field)
	{
		$this->fields[] = $field;
	}
	
	public function getFields()
	{
		return $this->fields;
	}
	
	public function title($class="")
	{
		return '<h2 class="form-name">'.  $this->name() .'</h2>';
	}
	
	public function name()
	{
		return $this->form_name;
	}
	
	public function url()
	{
		return preg_replace("/ /","-",strtolower($this->form_name));
	}
	
	public function lead()
	{
		return $this->form_desc;
	}
	
	public function responseText()
	{
		return $this->form_submitted;
	}
	
	
	public function hash()
	{
		return hash_hmac('sha256', $this->name(), $this->id());

	}
	
	
	public function receivers()
	{
		return explode(",",$this->form_response);
	}
	
		
	public function html($sizes = [])
	{		
		$this->html .= '<form class="form" id="form'. $this->id() .'" action="'. $this->action() .'" data-token="'. $this->spamtoken() .'" method="post" enctype="multipart/form-data" novalidate>';
			foreach($this->fields as $field)
			{
				$this->html .= $field->html($sizes);	
			}
			$this->html .= $this->refererPageId();
			$this->html .= $this->button();
			$this->html .= $this->formError();
			
		$this->html .= '</form>';
		
		return $this->html;
	}
	
	private function spamtoken()
	{
		return $this->hash;
	}
	
	private function refererPageId(){
		return '<input type="hidden" name="uid" value="'. $this->getUid() .'" />';
	}
	
	private function button()
	{
		//return '<div class="grid-x grid-padding-x"><div class="cell small-12"><button class="button secondary" type="submit"><i class="fa fa-arrow-circle-right"></i>'. $this->button_label .'</button></div></div>';
		
		$el = '<br /><label>Schuif het balkje naar rechts om te verzenden</label>';		
		$el .= '<div class="hide "><input type="text" name="slided_by_human" class="slided_by_human"  value="" /></div>';

		$el .= '<div class="slide-submit">';
			$el .= '<div class="slide-submit-text"></div>';
			$el .= '<div class="slide-submit-thumb"></div>';
		$el .= '</div>';
		$el .= "<input type='hidden' name='slider-validate' value='". $this->spamtoken() ."' data-abide-ignore />";			

		$el .= "<div class='button-wrapper' style='display:none'>";
			$el .= '<button class="button secondary" type="submit"><i class="fa fa-arrow-circle-right"></i>'. $this->button_label .'</button>';
		$el .= "</div>";
		
		return $el;
		
	}
	
	private function formError()
	{
		return '<div class="grid-x grid-padding-x"><div class="cell small-12"><div data-abide-error class="callout alert text-center" aria-live="assertive" style="display: none;"><p><i class="fi-alert"></i> '. $this->form_error_message .'</p></div></div></div>';
	}
	
	public function setAction($action)
	{
		$this->action = $action;
	}
	
	private function action()
	{
		return $this->action;
	}
	
	
	public function setPostData($postData)
	{
		$fields = $this->getFields();
		
		foreach($fields as $field)
		{	
			// post value
			$post_value = $postData[ $field->postName() ] ?? null;

			// set
			$field->setPostValue( $post_value );
			
			// set html	
			$this->email .= $field->htmlRow() ;
		}
		
	}
	
	private function subjectHtml()
	{
		return '<table class="row" style="border-collapse:collapse;border-spacing:0;display:table;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;position:relative;text-align:left;vertical-align:top;width:100%"><tbody><tr style="padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;text-align:left;vertical-align:top"><th class="small-12 large-12 columns first last" style="-moz-hyphens:auto;-webkit-hyphens:auto;Margin:0 auto;border-collapse:collapse!important;color:#2b2d33;font-family:Helvetica,Arial,sans-serif;font-size:15px;font-weight:400;hyphens:auto;line-height:1.4;margin:0 auto;padding-bottom:0;padding-left:24px;padding-right:24px;padding-top:0;text-align:left;vertical-align:top;width:696px;word-wrap:break-word"><table style="border-collapse:collapse;border-spacing:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;text-align:left;vertical-align:top;width:100%"><tbody><tr style="padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;text-align:left;vertical-align:top"><th style="-moz-hyphens:auto;-webkit-hyphens:auto;Margin:0;border-collapse:collapse!important;color:#2b2d33;font-family:Helvetica,Arial,sans-serif;font-size:15px;font-weight:400;hyphens:auto;line-height:1.4;margin:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;text-align:left;vertical-align:top;word-wrap:break-word"><h4 style="color:#000000;margin:0 0 24px 0;font-size:20px;font-weight:bold;">'. $this->name() .'</h4></th><th class="expander" style="-moz-hyphens:auto;-webkit-hyphens:auto;Margin:0;border-collapse:collapse!important;color:#2b2d33;font-family:Helvetica,Arial,sans-serif;font-size:15px;font-weight:400;hyphens:auto;line-height:1.4;margin:0;padding:0!important;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;text-align:left;vertical-align:top;visibility:hidden;width:0;word-wrap:break-word"></th></tr></tbody></table></th></tr></tbody></table>';
	}
	
	public function getEmailHtml()
	{	
        return $this->subjectHtml() . $this->email;
	}
	
		
}