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/firstbrick.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 nog niet verstuurd worden. De rood gemarkeerde velden bevatten waarden die wij niet snappen.";
	
	public function id()
	{
		return $this->form_id;
	}
	
	public function setId($id)
	{
		$this->form_id = $id;
	}
	
	public function uid()
	{
		return $this->unique_id;
	}
	
	public function setClass($class=null)
	{
		$this->class = $class;
	}

	public function class()
	{
		return $this->class ? " ".$this->class : null;
	}
	
	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'. $this->class() .'" action="'. $this->action() .'" method="post" enctype="multipart/form-data" data-abide novalidate>';
			foreach($this->fields as $field)
			{
				$this->html .= $field->html($sizes);	
			}
			$this->html .= $this->formError();
			$this->html .= $this->button();
		$this->html .= '</form>';
		
		return $this->html;
	}
	
	
	private function button()
	{
		$this->button = '<div class="grid-x grid-padding-x"><div class="cell small-12"><button class="button primary" type="submit">'. $this->button_label .'</button></div></div>';
	}
	
	private function formError()
	{
		$this->formError = '<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;
	}
	
		
}