Ссылки на следующую и предыдущую новость DLE

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Ссылки на следующую и предыдущую новость DLE

Представляем реализацию для перелицовки ссылок новостей, хак Ссылки на следующую и предыдущую новость для 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>Ранее &raquo; <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\">&laquo; Далее <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
<a href="http://www.dle9.com/">дле</a>
найдите файл fullstory.tpl, откройте и после строки

{full-story}


Вставить:

<br/><br/>
{back-link}{next-link}


Готово!
Автор оригинала: Хз
Автор адаптации: SX2
Версия : проверено на DLE 10.4 будет работать на Dle 10.5

Внимание! ID может быть идти не по порядку! дело в том, что новости добавляются в разные категории! Поэтому ссылки на следующую и предыдущую новость, идут только в текущей категории! Если нужно чтобы выводились ссылки на все новости согласно очередностей публикаций, нужно убрать с запроса:

AND category = '{$row['category']}'


Скачать из категории хаки для dle, хак ссылки на следующую и предыдущую новости для DLE 10.4
  • 80
Рубрика: DLE хаки » Хак для DLE
Ранее » Убрать ник и группу у формы «Обратной связи»« Далее Цифровой рейтинг на чистом CSS3 для DLE
Добавление комментарияОставить комментарий
  • № :3
  • 18 января 2016 23:40
Админ спасибо тебе! Очень выручил, но код все равно пришлось немного доработать.
  • № :2
  • 18 января 2016 09:21
Цитата: diman707
А можно ли это реализовать ссылки на предыдущие и следующие кнопками (png)


в кодах на предыдущие и следующие
  $next_link = "<span style=\"float:right\">« Далее <b><a href=\"" . $next_link . "\">" . stripslashes( $nextlink['title'] ) . "</a></b></span>";
            }

добавить вместо название картинки далее.png название крантинки

" src=\"engine/skins/images/(название картинки далее).png\" />

забросить свою картинку в папку engine/skins/images/
получим такой код

  $next_link = "<span style=\"float:right\"><a href=\"" . $next_link . "\">" . stripslashes( $nextlink['title'] ) . " src=\"engine/skins/images/(название картинки далее).png\" /></a></span>";
            }


другой код
  $back_link = "<span>Ранее » <b><a href=\"" . $back_link . "\">" . stripslashes( $backlink['title'] ) . "</a></b></span>";
        }


меняем на
  $back_link = "<span>Ранее » <b><a href=\"" . $back_link . "\">" . stripslashes( $backlink['title'] ) . " src=\"engine/skins/images/(название картинки далее).png\" /></a></b></span>";
        }
  • № :1
  • 17 января 2016 21:40
А можно ли это реализовать ссылки на предыдущие и следующие кнопками (png)