Jake Vanderwerf
2026-02-14 85f32c02f80286094cc5230a30cd7ebbe77eae2d
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?php
 
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
{
    $types = array_map(function($type) {
        return BASE.$type;
    }, array_keys(JVB_CONTENT));
 
    if (is_post_type_archive($types)) {
        $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>';
            }
        }
    }
 
 
    if(!is_singular(array_map(function($item) { return BASE.$item; }, array_keys(JVB_CONTENT)))) {
        return JVB()->blocks()->render_core_cover($block);
    }
 
    $ID = get_the_ID();
    $imgID = get_post_thumbnail_id($ID);
    $img = '';
    if ($imgID && $imgID > 0) {
        $img = str_replace('<img', '<img style="object-fit:center"',jvbFormatImage($imgID, 'tiny', 'large', false)) ;
    }
 
    $post_type = jvbNoBase(get_post_type());
    $singular = JVB_CONTENT[$post_type]['singular'];
 
    $header = 'Canadian made '.$singular.'.&emsp;Made in Edmonton.';
    $title = get_the_title();
 
    $title = '<small>'.$header.'</small>'.$title;
 
 
    $date = '<small><time datetime="'.get_the_date('c').'" itemprop="datePublished">'.get_the_date().'</time></small>';
 
 
    return sprintf(
        '<section class="overlay-50 a-end end align-full cover row" style="background-color: rgba(var(--base-rgb), var(--rgb-medium));">
        %s
        <div class="content">
        <h1>%s</h1>
        %s
        </div>
        </section>',
        $img,
        $title,
        $date
    );
 
}
 
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;
}