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/oudlondon.creativefellows.nl/src/Domain/XML/XmlJobData.php
<?php

namespace App\Domain\XML;
use App\Domain\Jobs\Data\JobData;
use App\Domain\XML\MySimpleXMLElement;


final class XmlJobData
{	
 	protected $domain;
	
	function __construct()
	{
		$this->xml = new MySimpleXMLElement('<jobs version="1.0" />');
	}
	
	
	function asXML()
	{
		return $this->xml->asXML();
	}	
	
	public function setDomain( $domain )
	{
		$this->domain = $domain;
	}
	
	public function setJobs($jobs)
	{	
			
		foreach($jobs as $job_data)
		{	
			$this->addJobChild($job_data);
		}
	}
	
	
	public function addJobChild($job_data)
	{	
		// create node
		$job = $this->xml->addChild("job");
		
		// properties
		$properties = $this->setJobData($job_data);
		
	 	foreach($properties as $property => $value)
		{
		 	if(!is_array($value)) $job->addChildWithCData($property,$value);
	 		else{
				$this->addChild($job,$property,$value);
				//$child = $job->addChild($property);
	 			//d($value);
	 		}
	 	}
				
	}
	public function addChild($parent_node, $name, $properties)
	{
		$child = $parent_node->addChild($name);
		foreach($properties as $property => $value)
		{
			if(!is_array($value)) $child->addChildWithCData($property,$value);
			else $this->addChild($child,$property,$value);
		}
		
	}

	
	private function setJobData($job_data){
		
		return [
			"jobId" => $job_data->localId(),
			"jobAddedDate" => $job_data->dateCreated(),
			"hotJob" => "false",
			"jobTitle" => $job_data->title,
			"jobDescription" => htmlspecialchars($job_data->function_desc),
			"jobLocation" => [
				"locationPlace" => $job_data->location,
				"locationZipCode" => $job_data->location_zip,
			],
			"jobCategory" => $job_data->category(),
			"jobEducation" => $job_data->intellectual,
			"jobUrl" => $this->domain . $job_data->url(),
			"jobOffer" => [
				"offerDescription" => htmlspecialchars($job_data->offer_desc), 
				"offerContract"	=> [
					"contractType" => $job_data->employment,
					"contractHours"	=> [
						"hoursType" => $job_data->employment,
						"hoursMin" => $job_data->hours,
						"hoursMax" => $job_data->hours_max,
						"hoursDescription" => $job_data->hours_desc(),
					],
					"contractSalaryDescription"	=> "",
					"contractDescription"	=> "",
				]
			],
			"jobRequirements" => [
				"requirementsDescription" =>  htmlspecialchars($job_data->requirement_desc),
			],
			"jobEmployerInfo" => htmlspecialchars($job_data->client_desc),
			"jobContact" => [
				"contactName" => $job_data->contact_name, 
				"contactAddress" => [
					"addressStreet" => $job_data->contact_address,
					"addressZipcode" => $job_data->contact_zip,
					"addressPlace" => $job_data->contact_city,
				],
				"contactPhone" => $job_data->contact_phone,
				"contactEmail" => $job_data->contact_email,
				"applicationUrl" => $this->domain . $job_data->url()."#direct-solliciteren",
			],
			"jobBranch" => [
				"branchName" => "Apics Flexjobs",
				"branchPlace" => "Alphen aan den Rijn",
			]
			
		];
		
	}
	
	private function domain_path(){
		
	}
	
	
}