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

Рубрика: Хаки для DLE » Хак DLE 13.1, 13.0, 12.1, 12.0, 11.3, 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8
Ссылки на следующую и предыдущую новость 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
Представляем реализацию для перелицовки ссылок новостей, хак Ссылки на следующую и предыдущую новость для DLE 10.4 движка DataLife Engine 10.5. всё лучшее у нас форумы, хаки, модули, шаблоны.
  • 80
Рубрика: DLE хаки » Хак для DLE
Ранее » Убрать ник и группу у формы «Обратной связи»« Далее Цифровой рейтинг на чистом CSS3 для DLE
Нажмите на ссылку, чтобыОставить комментарий
  • № :12
  • 17 ноября 2018 18:32
все круто, но через предыдущая-следующая производится навигация и по неопубликованным новостям. Допустим у меня 20 новостей запланированны для публикации на определенные даты, но теперь юзеры могут их просматривать, листая через данную навигацию посты. Также они начинают индексироваться. Баг однако! Уж незнаю чей, движка или хака...
  • № :11
  • 19 апреля 2018 16:24
Цитата: Андрей
Подскажите пожалуйста как сделать что бы также выводилось превью статьи? Как в shortstory.



Придется дописать пару запросов, это надо искать похожие строчки в коде движка и пробовать, вот тут думаю вам быстрее помогут dle-faq . ru с решением вашего вопроса
  • № :10
  • 18 апреля 2018 16:02
Подскажите пожалуйста как сделать что бы также выводилось превью статьи? Как в shortstory.
  • № :9
  • 14 апреля 2018 10:07
Цитата: qwer76
Здравствуйте, как вместо названия новости вписать свой текст в ссылках?

Здравствуйте,
Пример можно, это может быть дополнительный текст типа:
Ваш текст (следующая новость ссылка)

                $next_link = "<span style=\"float:right\">&laquo; Далее <b><a href=\"" . $next_link . "\">" . stripslashes( $nextlink['title'] ) . "</a></b></span>";


решения в этой строчке вместо слова (title) вписываете свое слово
  • № :8
  • 13 апреля 2018 16:53
Здравствуйте, как вместо названия новости вписать свой текст в ссылках?
  • № :7
  • 15 февраля 2018 22:58
Здравствуйте,
найти в строке кода выше

$config['allow_cache'] = 1;

и поменять на 1 на 0 , то есть выключить кеш


Спасибо!
  • № :6
  • 15 февраля 2018 11:59
Цитата: qwer76
Здравствуйте, а как в данном коде отключить кэш?


Здравствуйте,
найти в строке кода выше

$config['allow_cache'] = 1;

и поменять на 1 на 0 , то есть выключить кеш
  • № :5
  • 15 февраля 2018 00:59
Здравствуйте, а как в данном коде отключить кэш?
  • № :4
  • 10 февраля 2017 18:42
Как реализовать что бы перекидывало на следующую новость не по id а по рейтингу? Третий тип рейтинга.
  • № :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)