موضوع: ابزار دیتالایف انجین / هک دیتالایف
![تصحیح Breadcrumbs در ماژول Speedbar](/uploads/posts/2017-12/1513624001_untitled-1.png)
برای اینکه موضوع بیشتر جا بیفتد آدرسی که هم اکنون در ماژول فراخوانی می شود به صورت زیر است :
<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']) : "»";
$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;
}
قبل از دیدن سایت حتما کش سایت و مرورگر خود را خالی نمایید.
موفق باشید.
- 27 / 09 / 96
- Eh3an
- 1 نظر
- 5968