| | |
| | | exit; |
| | | } |
| | | |
| | | use JVBase\forms\TaxonomySelector; |
| | | use JVBase\managers\CacheManager; |
| | | use JVBase\meta\MetaForm; |
| | | use JVBase\meta\MetaManager; |
| | |
| | | string $labelAfter, |
| | | string $on, |
| | | string $off, |
| | | bool $hidden = false |
| | | bool $hidden = false, |
| | | array $data = [] |
| | | ):string { |
| | | $hidden = ($hidden) ? ' hidden' : ''; |
| | | $dataset = (!empty($data)) ? implode('', array_map(function ($key, $value) { |
| | | return ' data-'.$key.'="'.$value.'"'; |
| | | }, array_keys($data), array_values($data))) : ''; |
| | | return sprintf( |
| | | '<div class="toggle-text" %s> |
| | | <input value="all" name="%s" id="%s" type="checkbox"> |
| | | '<div class="toggle-text"%s> |
| | | <input value="all" name="%s" id="%s" type="checkbox"%s> |
| | | <label for="%s" class="row"> |
| | | %s |
| | | <span class="text row"> |
| | |
| | | $hidden, |
| | | $name, |
| | | $name, |
| | | $dataset, |
| | | $name, |
| | | $labelBefore, |
| | | $off, |
| | |
| | | */ |
| | | function jvbRenderLinks(int $ID, MetaManager|null $meta = null):string |
| | | { |
| | | $cache = CacheManager::for('bio-'.$ID, WEEK_IN_SECONDS); |
| | | $key = 'links'; |
| | | $cached = $cache->get($key); |
| | | $cache = CacheManager::for('user_links', WEEK_IN_SECONDS)->connectTo('post')->connectTo('taxonomy'); |
| | | $cached = $cache->get($ID); |
| | | if ($cached) { |
| | | return $cached; |
| | | } |
| | |
| | | } |
| | | $out .= '</ul>'; |
| | | } |
| | | $cache->set($key, $out); |
| | | $cache->set($ID, $out); |
| | | return $out; |
| | | } |
| | | |
| | |
| | | */ |
| | | function jvbRenderContactInfo(int $ID, MetaManager|null $meta = null):string |
| | | { |
| | | $cache = CacheManager::for('bio-'.$ID, WEEK_IN_SECONDS); |
| | | $key = 'contact'; |
| | | $cached = $cache->get($key); |
| | | $cache = CacheManager::for('contact', WEEK_IN_SECONDS)->connectTo('post')->connectTo('taxonomy'); |
| | | |
| | | $cached = $cache->get($ID); |
| | | if($cached){ |
| | | return $cached; |
| | | } |
| | |
| | | $out .= '</ul>'; |
| | | } |
| | | |
| | | $cache->set($key, $out); |
| | | $cache->set($ID, $out); |
| | | |
| | | return $out; |
| | | } |
| | |
| | | $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() { |
| | |
| | | </div> |
| | | <div class="summary"> |
| | | <div class="result"> |
| | | <h4></h4> |
| | | <h3></h3> |
| | | <p></p> |
| | | </div> |
| | | </div> |
| | |
| | | <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"> |
| | | Select All |
| | | <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 |
| | |
| | | <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> |
| | | |
| | |
| | | <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"> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="m-actions row nowrap"> |
| | | <button type="button" data-action="restore-all"> |
| | | <?= jvbIcon('infinity') ?> |
| | | Restore All |
| | | </button> |
| | | <button type="button" data-action="restore"> |
| | | <?= jvbIcon('arrow-counter-clockwise') ?> |
| | | Restore Selected |
| | |
| | | </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"> |
| | |
| | | <?php |
| | | } |
| | | if (wp_script_is('jvb-selector')) { |
| | | \JVBase\forms\TaxonomySelector::class::outputSelectorModal(); |
| | | TaxonomySelector::class::outputSelectorModal(); |
| | | } |
| | | } |
| | | |
| | |
| | | $dataID = ($ID) ? ['image-id' => $ID] : false; |
| | | $addID = ($ID) ? '-'.$ID : ''; |
| | | |
| | | $fields = array_merge([ |
| | | '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 |
| | | ] |
| | | ] |
| | | |
| | | $defaultFields = [ |
| | | '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); |
| | | ]; |
| | | $fields = array_merge($defaultFields, $fields); |
| | | |
| | | $config = [ |
| | | 'type' => 'group', |
| | | 'wrap' => 'details', |
| | | 'label' => 'Image Info', |
| | | 'hint' => 'These will be automatically generated if left blank.', |
| | | 'fields' => $fields |
| | | ]; |
| | | |
| | | return $form->render('image_data',null, $fields,false, true); |
| | | return $form->render('image_data',null, $config,false, true); |
| | | } |
| | | |
| | | |
| | |
| | | return ''; |
| | | } |
| | | |
| | | $cache = CacheManager::for('locations'); |
| | | $cache = CacheManager::for('locations')->connectTo('taxonomy'); |
| | | $key = $cache->generateKey($location); |
| | | |
| | | $cached = false; |