تصحیح Breadcrumbs در ماژول Speedbarبه نام خدا ، تا جاییکه یادم میاد بحث Breadcrumbs در ماژول Speedbar از نسخه ۱۰ به سیستم مدیریت محتوای دیتالایف انجین اضافه شده است. از نظر فنی هیچ ایرادی در این قسمت برای Speedbar وارد نیست اما آدرسی که در itemscope آن اضافه شده است قابلیت فراخوانی را نداشته و Error 404 می دهد.
برای اینکه موضوع بیشتر جا بیفتد آدرسی که هم اکنون در ماژول فراخوانی می شود به صورت زیر است :
<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\">
همانطور که می بینید آدرس http://data-vocabulary.org/Breadcrumb اررور ۴۰۴ را بر می گرداند. در این هک ما این آدرس را به آدرس http://schema.org/BreadcrumbList تغییر می دهیم. برای این منظور، فایل engine/engine.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 ();

}

کد فوق را با کد زیر جایگزین نمایید:

if ($config['speedbar'] AND !$view_template ) {
    function get_breadcrumblistcategories($id,$sec = false){
        global $speedbar,$cat_info,$config,$cstart,$dle_module;
        if(!$id) return;
        $parent_id = $cat_info[$id]['parentid'];
        if($parent_id) get_breadcrumblistcategories( $parent_id, true );
        if($sec OR $cstart>1 OR $dle_module!='cat') $speedbar[] = array( $config['http_home_url'] . get_url( $id ) . '/', $cat_info[$id]['name'], $cat_info[$id]['metatitle'] );
        else $speedbar[] = $cat_info[$id]['name'];
    }
    $config['speedbar_separator'] = $config['speedbar_separator'] ? trim($config['speedbar_separator']) : "&raquo";
    $speedbar = array( array( $config['http_home_url'], $config['short_title'], $config['home_title'] ) );
    if (intval($category_id)) get_breadcrumblistcategories( intval($category_id) );
    elseif( $do == 'tags' ){
        $speedbar[] = array( "/tags/", $lang['tag_cloud'] );
        $speedbar[] = $tag;
    }elseif($nam_e) $speedbar[] = $nam_e;

    if($titl_e) $speedbar[] = $titl_e;
    elseif( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ) $speedbar[] = $lang['news_site']." ".intval($_GET['cstart']);

    foreach($speedbar as $k=>$v){
        $speedbar[$k] = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">';
        $title_s = "<span itemprop=\"name\">".(is_array($v) ? $v[1] : $v)."</span>";
        $speedbar[$k] .= is_array($v) ? "<a itemprop=\"item\" href=\"{$v[0]}\" title=\"".($v[2] ?: $v[1])."\">{$title_s}</a>" : $title_s;
        $speedbar[$k] .= "<meta itemprop=\"position\" content=\"".( $k+1 )."\" /></li>";
    }
    $tpl->load_template ( 'speedbar.tpl' );
    $tpl->set ( "{speedbar}", "<ul itemscope itemtype=\"http://schema.org/BreadcrumbList\" class=\"speedbar\">".implode("<li class=\"speedbar_sep\">{$config['speedbar_separator']}</li>",$speedbar)."</ul>" );
    $tpl->compile ( 'speedbar' );
    $tpl->clear();
    $tpl->result['speedbar'] = '<div id="dle-speedbar">'.$tpl->result['speedbar'].'</div>';
}

برای نمایش بهتر style های زیر را هم به engine.css قالب خودتان اضافه نمایید:

.speedbar{
    margin: 0;
    padding: 10px;
    list-style: none;
}
.speedbar:after{
    content: "";
    display: block;
    clear: both;
}
.speedbar li{
    float: left;
    margin-right: 6px;
    color: #222;
}
.speedbar li.speedbar_sep{
    color: #999;
}

قبل از دیدن سایت حتما کش سایت و مرورگر خود را خالی نمایید.
موفق باشید.

در صورت نیاز به نصب، راه اندازی و راهنمایی در مورد دیتالایف انجین فارسی و یا هر مشکلی در این زمینه از طریق ارسال تیکت پشتیبانی اقدام نمایید.
همچنین جهت حمایت مالی تیم همیار می توانید از آدرس Donate استفاده نمایید.


نویسنده : Eh3an
نظرات ( نظرات ارسال شده : 1 )
توسطjavananit
سلام ممنون احسان جان
ارسال نظر
پیام سیستم
برای ارسال نظر، باید در سایت عضو شوید.
نماد اعتماد و ساماندهی
logo-samandehi
پیگیری پشتیبانی
سامانه هوشمند بهبود سئو سایت و کاهش رتبه Alexa

فروشگاه همیار دیتالایف انجین فارسی
نظرسنجی

 
تبلیغات
اپراتک | اپل و بیشتر از اپل | اخبار اپل آموزش اپل معرفی دانلود بازی و نرم افزار برای آیفون آیپد iOS