From 0e4b986e81f8132a44e61fa8df18860301cc3468 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 01 Jan 2026 20:31:10 +0000
Subject: [PATCH] =JakeVan preliminary additions
---
inc/meta/MetaSanitizer.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/inc/meta/MetaSanitizer.php b/inc/meta/MetaSanitizer.php
index aeff742..f4f573f 100644
--- a/inc/meta/MetaSanitizer.php
+++ b/inc/meta/MetaSanitizer.php
@@ -67,6 +67,56 @@
return implode(',', $values);
}
+ protected function sanitizeTagList(array $values, array $field_config): array
+ {
+ if (!is_array($values)) {
+ return [];
+ }
+
+ if (empty(array_filter($values, fn($value) => !empty($value)))) {
+ return [];
+ }
+
+ if (!isset($field_config['fields']) || !is_array($field_config['fields'])) {
+ return [];
+ }
+
+ $sanitized = [];
+
+ foreach ($values as $row) {
+ if (!is_array($row)) {
+ continue;
+ }
+
+ // Clean up field names (remove prefixes like "fieldname:0:email")
+ $temp = [];
+ foreach ($row as $key => $value) {
+ $key_parts = explode(':', $key);
+ $clean_key = $key_parts[array_key_last($key_parts)];
+ $temp[$clean_key] = $value;
+ }
+ $row = $temp;
+
+ // Sanitize each field
+ $clean_row = [];
+ foreach ($field_config['fields'] as $key => $subfield_config) {
+ if (!array_key_exists($key, $row)) {
+ continue;
+ }
+
+ $subfield_config['name'] = $key; // For backwards compatibility
+ $clean_row[$key] = $this->sanitize($row[$key], $subfield_config);
+ }
+
+ // Only add row if it has at least one non-empty value
+ if (!empty(array_filter($clean_row))) {
+ $sanitized[] = $clean_row;
+ }
+ }
+
+ return $sanitized;
+ }
+
protected function sanitizeRepeater(array $values, array $field_config):array
{
if (!is_array($values)) {
--
Gitblit v1.10.0