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