public function crumbs($separator = '»', $startText = false, $onSchema = false)
{
$crumbs = $this->BcHtml->getStripCrumbs();
if (empty($crumbs)) {
return;
}
if ($startText) {
$homeUrl = '/';
if (!empty($this->request->params['Site']['alias'])) {
$homeUrl = '/' . $this->request->params['Site']['alias'] . '/';
} elseif (!empty($this->request->params['Site']['name'])) {
$homeUrl = '/' . $this->request->params['Site']['name'] . '/';
}
array_unshift($crumbs, [0 => $startText, 1 => $homeUrl]);
}
$out = array();
if (!$onSchema) {
foreach ($crumbs as $crumb) {
if (!empty($crumb[1])) {
$out[] = $this->getLink($crumb[0], $crumb[1], @$crumb[2]);
} else {
$out[] = $crumb[0];
}
}
$out = implode($separator, $out);
} else {
$counter = 1;
foreach ($crumbs as $crumb) {
$options = ['itemprop' => 'item'];
if (!empty($crumb[2])) {
$options = array_merge($options, $crumb[2]);
}
if (!empty($crumb[1])) {
$crumb = $this->getLink('<span itemprop="name">' . $crumb[0] . '</span>', $crumb[1], $options) . '<span class="separator">' . $separator . '</span>';
} else {
$crumb = '<span itemprop="name">' . $crumb[0] . '</span>';
}
$out[] = <<<EOD
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
\t{$crumb}
\t<meta itemprop="position" content="{$counter}" />
</li>
EOD;
$counter++;
}
$out = implode("\n", $out);
}
echo $out;
}