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(){
}
}