Jake Vanderwerf
2026-02-10 1e981179fc999d873000683b869aef01284827af
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
use JVBase\utility\Image;
 
function ajv_render_core_site_logo(array $block, string $content):string
{
    $open = $close = '';
 
    if (!is_home() && !is_front_page()) {
        $open = '<a href="'.get_home_url().'" rel="home">';
        $close = '</a>';
    }
    $icons = (array_key_exists('className', $block['attrs']) && str_contains($block['attrs']['className'], 'is-text')) ? jvbIcon('logo-jakevan') : jvbIcon('logo').jvbIcon('jakevan');
    return $open.$icons.$close;
}
 
function ajv_render_core_cover(array $block, string $content):string
{
    $types = array_map(function($type) {
        return BASE.$type;
    }, array_keys(JVB_CONTENT));
    if (!is_post_type_archive($types)) {
        return JVB()->blocks()->render_core_cover($block);
    }
    $obj = get_queried_object();
    foreach ($types as $type) {
        if ($type === $obj->name) {
            $type = jvbNoBase($type);
            $function = 'ajv_render_'.$type.'_cover';
            return '<section class="align-full cover alt '.$type.'">'.call_user_func($function).'</section>';
        }
    }
    return JVB()->blocks()->render_core_cover($block);
}
 
function ajv_get_limited_posts(string $type, int $limit):array {
    $posts = new WP_Query([
        'post_type'         => jvbCheckBase($type),
        'posts_per_page'    => $limit,
        'post_status'       => 'publish',
        'fields'            => 'ids',
    ]);
    return array_map(function($item) {
        return jvbFormatImage(get_post_thumbnail_id($item), 'tiny', 'large', false);
    },$posts->posts);
}
 
function ajv_render_art_cover():string
{
    $get = 4;
    $images = ajv_get_limited_posts('art', $get);
    $out = '';
 
    $halftone = '<div class="halftone"></div>';
    for ($i=0; $i<$get; $i++) {
        $img = (array_key_exists($i, $images)) ? $images[$i] : '';
//        if ($i%4===2) {
//            $before = $halftone;
//            $after = '';
//        } elseif($i%4 === 0) {
//            $before = '';
//            $after = $halftone;
//        }
        $img = ($i%2===0) ? '<div class="img halftone">'.$img.'</div>' : $img;
        $class = ($i%2===0) ? ' class="has-img"' :'';
        $out .= '<div'.$class.'>'.$img. '</div>';
    }
 
    return $out;
}
function ajv_render_strategy_cover():string
{
    $get = 7;
    $images = ajv_get_limited_posts('strategy', $get);
    $out = '';
    for ($i=0; $i<$get; $i++) {
        $img = (array_key_exists($i, $images)) ? $images[$i] : '';
        $out .= '<div>'.$img. '</div>';
    }
    return $out;
}
function ajv_render_development_cover():string
{
    $get = 2;
    $images = ajv_get_limited_posts('development', $get);
    $out = '';
    for ($i=0; $i<$get; $i++) {
        $img = (array_key_exists($i, $images)) ? $images[$i] : '';
        $out .= '<div><div>'.$img. '</div></div>';
    }
    $get = 3;
    for ($i=0; $i<$get; $i++) {
        $out .= '<div class="radial"></div>';
    }
    return $out;
}
function ajv_render_design_cover():string
{
    $get = 4;
    $images = ajv_get_limited_posts('design', $get);
    $out = '';
    for ($i=0; $i<$get; $i++) {
       $out.= '<div><div>';
        $out .= (array_key_exists($i, $images)) ? $images[$i] : '';
        $out .= '</div></div>';
    }
    return $out;
}
function ajv_render_support_cover():string
{
    return '';
}
function ajv_render_writing_cover():string
{
    $get = 7;
    $images = ajv_get_limited_posts('writing', $get);
    $out = '';
    for ($i=0; $i<$get; $i++) {
        $img = (array_key_exists($i, $images)) ? $images[$i] : '';
        $out .= '<div>'.$img. '</div>';
    }
    return $out;
}