From 85f32c02f80286094cc5230a30cd7ebbe77eae2d Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sat, 14 Feb 2026 19:15:40 +0000
Subject: [PATCH] =added functions for outputting custom meta fields for our post types

---
 ajakevan.php |  115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 115 insertions(+), 0 deletions(-)

diff --git a/ajakevan.php b/ajakevan.php
index 670e2e2..79eb523 100644
--- a/ajakevan.php
+++ b/ajakevan.php
@@ -44,6 +44,7 @@
 }
 
 use JVBase\managers\CacheManager;
+use JVBase\meta\Meta;
 
 add_filter('jvb_base', function () {
     return 'ajv_';
@@ -267,4 +268,118 @@
         $base = call_user_func($function, $block, $content);
     }
     return $base.JVB()->blocks()->render_core_post_content($block, $content);
+}
+
+add_filter('the_seo_framework_meta_render_data', 'ajvb_no_next_archive', 10, 1);
+function ajvb_no_next_archive($tags) {
+    if (is_tax() || is_post_type_archive()) {
+        if (array_key_exists('next', $tags)) {
+            unset($tags['next']);
+        }
+    }
+    return $tags; // Keep the link for other pages
+}
+
+
+
+
+add_filter('jvbSummaryDetailsOutput', 'ajvb_summary_info',10, 1);
+function ajvb_summary_info(string $return):string
+{
+    if (!is_singular(array_map(function($item) { return BASE.$item;}, array_keys(JVB_CONTENT)))) {
+        return $return;
+    }
+
+    $return = ajvb_term_list();
+    $return .= ajvb_meta_output();
+
+    return $return;
+}
+
+function ajvb_term_list():string
+{
+    if (!JVB_TAXONOMY){
+        return '';
+    }
+    $ID = get_the_ID();
+    $type = jvbNoBase(get_post_type($ID));
+    $taxonomies = array_filter(JVB_TAXONOMY, function($config) use ($type){
+        return in_array($type, $config['for_content']);
+    });
+
+    $lists = [];
+    foreach ($taxonomies as $taxonomy => $config) {
+        $terms = wp_get_object_terms($ID, $taxonomy);
+        if ($terms && !is_wp_error($terms)) {
+            $list = sprintf(
+                '<li>%s<span>%s</span><ul class="term-list">',
+                jvbIcon($config['icon']),
+                $config['plural']
+            );
+            foreach ($terms as $term) {
+                $list .= sprintf(
+                    '<li><a href="%s" rel="tag">%s</a></li>',
+                    get_term_link($term),
+                    $term->name
+                );
+            }
+            $list .='</ul></li>';
+            $lists[] = $list;
+        }
+    }
+    $out ='';
+    if (!empty($lists)){
+        $out = sprintf(
+            '<ul class="ajv-term-list">%s</ul>',
+            implode('',$lists)
+        );
+    }
+
+    return $out;
+
+}
+
+function ajvb_meta_output():string
+{
+    if (!class_exists('JVBase\meta\Meta')) {
+        return '';
+    }
+    $ID = get_the_ID();
+    $type = jvbNoBase(get_post_type($ID));
+
+    return apply_filters('ajvb_summary_meta_output', '', $type);
+}
+
+function ajvb_format_needs(array $needs):string
+{
+    $theNeeds = '';
+    foreach ($needs as $need) {
+        $theNeeds .= sprintf(
+            '<li><h3>%s</h3>%s<div class="info">%s</div></li>',
+            $need['need'],
+            $need['image'] !== '' ? jvbFormatImage($need['image']) : '',
+            $need['fulfilled']
+        );
+    }
+    return sprintf(
+        '<section id="needs"><h2>What we needed:</h2><ul class="needs-wants">%s</ul></section>',
+        $theNeeds
+    );
+}
+
+function ajvb_format_wants(array $wants):string
+{
+    $theWants = '';
+    foreach ($wants as $want) {
+        $theWants .= sprintf(
+            '<li><h3>%s</h3>%s<div class="info">%s</div></li>',
+            $want['need'],
+            $want['image'] !== '' ? jvbFormatImage($want['image']) : '',
+            $want['fulfilled']
+        );
+    }
+    return sprintf(
+        '<section id="wants"><h2>What we wanted:</h2><ul class="needs-wants">%s</ul></section>',
+        $theWants
+    );
 }
\ No newline at end of file

--
Gitblit v1.10.0