Подскажите, о Великие гуру в DLE, как можно осуществить вывод ссылок на предыдущую и следующую новости на странице полной новости в движке DLE 10.0.
Метод от 9.8, но думаю и тут тоже самое. engine/modules/show.full.php Найти: PHP: $disable_index = $row['disable_index']; Добавить выше: PHP: $real_date = $row['date']; Найти: PHP: } else $tpl->set_block( "'\\[edit\\](.*?)\\[/edit\\]'si", "" ); Добавить ниже: PHP: // Ссылка вперед и назад// Back Link$backlink = $db->super_query( "SELECT * FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE date <= '{$real_date}' AND id <> '{$row['id']}' AND category = '{$row['category']}' AND approve = '1' ORDER BY date DESC LIMIT 0,1" );if( $backlink ) { $backlink['date'] = strtotime( $backlink['date'] );$backlink['category'] = intval( $backlink['category'] ); if( $config['allow_alt_url'] == "yes" ) {if( $config['seo_type'] == 1 OR $config['seo_type'] == 2 ) { if( $backlink['category'] AND $config['seo_type'] == 2 ) { $c_url = get_url( $backlink['category'] );$back_link = $config['http_home_url'] . $c_url . "/" . $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'] . date( 'Y/m/d/', $backlink['date'] ) . $backlink['alt_name'] . ".html"; }} else { $back_link = $config['http_home_url'] . "index.php?newsid=" . $backlink['id']; }$tpl->set_block ( "'\\[back_link\\](.*?)\\[/back_link\\]'si", "\\1" );$db->free();} else {$back_link = "";$tpl->set_block ( "'\\[back_link\\].*?\\[/back_link\\]'si", "" );}// Next Link$nextlink = $db->super_query( "SELECT * FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE date >= '{$real_date}' AND id <> '{$row['id']}' AND category = '{$row['category']}' AND approve = '1' ORDER BY date ASC LIMIT 0,1" );if ( $nextlink ) {$nextlink['date'] = strtotime( $nextlink['date'] );$nextlink['category'] = intval( $nextlink['category'] ); if( $config['allow_alt_url'] == "yes" ) {if( $config['seo_type'] == 1 OR $config['seo_type'] == 2 ) { if( $nextlink['category'] AND $config['seo_type'] == 2 ) { $c_url = get_url( $nextlink['category'] );$next_link = $config['http_home_url'] . $c_url . "/" . $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']; }$tpl->set_block ( "'\\[next_link\\](.*?)\\[/next_link\\]'si", "\\1" );$db->free();} else {$next_link = "";$tpl->set_block ( "'\\[next_link\\].*?\\[/next_link\\]'si", "" );}// Back and Next Link Template$tpl->set( '{back-link}', $back_link );$tpl->set( '{next-link}', $next_link );// END хака В шаблон fullstory.tpl добавляем в нужное место ссылки HTML: [back_link] <a href="{back-link}">Предыдущая новость</a> [/back_link] [next_link] <a href="{next-link}">Следующая новость</a> [/next_link]
Пробовал, но почему-то не хочет работать. Или вообще не показывается, или только либо следующая либо предыдущая и получается переход туда-сюда. Не может ли причиной быть то, что новости относятся к нескольким категориям одновременно?
Попробуй так В файле engine/inc/options.php найди Код: showRow( $lang['opt_sys_wdq'], $lang['opt_sys_wdsd'], makeDropDown( array ("1" => $lang['opt_sys_yes'], "0" => $lang['opt_sys_no'] ), "save_con[allow_quick_wysiwyg]", "{$config['allow_quick_wysiwyg']}" ) ); ниже вставь Код: showRow( $lang['opt_sys_link'], $lang['opt_sys_link_pn'], makeDropDown( array ("1" => "Да", "0" => "Нет" ), "save_con[prevnext_allow]", "{$config['prevnext_allow']}" ) ); В файле language/Russian/adminpanel.lng найди Код: 'wysiwyg_language' => "ru", ниже вставь Код: // Ссылки в полной новости на предыдущую и следующую новость opt_sys_link => "Показывать предыдущую и следующую новость?",opt_sys_link_pn => "Если 'Да', то в полной новости будет показывать ссылку на предыдущую и следующую новость, если 'Нет', то ссылки не будут показыватся", В файле engine/modules/show.full.php найди Код: if( $config['related_news'] ) { выше вставь Код: 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 Linkif( $prev_link === FALSE ) {$prevlink = $db->super_query( "SELECT id, date, title, category, alt_name, flag 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 Linkif( $next_link === FALSE ) {$nextlink = $db->super_query( "SELECT id, date, title, category, alt_name, flag 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 ); Ну и в fullstory.tpl {back-link} - предыдущая новость{next-link} - следующая новость
Спасибо, но я оба этих варианта тоже находил в нете и их оба пробовал. К сожаленью, второй тоже не захотел корректно работать.