From 9bbeea742424837fb58207d88e10dbca0b2cae04 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 03 May 2026 22:04:17 +0000
Subject: [PATCH] =SEO Field registration and formatting
---
inc/managers/SEO/render/Traits/_Properties/awardTrait.php | 57 ++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 48 insertions(+), 9 deletions(-)
diff --git a/inc/managers/SEO/render/Traits/_Properties/awardTrait.php b/inc/managers/SEO/render/Traits/_Properties/awardTrait.php
index b0a678a..94672c2 100644
--- a/inc/managers/SEO/render/Traits/_Properties/awardTrait.php
+++ b/inc/managers/SEO/render/Traits/_Properties/awardTrait.php
@@ -2,6 +2,8 @@
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;
@@ -24,19 +26,56 @@
}
$this->award = $award;
}
- public function getAwardFieldConfig():array
+
+ public function setAwardField(Fields $fields):void
{
- return [
- 'type' => 'repeater',
- 'label' => 'Award(s)',
- 'hint' => 'List any awards won by this Thing.',
+ $fields->addField('awards', [
+ 'type' => 'tagList',
+ 'label' => __('Award(s)', 'jvb'),
+ 'hint' => 'List any awards won by this Thing.',
'fields' => [
- 'award' => [
+ 'name' => [
'type' => 'text',
- 'label' => 'Award',
- 'hint' => 'Include the award name, year, and presenter (if any)'
+ '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);
+ }
}
}
--
Gitblit v1.10.0