Jake Vanderwerf
2026-05-31 7333b141895467acaebd297001e6e0b3503226c5
taxonomies/project.php
@@ -1,5 +1,6 @@
<?php
// /taxonomies/progress.php
use JVBase\base\SchemaHelper;
use JVBase\managers\Cache;
use JVBase\meta\Meta;
use JVBase\registrar\Registrar;
@@ -186,9 +187,9 @@
                    'type'  => 'select',
                    'label' => 'Type',
                    'options'   => [
                        'JVBase\managers\SEO\render\Thing\Person'   => 'Person',
                        'JVBase\managers\SEO\render\Thing\Organization\LocalBusiness\LocalBusiness' => 'Local Business',
                        'JVBase\managers\SEO\render\Thing\Organization\Organization' => 'Organization'
                        'person'   => 'Person',
                        'business' => 'Local Business',
                        'organization' => 'Organization'
                    ]
                ],
                'name'  => [
@@ -375,7 +376,6 @@
        'about'             => [
            'type'              => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork',
            'name'              => '{{name}}',
            'creator'           => '{{CREATOR}}',
            'sourceOrganization'=> '{{forType}}',
            'abstract'          => '{{summary}}'
        ],
@@ -434,7 +434,7 @@
    }
    return '<p>Or see <a href="'.get_home_url(null,'/projects/').'">all projects</a>.</p>';
    return '<p>Or see <a href="'.get_home_url(null,'/lists/projects/').'">all projects</a>.</p>';
}
add_filter('jvbBeforeSummary', 'ajv_project_before_summary', 10, 2);
@@ -786,7 +786,7 @@
            if (!empty($meta->get($term))) {
                $registrar = Registrar::getInstance($term);
                $titleExtra .= '<li>'.jvbIcon($registrar->getIcon()).jvbGetTermLink($meta->get($term), BASE.$term).'</li>';
                $titleExtra .= '<li>'.jvbIcon($registrar->getIcon()).jvbGetTermLink((int)$meta->get($term), BASE.$term).'</li>';
            }
        }
        if (!empty($titleExtra)) {
@@ -840,3 +840,26 @@
        jvbIcon('arrow-circle-right')
    );
}
function ajv_resolve_forType(string $variable, Meta $meta):string|array|\JVBase\managers\SEO\render\Thing\Thing
{
    $result = $meta->get($variable);
    $out = [];
    if (empty($result)) {
        return '';
    }
    foreach ($result as $v) {
        $type = match ($v['type']) {
            'person'    => 'JVBase\managers\SEO\render\Thing\Person',
            'business'  => 'JVBase\managers\SEO\render\Thing\Organization\LocalBusiness\LocalBusiness',
            'organization'=> 'JVBase\managers\SEO\render\Thing\Organization\Organization',
            default => false
        };
        if ($type) {
            $v['type'] = $type;
            $out[] = SchemaHelper::classFromConfig($v);
        }
    }
    return count($out) === 1 ? $out[0] : $out;
}