Редактор темы

Rdfa breadcrumb для dle 10.2 - 11.x

  • Автор темы Автор темы PunPun
  • Дата начала Дата начала

PunPun

VIP Кинотрафик v2
Регистрация
11 Июн 2015
Сообщения
7.450
Рейтинг реакций
3.195
Баллы
113
1/3
Автор темы
breadcrumb_dle.jpg
Обновляем хлебные крошки для DLE 10.2 - 11.x по примеру от Google.

Установка :

Открываем /engine/engine.php, находим :
PHP:
if ($config['speedbar'] AND !$view_template ) {
   
    $s_navigation = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"{$config['http_home_url']}\" itemprop=\"url\"><span itemprop=\"title\">" . $config['short_title'] . "</span></a></span>";

    if( $config['start_site'] == 3 AND $_SERVER['QUERY_STRING'] == "" AND !$_POST['do']) $titl_e = "";

    if (intval($category_id)) $s_navigation .= " {$config['speedbar_separator']} " . get_breadcrumbcategories ( intval($category_id), $config['speedbar_separator'] );
    elseif ($do == 'tags') {
       
        if ($config['allow_alt_url']) $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"" . $config['http_home_url'] . "tags/\" itemprop=\"url\"><span itemprop=\"title\">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag;
        else $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"?do=tags\" itemprop=\"url\"><span itemprop=\"title\">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag;

    } elseif ($nam_e) $s_navigation .= " {$config['speedbar_separator']} " . $nam_e;

    if ($titl_e) $s_navigation .= " {$config['speedbar_separator']} " . $titl_e;
    else {

        if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){
       
            $page_extra = " {$config['speedbar_separator']} ".$lang['news_site']." ".intval($_GET['cstart']);
       
        } else $page_extra = '';

        $s_navigation .= $page_extra;

    }
   
    $tpl->load_template ( 'speedbar.tpl' );
    $tpl->set ( '{speedbar}', '<span id="dle-speedbar">' . stripslashes ( $s_navigation ) . '</span>' );
    $tpl->compile ( 'speedbar' );
    $tpl->clear ();

}
Меняем на :
PHP:
if ($config['speedbar'] AND !$view_template ) {
   
    $s_navigation = "<li property=\"itemListElement\" typeof=\"ListItem\"><a href=\"{$config['http_home_url']}\" property=\"item\" typeof=\"WebPage\"><span property=\"name\">" . $config['short_title'] . "</span></a><meta property=\"position\" content=\"1\"></li>";

    if( $config['start_site'] == 3 AND $_SERVER['QUERY_STRING'] == "" AND !$_POST['do']) $titl_e = "";

    if (intval($category_id))
    {
        $cat_breadcrumb = explode("|", get_breadcrumbcategories ( intval($category_id), $config['speedbar_separator'] ));
        $s_navigation .= " {$config['speedbar_separator']} " . $cat_breadcrumb[0];
    }
    elseif ($do == 'tags') {
       
        if ($config['allow_alt_url']) $s_navigation .= " {$config['speedbar_separator']} <li property=\"itemListElement\" typeof=\"ListItem\"><a href=\"" . $config['http_home_url'] . "tags/\" property=\"item\" typeof=\"WebPage\"><span property=\"name\">" . $lang['tag_cloud'] . "</span></a><meta property=\"position\" content=\"2\"></li> {$config['speedbar_separator']} <li property=\"itemListElement\" typeof=\"ListItem\"><span property=\"name\">" . $tag . "</span><meta property=\"position\" content=\"3\"></li>";
        else $s_navigation .= " {$config['speedbar_separator']} <li property=\"itemListElement\" typeof=\"ListItem\"><a href=\"?do=tags\" property=\"item\" typeof=\"WebPage\"><span property=\"name\">" . $lang['tag_cloud'] . "</span></a><meta property=\"position\" content=\"2\"></li> {$config['speedbar_separator']} <li property=\"itemListElement\" typeof=\"ListItem\"><span property=\"name\">" . $tag . "</span><meta property=\"position\" content=\"3\"></li>";

    } elseif ($nam_e)
    {
        if($dle_module == "showfull")
        {
            $cat_breadcrumb[1] = $cat_breadcrumb[1] + 1;
            $s_navigation .= " {$config['speedbar_separator']} " . "<li property=\"itemListElement\" typeof=\"ListItem\"><span property=\"name\">{$nam_e}</span><meta property=\"position\" content=\"{$cat_breadcrumb[1]}\"></li>";
        }
        else
        {
            $s_navigation .= " {$config['speedbar_separator']} " . "<li property=\"itemListElement\" typeof=\"ListItem\"><span property=\"name\">{$nam_e}</span><meta property=\"position\" content=\"2\"></li>";
        }
    }

    if ($titl_e)
    {
        if(isset($cat_breadcrumb[1]) && !is_null($cat_breadcrumb[1]))
            $cat_breadcrumb[1] = $cat_breadcrumb[1] + 1;
        else
            $cat_breadcrumb[1] = 3;
        $s_navigation .= " {$config['speedbar_separator']} <li property=\"itemListElement\" typeof=\"ListItem\"><span property=\"name\">{$titl_e}</span><meta property=\"position\" content=\"{$cat_breadcrumb[1]}\"></li>";
    }
    else {

        if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){
            $cat_breadcrumb[1]++;
            $page_extra = " {$config['speedbar_separator']} <li property=\"itemListElement\" typeof=\"ListItem\"><span property=\"name\">".$lang['news_site']." ".intval($_GET['cstart']) . "</span><meta property=\"position\" content=\"{$cat_breadcrumb[1]}\"></li>";
       
        } else $page_extra = '';

        $s_navigation .= $page_extra;

    }
   
    $tpl->load_template ( 'speedbar.tpl' );
    $tpl->set ( '{speedbar}', '<ol vocab="http://schema.org/" typeof="BreadcrumbList">' . stripslashes ( $s_navigation ) . '</ol>' );
    $tpl->compile ( 'speedbar' );
    $tpl->clear ();

}
Далее открываем /engine/modules/functions.php, находим :
PHP:
function get_breadcrumbcategories($id, $separator="&raquo;") {
   
    global $cat_info, $config, $PHP_SELF;
   
    if( ! $id ) return;
   
    $parent_id = $cat_info[$id]['parentid'];
   
    if( $config['allow_alt_url'] ) $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"" . $config['http_home_url'] . get_url( $id ) . "/\" itemprop=\"url\"><span itemprop=\"title\">{$cat_info[$id]['name']}</span></a></span>";
    else $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$id]['alt_name']}\" itemprop=\"url\"><span itemprop=\"title\">{$cat_info[$id]['name']}</span></a></span>";
   
    while ( $parent_id ) {
       
        if( $config['allow_alt_url'] ) $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "/\" itemprop=\"url\"><span itemprop=\"title\">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list;
        else $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$parent_id]['alt_name']}\" itemprop=\"url\"><span itemprop=\"title\">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list;
       
        $parent_id = $cat_info[$parent_id]['parentid'];

        if($parent_id) {       
            if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
        }   
    }
   
    return $list;
}
Меняем на :
PHP:
function get_breadcrumbcategories($id, $separator="&raquo;") {
   
    global $cat_info, $config, $PHP_SELF, $dle_module;
   
    if( ! $id ) return;
   
    $parent_id = $cat_info[$id]['parentid'];
    $first_id_p = $parent_id;
    $i = 1;
    while($parent_id)
    {
        $i++;
        $parent_id = $cat_info[$parent_id]['parentid'];
        if($parent_id)
            if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
    }
   
    $i += 1;
    $parent_id = $first_id_p;
    if($parent_id == 0)
    {
        $id_i = 2;
        if($dle_module == "cat")
        {
            if( $config['allow_alt_url'] ) $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><span property=\"name\">{$cat_info[$id]['name']}</span><meta property=\"position\" content=\"2\"></li>";
            else $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><span itemprop=\"title\">{$cat_info[$id]['name']}</span><meta property=\"position\" content=\"2\"></li>";
        }
        else
        {
            if( $config['allow_alt_url'] ) $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><a href=\"" . $config['http_home_url'] . get_url( $id ) . "/\" property=\"item\" typeof=\"WebPage\"><span property=\"name\">{$cat_info[$id]['name']}</span></a><meta property=\"position\" content=\"2\"></li>";
            else $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$id]['alt_name']}\" property=\"item\" typeof=\"WebPage\"><span property=\"name\">{$cat_info[$id]['name']}</span></a><meta property=\"position\" content=\"2\"></li>";
        }
    }
    else
    {
        $id_i = 3;
        if($dle_module == "cat")
        {
            if( $config['allow_alt_url'] ) $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><span property=\"name\">{$cat_info[$id]['name']}</span><meta property=\"position\" content=\"{$i}\"></li>";
            else $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><span itemprop=\"title\">{$cat_info[$id]['name']}</span><meta property=\"position\" content=\"{$i}\"></li>";
        }
        else
        {
            if( $config['allow_alt_url'] ) $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><a href=\"" . $config['http_home_url'] . get_url( $id ) . "/\" property=\"item\" typeof=\"WebPage\"><span property=\"name\">{$cat_info[$id]['name']}</span></a><meta property=\"position\" content=\"3\"></li>";
            else $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$id]['alt_name']}\" property=\"item\" typeof=\"WebPage\"><span property=\"name\">{$cat_info[$id]['name']}</span></a><meta property=\"position\" content=\"3\"></li>";
        }
    }
    while ( $parent_id ) {
        $i--;
        if($dle_module != "cat")
        {
            if( $config['allow_alt_url'] ) $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><a href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "/\" property=\"item\" typeof=\"WebPage\"><span property=\"name\">{$cat_info[$parent_id]['name']}</span></a><meta property=\"position\" content=\"{$i}\"></li>" . " {$separator} " . $list;
            else $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$parent_id]['alt_name']}\" property=\"item\" typeof=\"WebPage\"><span property=\"name\">{$cat_info[$parent_id]['name']}</span></a><meta property=\"position\" content=\"{$i}\"></li>" . " {$separator} " . $list;
        }
        else
        {
            if($id != $cat_info[$parent_id]['id'])
                $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><a property=\"item\" typeof=\"WebPage\" href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "\"><span property=\"name\">{$cat_info[$parent_id]['name']}</span></a><meta property=\"position\" content=\"{$i}\"></li>" . " {$separator} " . $list;
            else
                $list = "<li property=\"itemListElement\" typeof=\"ListItem\"><span property=\"name\">{$cat_info[$parent_id]['name']}</span><meta property=\"position\" content=\"{$i}\"></li>" . " {$separator} " . $list;
        }
        $parent_id = $cat_info[$parent_id]['parentid'];
        if($parent_id) {       
            if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
        }   
    }
    return $list . "|" . $id_i;
}
Далее открываем .css файл который используется где и хлебные крошки и вставляем :
HTML:
ol[typeof=BreadcrumbList]
{
    display:inline-block;
    list-style:none!important;
}
ol[typeof=BreadcrumbList] > li
{
    display:inline-block;
}

На пиво :
  1. R118095764291 - рубли
  2. U218134219019 - гривны
  3. Z228640084773 - доллары
Автор : Gameer
 
а демо можно? или скриншот
 
Автор темы
Ссылку категории на саму себя в крошках лечит данная конструкция?
 
эммм, а оно надо?😕 как яндекс на это реагирует ?
 
Ну норм, правда уже давно переделал отстойные стоковые крошки на схемаорг.
http://prntscr.com/ar9g5p
 
А если сделаны поавки из твоего сео пака? Нада делать? И если да то поверх их?
 
Автор темы
Спасибо! Скину на пиво за работу 😉
 
Добрый вечер)
Как это можно исправить?)
p.s. знаю что я перфекционист такой ))
За 10 рублей помогите 😀😀😀
upload_2016-11-21_21-31-22.png
 
Никому не нужен 10 рублей что ли?
 

Похожие темы Последние темы Популярные темы

Назад
Сверху