Jake Vanderwerf
2026-01-19 0113d2e9c9ff34a6ffb10707cc76d34b67a0c367
inc/helpers/renderFields.php
@@ -4,6 +4,7 @@
   exit;
}
use JVBase\forms\TaxonomySelector;
use JVBase\managers\CacheManager;
use JVBase\meta\MetaForm;
use JVBase\meta\MetaManager;
@@ -316,17 +317,34 @@
    $out = ($label === '') ? '' : '<h2 class="inline">'.$label.'</h2>';
    $out .= '<ul class="term-list '.jvbNoBase($terms[array_key_first($terms)]->taxonomy).'">';
    foreach ($terms as $term) {
        $out .= '<li>
            <a href="'.get_term_link($term->term_id, $term->taxonomy).'" title="'.$term->name.'">'.
                $term->name.
            '</a>
        </li>';
        $out .= '<li>'.jvbGetTermLink($term).'</li>';
    }
    $out .= '</ul>';
    return $out;
}
function jvbGetTermLink(int|WP_Term $term, string $taxonomy = ''):string
{
   if (is_int($term)){
      $term = get_term($term, jvbCheckBase($taxonomy));
      if (is_wp_error($term)) {
         return '';
      }
   }
   $cache = CacheManager::for($term->taxonomy);
   $key = $term->term_id.'-link';
   return $cache->remember(
      $key,
      function() use ($term) {
         return '<a href="'.get_term_link($term->term_id, $term->taxonomy).'" title="'.$term->name.'">'.
         $term->name.
         '</a>';
      }
   );
}
add_action('wp_footer', 'jvbOutputImageTemplates');
function jvbOutputImageTemplates() {
@@ -367,15 +385,15 @@
            <div class="group-header">
               <div class="selected">
                  <div class="field">
                     <input type="checkbox" id="select-all-group" name="select-all-group">
                     <label for="select-all-group">
                     <input type="checkbox" id="select-all" name="select-all" data-selects="item-grid" data-select-all>
                     <label for="select-all">
                        Select All In Group
                     </label>
                  </div>
                  <div class="info" hidden>
                  </div>
               </div>
               <div class="group-actions">
               <div class="selection-actions">
                  <button type="button" data-action="add-to-group" title="Add selected uploads to this group">
                     <?= jvbIcon('plus-square') ?>
                     Add Here
@@ -393,8 +411,8 @@
               <div class="fields"></div>
            </details>
            <div class="group-content col">
               <p class="hint count"></p>
               <div class="item-grid group"></div>
               <p class="hint group-count"></p>
            </div>
         </div>
@@ -460,10 +478,10 @@
            <div class="wrap">
               <div class="restore-message">
                  <h4>Looks like we left things hanging</h4>
                  <p class="restore-details"></p>
                  <p class="details"></p>
                  <p class="hint">If you'd rather start over, you can clear this information.</p>
               </div>
               <div class="restore-actions">
               <div class="selection-actions">
                  <div class="selected">
                     <div class="field">
                        <input type="checkbox" id="select-all-restore" name="select-all-restore">
@@ -493,10 +511,10 @@
         </dialog>
      </template>
      <template class="restoreField">
         <div class="restore-field">
            <h3></h3>
         <details class="restore-field">
            <summary><h3><a></a></h3></summary>
            <div class="item-grid restore"></div>
         </div>
         </details>
      </template>
      <template class="startOverConfirmation">
@@ -530,7 +548,7 @@
      <?php
   }
   if (wp_script_is('jvb-selector')) {
      \JVBase\forms\TaxonomySelector::class::outputSelectorModal();
      TaxonomySelector::class::outputSelectorModal();
   }
}
@@ -540,39 +558,38 @@
   $dataID = ($ID) ? ['image-id' => $ID] : false;
   $addID = ($ID) ? '-'.$ID : '';
   $defaultFields = [
      'image-title'.$addID => [
         'type'   => 'text',
         'label'  => 'Image Title',
         'value'  => $title,
         'data'   => $dataID
         '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
         '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
         'type'  => 'textarea',
         'value' => $caption,
         'label' => 'Image Caption',
         'data'  => $dataID
      ]
   ];
   $fields = array_merge($defaultFields, $fields);
   $config = [
      'type'   => 'group',
      'wrap'   => 'details',
      'label'  => 'Image Info',
      'hint'   => 'These will be automatically generated if left blank.',
      'fields' => $fields
      'type'   => 'group',
      'wrap'   => 'details',
      'label'  => 'Image Info',
      'hint'   => 'These will be automatically generated if left blank.',
      'fields' => $fields
   ];
   return $form->render('image_data',null, $config,false, true);
   return $form->render('image_data', null, $config, false, true);
}