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

zatocnik
На сайте с 06.08.2010
Offline
75
1109

DLE 9.7 - Вопрос тем кто разбирается в PHP. Как переделать код, чтобы он выдавал ссылку вида http://сайт.ru/id-название.html.

В таком виде как он сейчас, он выдает так: http://сайт.ru/2013/03/08/название.html

//Next begin

if( $config['prevnext_allow'] == "1" ) {
if( $config['allow_cache'] != "yes" ) {
$config['allow_cache'] = "yes";
$revert_cache = true;
} else
$revert_cache = false;
$prev_link = dle_cache( "prevlink", $row['id'] );
$next_link = dle_cache( "nextlink", $row['id'] );

// Prev Link
if( $prev_link === FALSE ) {
$prevlink = $db->super_query( "SELECT id, date, title, category, alt_name FROM " . PREFIX . "_post WHERE date > FROM_UNIXTIME({$row['date']}) AND category = '{$row['category']}' AND approve = '1' ORDER BY date ASC LIMIT 0,1" );
if ( $prevlink ) {
$prevlink['date'] = strtotime( $prevlink['date'] );
$prevlink['category'] = intval( $prevlink['category'] );
if( strlen( $prevlink['title'] ) > 75 ) $prevlink['title'] = substr( $prevlink['title'], 0, 75 ) . " ...";
if( $config['allow_alt_url'] == "yes" ) {
if( $prevlink['flag'] and $config['seo_type'] ) {
if( $prevlink['category'] and $config['seo_type'] == 2 ) {
$prev_link = $config['http_home_url'] . get_url( $prevlink['category'] ) . "/" . $prevlink['id'] . "-" . $prevlink['alt_name'] . ".html";
} else {
$prev_link = $config['http_home_url'] . $prevlink['id'] . "-" . $prevlink['alt_name'] . ".html";
}
} else {
$prev_link = $config['http_home_url'] . date( 'Y/m/d/', $prevlink['date'] ) . $prevlink['alt_name'] . ".html";
}
} else {
$prev_link = $config['http_home_url'] . "index.php?newsid=" . $prevlink['id'];
}
} else {
$prev_link = "";
}
if( $prev_link ) {
$prev_link = "<a href=" . $prev_link . ">" . stripslashes( $prevlink['title'] ) . "</a>";
}
$db->free();
create_cache( "prevlink", $prev_link, $row['id'] );
}

// Next Link
if( $next_link === FALSE ) {
$nextlink = $db->super_query( "SELECT id, date, title, category, alt_name FROM " . PREFIX . "_post WHERE date < FROM_UNIXTIME({$row['date']}) AND category = '{$row['category']}' AND approve = '1' ORDER BY date DESC LIMIT 0,1" );
if( $nextlink ) {
$nextlink['date'] = strtotime( $nextlink['date'] );
$nextlink['category'] = intval( $nextlink['category'] );
if( strlen( $nextlink['title'] ) > 75 ) $nextlink['title'] = substr( $nextlink['title'], 0, 75 ) . " ...";
if( $config['allow_alt_url'] == "yes" ) {
if( $nextlink['flag'] and $config['seo_type'] ) {
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'] . date( 'Y/m/d/', $nextlink['date'] ) . $nextlink['alt_name'] . ".html";
}
} else {
$next_link = $config['http_home_url'] . "index.php?newsid=" . $nextlink['id'];
}
} else {
$next_link = "";
}
if( $next_link ) {
$next_link = "<a href=" . $next_link . ">" . stripslashes( $nextlink['title'] ) . "</a>";
}
$db->free();
create_cache( "nextlink", $next_link, $row['id'] );
}

if( $revert_cache ) $config['allow_cache'] = "no";
} else $next_link = $prev_link = '';

// Back and Next Link Template
$tpl->set( '{prev-link}', $prev_link );
$tpl->set( '{next-link}', $next_link );

//Next End
Б
На сайте с 12.02.2009
Offline
88
#1

Если я не ошибаюсь такой вывод ссылок настраивается через админку DLE

zatocnik
На сайте с 06.08.2010
Offline
75
#2
Бенджемен:
Если я не ошибаюсь такой вывод ссылок настраивается через админку DLE

В админке стоит ЧПУ 1 способа, то есть http://сайт.ru/id-новость.html и она на этот модуль не влияет.

I
На сайте с 19.02.2012
Offline
93
#3

zatocnik, если хотите помощи, то вставляйте нормальный PHP код, без моря звездочек.

C
На сайте с 04.02.2005
Offline
291
#4

Если чуть-чуть потрудиться над кодом, то сразу становится ясно где смотреть

if( $config['allow_alt_url'] == "yes" ) {

if( $prevlink['flag'] and $config['seo_type'] ) {
if( $prevlink['category'] and $config['seo_type'] == 2 ) {
$prev_link = $config['http_home_url'] . get_url( $prevlink['category'] ) . "/" . $prevlink['id'] . "-" . $prevlink['alt_name'] . ".html";
} else {
$prev_link = $config['http_home_url'] . $prevlink['id'] . "-" . $prevlink['alt_name'] . ".html";
}
} else {
$prev_link = $config['http_home_url'] . date( 'Y/m/d/', $prevlink['date'] ) . $prevlink['alt_name'] . ".html";
}
} else {
$prev_link = $config['http_home_url'] . "index.php?newsid=" . $prevlink['id'];
}
zatocnik
На сайте с 06.08.2010
Offline
75
#5

if( $prevlink['category'] and $config['seo_type'] == 2 )

Переменная 1,2,3 не работает. Как должен выглядеть этот код ? Я в php - 0

C
На сайте с 04.02.2005
Offline
291
#6

Код выглядит так как он выглядит.

Если Вам нужно настроить и вы сами не можете, то наймите тех кто может.

---------- Добавлено 08.03.2013 в 23:05 ----------

а на самом деле проблема находится вот здесь $prevlink['flag']

psics
На сайте с 02.04.2009
Offline
130
#7

Введите в адресной строке (вместо site.ru - свой домен)

site.ru/admin.php?mod=options&action=syscon

выберите тип чпу

Тип ЧПУ:

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий