';
$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(
'',
$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(
'',
$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 .= '';
}
$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
);
}