'; $close = ''; } $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_prerender_core_cover(array $block, ?string $content, ?WP_Block $parent):?string { $types = array_map(function($type) { return jvbCheckBase($type); }, Registrar::getRegistered('post')); $taxTypes = array_map(function($type) { return jvbCheckBase($type); }, Registrar::getRegistered('term')); $type = null; if (is_post_type_archive($types)) { $obj = get_queried_object(); $type = jvbNoBase($obj->name); } else if (is_tax($taxTypes)) { $obj = get_queried_object(); $type = jvbNoBase($obj->taxonomy); } if (is_singular($types)) { if (!$type) { $type = jvbNoBase(get_queried_object()->post_type); } $registrar = Registrar::getInstance($type); if (!$registrar) { return JVB()->blocks()->prerender_core_cover($block, null, null); } $ID = get_the_ID(); $imgID = get_post_thumbnail_id($ID); $img = ''; if ($imgID && $imgID > 0) { $img = str_replace('getSingular(); $header = match($type) { 'art' => 'Canadian made Art.
Made in Edmonton.', 'design' => 'Canadian Design in Edmonton.', 'development'=> 'Canadian Development in Edmonton.', 'strategy' => 'Canadian Brand Strategy based in Edmonton, Alberta.', 'writing' => 'Canadian Content Writing.
From Edmonton, Alberta.', 'project' => 'Canadian-based Projects.' }; $title = get_the_title(); $title = ''.$header.''.$title; $date = ''; return sprintf( '
%s

%s

%s
', $img, $title, $date ); } if (!$type) { return JVB()->blocks()->prerender_core_cover($block, null, null); } $cache = Cache::for('jakevanIcons'); $icon = $cache->remember( $type, function () use ($type) { return file_get_contents(AJV_DIR.'/assets/icons/jakevan-does-'.$type.'.svg'); } ); return sprintf( '
%s
', $type, $icon ); } 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_get_limited_post_images(array $args, bool $includeImages = false, int $limit = 3):array { $posts = new WP_Query([ 'posts_per_page' => $limit, 'post_status' => 'publish', 'fields' => 'ids', ... $args ]); return array_map(function($item) use ($includeImages) { $aOpen = $includeImages ? sprintf('', get_the_permalink($item), jvbNoBase(get_post_type($item))) : ''; $aClose = $includeImages ? '' : ''; return $aOpen.jvbFormatImage(get_post_thumbnail_id($item), 'tiny', 'large', false).$aClose; },$posts->posts); } function ajv_render_art_cover():string { $get = 4; $images = ajv_get_limited_posts('art', $get); $out = ''; $halftone = '
'; 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) ? '
'.$img.'
' : $img; $class = ($i%2===0) ? ' class="has-img"' :''; $out .= ''.$img. ''; } 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 .= '
'.$img. '
'; } 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 .= '
'.$img. '
'; } $get = 3; for ($i=0; $i<$get; $i++) { $out .= '
'; } 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.= '
'; $out .= (array_key_exists($i, $images)) ? $images[$i] : ''; $out .= '
'; } 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 .= '
'.$img. '
'; } return $out; } function ajv_prerender_core_post_title(array $block, ?string $content):string { if (!ajv_is_singular()){ return JVB()->blocks()->prerender_core_post_title($block, $content, null); } $ID = get_the_ID(); $city = get_the_terms($ID, BASE.'city'); if ($city && !is_wp_error($city)) { $city = $city[0]->name; } else { $city ='Edmonton'; } $registrar = Registrar::getInstance(get_post_type($ID)); if (!$registrar) { return JVB()->blocks()->prerender_core_post_title($block, $content, null); } $form = get_the_terms($ID, BASE.'form'); if ($form && !is_wp_error($form)){ $form = $form[0]->name.' '; } else { $form = ''; } $title = get_the_title($ID); return sprintf( '

Canadian made %s%s. Made in %s.%s

', $form, $registrar->getPlural(), $city, $title ); }