Jake Vanderwerf
2026-01-11 474109a5df0a06f5343ab184838fe2d80e3872a8
inc/meta/MetaForm.php
@@ -1100,71 +1100,72 @@
      $dataID = ($id) ? ['id' => $id] : '';
      ?>
      <div class="item upload"<?= ($id) ? ' data-id="'.$id.'"' : '' ?>>
            <div class="preview">
               <?php jvbRenderProgressBar('',true) ?>
               <input type="checkbox" class="upload-select" name="select-item" id="select-item<?=$addID?>">
               <label for="select-item<?=$addID?>" aria-label="Select image">
                  <?= ($attachment) ?: '<img>
                  <video></video>
                  <span></span>' ?>
               </label>
               <div class="item-actions row btw">
                  <div class="radio-button">
                     <input type="radio" class="featured btn" name="featured" id="featured" hidden>
                     <label for="featured">
                        <?=jvbIcon('star')?>
                        <?=jvbIcon('star', ['style' => 'fill'])?>
                        <span class="screen-reader-text">Set as featured image</span>
                     </label>
                  </div>
                  <button type="button" data-action="delete-upload" title="Remove from Group">
                     <?=jvbIcon('trash')?>
                  </button>
         <div class="preview">
            <?php jvbRenderProgressBar('',true) ?>
            <input type="checkbox" class="upload-select" name="select-item" id="select-item<?=$addID?>">
            <label for="select-item<?=$addID?>" aria-label="Select image">
               <?= ($attachment) ?: '<img>
                <video></video>
                <span></span>' ?>
            </label>
            <div class="item-actions row btw">
               <div class="radio-button">
                  <input type="radio" class="featured btn" name="featured" id="featured" hidden>
                  <label for="featured">
                     <?=jvbIcon('star')?>
                     <?=jvbIcon('star', ['style' => 'fill'])?>
                     <span class="screen-reader-text">Set as featured image</span>
                  </label>
               </div>
               <button type="button" data-action="delete-upload" title="Remove from Group">
                  <?=jvbIcon('trash')?>
               </button>
            </div>
            <details>
               <summary class="row btw"><?=jvbIcon('pencil-simple')?><span>Edit Info</span></summary>
         </div>
         <details>
            <summary class="row btw"><?=jvbIcon('pencil-simple')?><span>Edit Info</span></summary>
      <?php
            <?php
            $fields = array_key_exists('fields', $config) ? $config['fields'] : [];
      $fields = array_key_exists('fields', $config) ? $config['fields'] : [];
      $fields = array_merge([
         'upload_data'  => [
            'type'   => 'group',
            'wrap'   => 'details',
            'label'  => 'Image Info',
            'hint'   => 'These will be automatically generated if left blank.',
            'fields' => [
               'image-title'.$addID => [
                  'type'   => 'text',
                  'label'  => 'Image Title',
                  'value'  => $title,
                  'data'   => $dataID
               ],
               'image-alt-text'.$addID => [
                  'type'   => 'text',
                  'label'  => 'Alt Text',
                  'value'  => $alt,
                  'hint'   => 'Alt text helps the visually impaired, as well as some benefits for SEO.',
                  'data'   => $dataID
               ],
               'image-caption'.$addID => [
                  'type'   => 'textarea',
                  'value'  => $caption,
                  'label'  => 'Image Caption',
                  'data'   => $dataID
               ]
            ]
         ]
      ], $fields);
            // Only add image_data if not already provided
            if (!array_key_exists('image_data', $fields)) {
               $fields['image_data'] = [
                  'type'   => 'group',
                  'wrap'   => 'details',
                  'label'  => 'Image Info',
                  'hint'   => 'These will be automatically generated if left blank.',
                  'fields' => [
                     'image-title'.$addID => [
                        'type'  => 'text',
                        'label' => 'Image Title',
                        'value' => $title,
                        'data'  => $dataID
                     ],
                     'image-alt-text'.$addID => [
                        'type'  => 'text',
                        'label' => 'Alt Text',
                        'value' => $alt,
                        'hint'  => 'Alt text helps the visually impaired, as well as some benefits for SEO.',
                        'data'  => $dataID
                     ],
                     'image-caption'.$addID => [
                        'type'  => 'textarea',
                        'value' => $caption,
                        'label' => 'Image Caption',
                        'data'  => $dataID
                     ]
                  ]
               ];
            }
      $meta = new MetaManager($id);
      foreach ($fields as $field => $config) {
         $meta->render('form', $field, $config);
      }
      ?>
            </details>
            $meta = new MetaManager($id);
            foreach ($fields as $field => $config) {
               $meta->render('form', $field, $config);
            }
            ?>
         </details>
      </div>
      <?php
   }