From 3aada9949d51024a92a8b5c6cb70d12f9c3cac16 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 21 Dec 2025 19:59:48 +0000
Subject: [PATCH] =auth refactored via rest, referral system set up for Jane, some javascript consolidation

---
 inc/meta/MetaRenderer.php |   66 +++++++++++++++++++++++++++++++++
 1 files changed, 66 insertions(+), 0 deletions(-)

diff --git a/inc/meta/MetaRenderer.php b/inc/meta/MetaRenderer.php
index fa70635..cbf8d4b 100644
--- a/inc/meta/MetaRenderer.php
+++ b/inc/meta/MetaRenderer.php
@@ -94,6 +94,72 @@
 		return jvbRenderTermList($terms, $field['label']);
     }
 
+	protected function renderTagListField(string $name, array|bool $value, array $field): string
+	{
+		if (empty($value) || !is_array($value)) {
+			return '';
+		}
+
+		if (!isset($field['fields']) || !is_array($field['fields'])) {
+			return '';
+		}
+
+		$tag_format = $field['tag_format'] ?? 'first_field';
+		$output = '<div class="tag-list-display">';
+
+		if (!empty($field['label']) && ($field['show_label'] ?? false)) {
+			$output .= '<h4 class="tag-list-label">' . esc_html($field['label']) . '</h4>';
+		}
+
+		$output .= '<div class="tag-list-items">';
+
+		foreach ($value as $item) {
+			if (!is_array($item) || empty($item)) {
+				continue;
+			}
+
+			$tag_text = $this->getTagDisplayText($item, $tag_format);
+			$output .= '<span class="tag-list-item">' . esc_html($tag_text) . '</span>';
+		}
+
+		$output .= '</div></div>';
+
+		return $output;
+	}
+
+	/**
+	 * Get display text for a tag based on format
+	 */
+	protected function getTagDisplayText(array $data, string $format): string
+	{
+		$values = array_filter(array_values($data));
+
+		if (empty($values)) {
+			return '';
+		}
+
+		switch ($format) {
+			case 'first_field':
+				return $values[0];
+
+			case 'all_fields':
+				return implode(', ', $values);
+
+			default:
+				// Template format like "{name} ({email})"
+				if (strpos($format, '{') !== false) {
+					$text = $format;
+					foreach ($data as $key => $value) {
+						$text = str_replace('{' . $key . '}', $value, $text);
+					}
+					return $text;
+				}
+
+				// Use specific field
+				return $data[$format] ?? $values[0];
+		}
+	}
+	
     protected function renderRepeaterField($name, $value, $field):string
     {
 //        jvbDump($value, 'Repeater Field:');

--
Gitblit v1.10.0