Нужно сделать так, чтобы спидбар работал как нужно, CMS DLE speedbar
Мне нужно, чтобы в хлебных крошках последняя крошка была обернута в тег и была без возможности клика Я уже всю голову сломал над тем как это сделать, пробовал сделать как на сайте днс, но не получается. Мне это нужно для лучшей проходимости сайта, а то он уже 3 года стоит на месте
В основном вот ругается на то, что H1 отсутствует в крошке
Вот код engine.php
/*
=====================================================
speedbar creation
=====================================================
*/
if ($config['speedbar'] AND !$view_template ) {
$elements = [];
$position = 1;
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $config['http_home_url'],
'name' => $config['short_title'],
)
);
$position++;
$s_navigation = "<a href="{$config['http_home_url']}">" . $config['short_title'] . "</a>";
if( $config['start_site'] == 3 AND $dle_module == "main") $titl_e = "";
if (intval($category_id)){
if($titl_e OR (isset($_GET['cstart']) AND intval($_GET['cstart']) > 1) ) {
$last_link = true;
} else $last_link = false;
$s_navigation .= "{$config['speedbar_separator']}" . get_breadcrumbcategories ( intval($category_id), $config['speedbar_separator'], $last_link );
} elseif ($do == 'tags') {
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $config['http_home_url'].'tags/',
'name' => $lang['tag_cloud'],
)
);
$position++;
if ($config['allow_alt_url']){
$uri = $url_page . "/";
$s_navigation .= "{$config['speedbar_separator']}<a href="{$config['http_home_url']}tags/">{$lang['tag_cloud']}</a>";
} else {
$uri = $PHP_SELF."?do=tags&tag=" . $encoded_tag;
$s_navigation .= "{$config['speedbar_separator']}<a href="?do=tags">{$lang['tag_cloud']}</a>";
}
if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){
$s_navigation .= $config['speedbar_separator']."<a href="{$uri}">{$tag}</a>";
} else $s_navigation .= $config['speedbar_separator'].$tag;
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $uri,
'name' => $tag,
)
);
$position++;
} elseif ($nam_e) {
$s_navigation .= "{$config['speedbar_separator']}" . $nam_e;
if ($canonical) {
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $canonical,
'name' => $nam_e,
)
);
$position++;
}
}
if ($titl_e) {
$s_navigation .= "{$config['speedbar_separator']}" . $titl_e;
if ($canonical) {
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $canonical,
'name' => $titl_e,
)
);
$position++;
}
} else {
if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){
$page_extra = "{$config['speedbar_separator']}".$lang['news_site']." ".intval($_GET['cstart']);
if ($canonical) {
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $canonical,
'name' => $lang['news_site']." ".intval($_GET['cstart']),
)
);
$position++;
}
} else $page_extra = '';
$s_navigation .= $page_extra;
}
if ( is_array($elements) AND count($elements) > 1) {
DLESEO::AddSchema( DLESEO::Thing('BreadcrumbList', array("itemListElement" => $elements) ) );
}
$tpl->load_template ( 'speedbar.tpl' );
$tpl->set ( '{speedbar}', stripslashes ( $s_navigation ) );
$tpl->compile ( 'speedbar' );
$tpl->clear ();
}
вот код functions.php
function get_breadcrumbcategories($id, $separator="»", $last_link = true) {
global $cat_info, $config, $PHP_SELF, $elements, $position;
if( !$id ) return;
$parent_id = $cat_info[$id]['parentid'];
$list = $temp = array();
$i = 0;
if( $config['allow_alt_url'] ) $list[0]['link'] = $config['http_home_url'] . get_url( $id ) . "/";
else $list[0]['link'] = "{$PHP_SELF}?do=cat&category={$cat_info[$id]['alt_name']}";
if (!$last_link) {
$list[0]['uri'] = $list[0]['link'];
unset($list[0]['link']);
}
$list[0]['name'] = $cat_info[$id]['name'];
while ( $parent_id ) {
$i++;
if( $config['allow_alt_url'] ) $list[$i]['link'] = $config['http_home_url'] . get_url( $parent_id ) . "/";
else $list[$i]['link'] = "{$PHP_SELF}?do=cat&category={$cat_info[$parent_id]['alt_name']}";
$list[$i]['name'] = $cat_info[$parent_id]['name'];
$parent_id = $cat_info[$parent_id]['parentid'];
if( !isset($cat_info[$parent_id]['id']) OR ( isset($cat_info[$parent_id]['id']) AND !$cat_info[$parent_id]['id']) ) {
break;
}
if($parent_id) {
if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
}
}
if(count($list)) {
$list = array_reverse($list);
foreach($list as $value) {
if( isset($value['link']) AND $value['link']) {
$temp[] = "<a href="{$value['link']}">{$value['name']}</a>";;
} else {
$temp[] = $value['name'];
$value['link'] = $value['uri'];
}
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $value['link'],
'name' => $value['name'],
)
);
$position++;
}
$list = $temp;
}
return implode($separator, $list);
}
в самом DLE speedbar.tpl выглядит так
<style>
.breadcrumb-list {
list-style: none;
padding: 0;
margin: 0;
}
.breadcrumb-list_item {
display: inline;
}
.ui-link {
color: #333; /* Цвет ссылок */
text-decoration: none; /* Убираем подчеркивание */
}
.ui-link {
color: #fff; /* Цвет ссылок */
text-decoration: none; /* Убираем подчеркивание */
}
.breadcrumb-list > li + li::before {
content: "» ";
color: #666;
padding: 5px;
}
</style>
<div class="speedbar">{speedbar}</div>