From 80d8479fd04c9a06a98f7cf4aedaa367984ac038 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 08 Feb 2026 22:15:13 +0000
Subject: [PATCH] =Form.php upload render fix

---
 inc/meta/Form.php |   32 +++++++++++++++++++-------------
 1 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/inc/meta/Form.php b/inc/meta/Form.php
index e2b4a45..f054157 100644
--- a/inc/meta/Form.php
+++ b/inc/meta/Form.php
@@ -103,13 +103,13 @@
 			$datasets
 		);
 
+		$output .= static::buildCharacterLimit($config);
 		$output .= static::buildLabel($name, $config);
 		if (!array_key_exists('skipInput', $config)) {
 			$output .= static::buildInput($content);
 		}
 
 		$output .= static::buildHint($config);
-		$output .= static::buildCharacterLimit($config);
 		$output .= static::buildDescription($name, $config);
 
 		$output .= '</div>';
@@ -180,16 +180,20 @@
 				);
 			}
 
-			protected static function buildCharacterLimit(array $config): string
-			{
-				if (empty($config['data']['limit'])) {
-					return '';
-				}
-				return sprintf(
-					'<span class="char-limit"><span class="current">0</span> / <span class="limit">%s</span></span>',
-					esc_html($config['data']['limit'])
-				);
-			}
+	protected static function buildCharacterLimit(array $config): string
+	{
+		$type = $config['type'] ?? 'text';
+		if (in_array($type, ['upload', 'gallery', 'selector'])) {
+			return '';
+		}
+		if (empty($config['maxlength'])) {
+			return '';
+		}
+		return sprintf(
+			'<span class="char-limit"><span class="current">0</span> / <span class="limit">%s</span></span>',
+			esc_html($config['maxlength'])
+		);
+	}
 
 		protected static function buildLabel(string $name, array $config):string
 		{
@@ -663,7 +667,7 @@
 				?? str_replace('_', ' ',$config['content']);
 		}
 		if ($config['limit'] > 0) {
-			$config['data']['limit'] = $config['limit'];
+			$config['data']['max-files'] = $config['limit'];
 		}
 
 		$attachmentIds = static::parseIds($value);
@@ -709,7 +713,8 @@
 
 		$input .= '<div class="file-error"></div>';
 		$input .= jvbRenderProgressBar('', false, true, true);
-		$input .= '</div>';
+
+		$input .= '</div>'; // closes .file-upload-wrapper
 
 		if ($config['destination'] === 'post_group') {
 			$input .= static::renderUploadGroupAreaStart($config, $plural, $singular);
@@ -720,6 +725,7 @@
 			$input .= static::renderUploadGroupAreaEnd($config, $plural, $singular);
 		}
 
+		$input .= '</div>'; // closes .file-upload-container
 		unset($config['description']);
 		unset($config['label']);
 		return static::fieldWrap($name, $input, $config);

--
Gitblit v1.10.0