$h = 1;
$i = 0;
$separator = '//';
$cat_link = $page['page'];
$translationsStatic = [
'home' => [
1 => 'home',
2 => 'startseite',
3 => 'home',
4 => 'page d\'accueil',
5 => 'homepage',
]
];
// 09-08-2021: setup default breadcrumb microdata array
$microData = [
'@context' => 'https://www.schema.org',
'@type' => 'BreadcrumbList',
'itemListElement' => [
[
'@type' => 'ListItem',
'position' => $h,
'item' => [
'@id' => BASE,
'name' => $translationsStatic['home'][$domainData['language_id']] ?? null
]
]
]
];
$h++;
// 09-08-2021: generate extra microdata structure
if ( !empty($page['category'])) {
if ( !empty($page['product']) || !empty($page['description']) ) {
$itemMicroData = [
'@type' => 'ListItem',
'position' => $h,
'item' => [
'@id' => !empty($breadcrumbSubcategoryUrl) ? rtrim(BASE, '/') . $breadcrumbSubcategoryUrl : BASE . $cat_link . DS . url_string($mysqli, 'encode', $page['category']),
'name' => $page['category'] ?? null
]
];
$h++;
array_push($microData['itemListElement'], $itemMicroData);
$itemMicroData = [
'@type' => 'ListItem',
'position' => $h,
'item' => [
'@id' => !empty($breadcrumbSubcategoryUrl) ? rtrim(BASE, '/') . $breadcrumbSubcategoryUrl : BASE . $cat_link . DS . url_string($mysqli, 'encode', $page['category']) . DS . url_string($mysqli, 'encode', $page['subcategory']),
'name' => $page['subcategory'] ?? null
]
];
$h++;
array_push($microData['itemListElement'], $itemMicroData);
}
else {
$itemMicroData = [
'@type' => 'ListItem',
'position' => $h,
'item' => [
'@id' => BASE . $cat_link . DS . url_string($mysqli, 'encode', $page['category']),
'name' => $page['category'] ?? null
]
];
$h++;
array_push($microData['itemListElement'], $itemMicroData);
}
}
if ( !empty($page['product']) || !empty($page['description']) ) {
$itemMicroData = [
'@type' => 'ListItem',
'position' => $h,
'item' => [
'@id' => BASE . $cat_link . DS . url_string($mysqli, 'encode', $page['category']) . DS . url_string($mysqli, 'encode', $page['subcategory']) . DS . url_string($mysqli, 'encode', $page['product']) . DS . url_string($mysqli, 'encode', $page['description']),
'name' => $page['product'] ?? null
]
];
$h++;
array_push($microData['itemListElement'], $itemMicroData);
}
if ($h == 0) {
if ( !empty( $page['page'] ) ) {
$itemMicroData = [
'@type' => 'ListItem',
'position' => $h,
'item' => [
'@id' => BASE . url_string($mysqli, 'encode', $page['page']),
'name' => $page['page'] ?? null
]
];
array_push($microData['itemListElement'], $itemMicroData);
}
}
// 2021-07-21: convert microdata to json string
$microData = convertJsonArray($microData);
$microData = json_encode($microData);
print '';
unset($microData);
$h = 0; // reset $h value
?>