$_sSchemaHost = 'https://specializedlightingconcepts.co.nz';
$_arrSchemaPage = \Components\Website\Pages::current();
$_sSchemaPageId = $_arrSchemaPage ? $_arrSchemaPage['page_id'] : '/';
// Organization + LocalBusiness + WebSite (always)
echo json_encode(array(
'@context' => 'https://schema.org',
'@graph' => array(
array(
'@type' => 'Organization',
'@id' => $_sSchemaHost . '/#organization',
'name' => 'Specialized Lighting Concepts',
'url' => $_sSchemaHost,
),
array(
'@type' => 'LocalBusiness',
'@id' => $_sSchemaHost . '/#localbusiness',
'name' => 'Specialized Lighting Concepts',
'url' => $_sSchemaHost,
'address' => array(
'@type' => 'PostalAddress',
'addressRegion' => 'Auckland',
'addressCountry' => 'NZ',
),
),
array(
'@type' => 'WebSite',
'@id' => $_sSchemaHost . '/#website',
'url' => $_sSchemaHost,
'name' => 'Specialized Lighting Concepts',
'publisher' => array('@id' => $_sSchemaHost . '/#organization'),
),
),
));
echo "\n\n";
// BreadcrumbList (dynamic trail)
$_arrCrumbTrail = array();
$_sCrumbId = $_sSchemaPageId;
$_iCrumbDepth = 0;
while ($_sCrumbId && $_iCrumbDepth < 10)
{
$_arrCrumbRow = \Components\Website\Pages::get($_sCrumbId);
if (!$_arrCrumbRow) { break; }
$_arrCrumbTrail[] = array(
'name' => ($_arrCrumbRow['page_search_title'] !== '' ? $_arrCrumbRow['page_search_title'] : $_arrCrumbRow['page_title']),
'url' => ($_sCrumbId === '/' ? $_sSchemaHost . '/' : $_sSchemaHost . $_sCrumbId),
);
$_sCrumbId = $_arrCrumbRow['page_parent_id'];
$_iCrumbDepth++;
}
$_arrCrumbTrail = array_reverse($_arrCrumbTrail);
if (count($_arrCrumbTrail) > 0 && $_arrCrumbTrail[0]['url'] !== $_sSchemaHost . '/')
{
array_unshift($_arrCrumbTrail, array('name' => 'Home', 'url' => $_sSchemaHost . '/'));
}
if (count($_arrCrumbTrail) > 1)
{
$_arrCrumbList = array('@type' => 'BreadcrumbList', 'itemListElement' => array());
foreach ($_arrCrumbTrail as $_iCrumbPos => $_arrCrumbItem)
{
$_arrCrumbList['itemListElement'][] = array(
'@type' => 'ListItem',
'position' => $_iCrumbPos + 1,
'name' => $_arrCrumbItem['name'],
'item' => $_arrCrumbItem['url'],
);
}
echo 'script type="application/ld+json">' . json_encode($_arrCrumbList) . "\n";
}
// BlogPosting (blog detail pages only)
if (strpos($_sSchemaPageId, '/blog/') === 0 && $_sSchemaPageId !== '/blog/')
{
$_arrBlogRow = \Components\Website\Pages::get($_sSchemaPageId);
if ($_arrBlogRow)
{
echo 'script type="application/ld+json">' . json_encode(array(
'@context' => 'https://schema.org',
'@type' => 'BlogPosting',
'headline' => ($_arrBlogRow['page_search_title'] !== '' ? $_arrBlogRow['page_search_title'] : $_arrBlogRow['page_title']),
'description' => $_arrBlogRow['page_search_description'],
'datePublished' => $_arrBlogRow['page_created'],
'dateModified' => $_arrBlogRow['page_last_modified'],
'mainEntityOfPage' => $_sSchemaHost . $_sSchemaPageId,
'publisher' => array('@id' => $_sSchemaHost . '/#organization'),
)) . "\n";
}
}