<?php
|
namespace JVBase\managers\SEO\render\Traits\_Properties;
|
|
use JVBase\base\SchemaHelper;
|
use JVBase\managers\SEO\render\Thing\Intangible\StructuredValue\GeoCoordinates;
|
use JVBase\managers\SEO\render\Thing\Intangible\StructuredValue\GeoShape;
|
|
if (!defined('ABSPATH')) {
|
exit;
|
}
|
trait geoTrait {
|
/**
|
* @var GeoCoordinates|GeoShape The geo coordinates of the place.
|
*/
|
protected GeoCoordinates|GeoShape $geo;
|
|
public function getGeo():GeoCoordinates|GeoShape|null
|
{
|
return $this->geo??null;
|
}
|
|
public function setGeo(GeoCoordinates|GeoShape|array $geo):void
|
{
|
if (is_array($geo)) {
|
if(!array_key_exists('type', $geo)) {
|
$geo['type'] = 'JVBase\managers\SEO\render\Thing\Intangible\StructuredValue\GeoCoordinates';
|
}
|
$geo = SchemaHelper::classFromConfig($geo);
|
}
|
$this->geo = $geo;
|
}
|
public function getGeoFieldConfig():array
|
{
|
return [
|
'type' => 'group',
|
'wrap' => 'details',
|
'label' => 'Coordinates',
|
'fields' => [
|
'latitude' => [
|
'type' => 'text',
|
'label' => 'Latitude',
|
'hint' => 'The latitude of a location. For example 37.42242'
|
],
|
'longitude' => [
|
'type' => 'text',
|
'label' => 'Longitude',
|
'hint' => 'The longitude of a location. For example -122.08585'
|
]
|
]
|
];
|
}
|
}
|