
Представляем реализацию для перелицовки ссылок новостей, хак Ссылки на следующую и предыдущую новость для DLE 10.4 движка DataLife Engine 10.5. Хак для DLE выводит ссылки перехода на предыдущую и следующую новость в полной публикации, что делает перелинковку внутренних страниц сайта и добавляет вес страницам. После небольших правок автору удалось его подключить на DLE 10.4 .
Установка!
Открыть /engine/modules/show.full.php найти:
if( $config['related_news'] AND $view_template != "print") {
Выше вставьте
// Начало: ссылки на следующую и предыдущую новости
$backnext_allow = 1;
if( $backnext_allow ) {
if( !$config['allow_cache'] ) {
$config['allow_cache'] = 1;
$revert_cache = true;
} else
$revert_cache = false;
$back_link = dle_cache( "backlink", $row['id'] );
$next_link = dle_cache( "nextlink", $row['id'] );
// Предыдущая новость
if( $back_link === FALSE ) {
$backlink = $db->super_query( "SELECT id, title, category, alt_name FROM " . PREFIX . "_post WHERE id < {$row['id']} AND category = '{$row['category']}' AND approve = '1' ORDER BY id DESC LIMIT 0,1" );
if( $backlink ) {
$backlink['category'] = intval( $backlink['category'] );
if( strlen( $backlink['title'] ) > 70 ) $backlink['title'] = substr( $backlink['title'], 0, 70 ) . "...";
if( $config['allow_alt_url'] ) {
if( $backlink['category'] and $config['seo_type'] == 2 ) {
$back_link = $config['http_home_url'] . get_url( $backlink['category'] ) . "/" . $backlink['id'] . "-" . $backlink['alt_name'] . ".html";
} else {
$back_link = $config['http_home_url'] . $backlink['id'] . "-" . $backlink['alt_name'] . ".html";
}
} else {
$back_link = $config['http_home_url'] . "index.php?newsid=" . $backlink['id'];
}
} else {
$back_link = "";
}
if( $back_link ) {
$back_link = "<span>Ранее » <b><a href="" . $back_link . "">" . stripslashes( $backlink['title'] ) . "</a></b></span>";
}
$db->free();
create_cache( "backlink", $back_link, $row['id'] );
}
// Следующая новость
if( $next_link === FALSE ) {
$nextlink = $db->super_query( "SELECT id, title, category, alt_name FROM " . PREFIX . "_post WHERE id > {$row['id']} AND category = '{$row['category']}' AND approve = '1' ORDER BY id ASC LIMIT 0,1" );
if ( $nextlink ) {
$nextlink['category'] = intval( $nextlink['category'] );
if( strlen( $nextlink['title'] ) > 70 ) $nextlink['title'] = substr( $nextlink['title'], 0, 70 ) . "...";
if( $config['allow_alt_url'] ) {
if( $nextlink['category'] and $config['seo_type'] == 2 ) {
$next_link = $config['http_home_url'] . get_url( $nextlink['category'] ) . "/" . $nextlink['id'] . "-" . $nextlink['alt_name'] . ".html";
} else {
$next_link = $config['http_home_url'] . $nextlink['id'] . "-" . $nextlink['alt_name'] . ".html";
}
} else {
$next_link = $config['http_home_url'] . "index.php?newsid=" . $nextlink['id'];
}
} else {
$next_link = "";
}
if( $next_link ) {
$next_link = "<span style="float:right">« Далее <b><a href="" . $next_link . "">" . stripslashes( $nextlink['title'] ) . "</a></b></span>";
}
$db->free();
create_cache( "nextlink", $next_link, $row['id'] );
}
// Сссылки
$tpl->set( '{back-link}', $back_link );
$tpl->set( '{next-link}', $next_link );
if( $revert_cache ) $config['allow_cache'] = 0;
}
// Конец: ссылки на следующую и предыдущую новости
В папке вашего шаблона dle найдите файл fullstory.tpl, откройте и после строки
{full-story}
Вставить:
<br/><br/>
{back-link}{next-link}
Готово!
Внимание! Если вы используете версии DLE 13.0 и выше, то разработчики интегрировали реализацию ссылки на следующую и предыдущую новость. Теперь достаточно добавить в шаблон fullstory.tpl теги :
Выводят текст заключенных в них, если следующая новость присутствует на сайте
Выводит URL следующей публикации
Выводит заголовок следующей публикации
Выводят текст заключенных в них, если предыдущая новость присутствует на сайте
Выводит URL предыдущей публикации
Выводит заголовок предыдущей новости
[next-url] Текст [/next-url]
Выводят текст заключенных в них, если следующая новость присутствует на сайте
{next-url}
Выводит URL следующей публикации
{next-title}
Выводит заголовок следующей публикации
[prev-url] Текст [/prev-url]
Выводят текст заключенных в них, если предыдущая новость присутствует на сайте
{prev-url}
Выводит URL предыдущей публикации
{prev-title}
Выводит заголовок предыдущей новости
Автор оригинала: Хз
Автор адаптации: SX2
Версия : проверено на DLE 10.4 будет работать на Dle 10.5
Внимание! ID может быть идти не по порядку! дело в том, что новости добавляются в разные категории! Поэтому ссылки на следующую и предыдущую новость, идут только в текущей категории! Если нужно чтобы выводились ссылки на все новости согласно очередностей публикаций, нужно убрать с запроса:
AND category = '{$row['category']}'
Скачать из категории хаки для dle, хак ссылки на следующую и предыдущую новости для DLE 10.4