<?php
|
namespace JVBase\managers\SEO\render\Traits\_Properties;
|
|
use JVBase\managers\SEO\render\Traits\_Helpers\arrayHelper;
|
use JVBase\meta\Meta;
|
use JVBase\registrar\Fields;
|
|
if (!defined('ABSPATH')) {
|
exit;
|
}
|
trait awardTrait {
|
use arrayHelper;
|
/**
|
* @var array|string An award won by or for this item. Supersedes awards.
|
*/
|
protected array|string $award;
|
|
public function getAward():array|string|null
|
{
|
return $this->award??null;
|
}
|
public function setAward(array|string $award):void
|
{
|
if (is_array($award)){
|
$award = $this->stringArray('award',$award);
|
}
|
$this->award = $award;
|
}
|
|
public function setAwardField(Fields $fields):void
|
{
|
$fields->addField('awards', [
|
'type' => 'tagList',
|
'label' => __('Award(s)', 'jvb'),
|
'hint' => 'List any awards won by this Thing.',
|
'fields' => [
|
'name' => [
|
'type' => 'text',
|
'label' => __('Award Name', 'jvb'),
|
'required' => true,
|
],
|
'presenter' => [
|
'type' => 'text',
|
'label' => __('Presenter', 'jvb'),
|
],
|
'year' => [
|
'type' => 'number',
|
'label' => __('Year', 'jvb')
|
]
|
]
|
]);
|
}
|
|
public function formatAwardField(Meta $meta):void
|
{
|
$awards = $meta->get('awards');
|
$out = [];
|
if (!empty($awards)) {
|
foreach ($awards as $a) {
|
$award = false;
|
if (!empty($a['name'])) {
|
$award = '"'.$a['name'].'"';
|
}else {
|
continue;
|
}
|
if (!empty($a['presenter'])) {
|
$award .= ', presented by '.$a['presenter'];
|
}
|
if (!empty($a['year'])) {
|
$award .= ' - '.$a['year'];
|
}
|
if ($award) {
|
$out[] = $award;
|
}
|
}
|
}
|
if (!empty ($out)) {
|
$this->setAward($out);
|
}
|
}
|
}
|