[Помогите] DLE 10.0 ссылки на предыдущую и следующую новости

Тема в разделе "DataLife Engine", создана пользователем Lobzik76, 4 июл 2013.

  1. Lobzik76

    Lobzik76

    Регистрация:
    6 фев 2013
    Сообщения:
    135
    Симпатии:
    9
    Подскажите, о Великие гуру в DLE, как можно осуществить вывод ссылок на предыдущую и следующую новости на странице полной новости в движке DLE 10.0.
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.350
    Симпатии:
    1.378
    Метод от 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'] == OR $config['seo_type'] == ) {
     
     
    if( 
    $backlink['category'] AND $config['seo_type'] == ) {
     
     
    $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'] == OR $config['seo_type'] == ) {
     
     
    if( 
    $nextlink['category'] AND $config['seo_type'] == ) {
     
     
    $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]
     
  3. Lobzik76

    Lobzik76

    Регистрация:
    6 фев 2013
    Сообщения:
    135
    Симпатии:
    9
    Пробовал, но почему-то не хочет работать. Или вообще не показывается, или только либо следующая либо предыдущая и получается переход туда-сюда. Не может ли причиной быть то, что новости относятся к нескольким категориям одновременно?
     
  4. mtrolik

    mtrolik

    Регистрация:
    7 дек 2012
    Сообщения:
    195
    Симпатии:
    39
    Попробуй так

    В файле 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} - следующая новость

     
  5. Lobzik76

    Lobzik76

    Регистрация:
    6 фев 2013
    Сообщения:
    135
    Симпатии:
    9
    Спасибо, но я оба этих варианта тоже находил в нете и их оба пробовал. К сожаленью, второй тоже не захотел корректно работать.