Перейти к публикации

Как сделать следующую новость в категории?


Рекомендованные сообщения

Всем привет.

Есть модуль для вывода ссылок в полной новости "Следующая новость", "Предыдущая новость".

Вот его код:


<?php

/*

=====================================================

Автор: rocksmart

-----------------------------------------------------

http://pro-script.ru/

-----------------------------------------------------

Данный код защищен авторскими правами

=====================================================

Файл: nextpreviewnews.php

-----------------------------------------------------

Назначение: Следущая и предидущая новость

=====================================================

/* УСТАНОВКА:

Копируем файл в engine/modules, в необходимом месте шаблона fullstory.tpl выводим такой строкой:

{include file="engine/modules/nextpreviewnews.php"}

*/

if( ! defined( 'DATALIFEENGINE' ) ) {

die( "Hacking attempt!" );

}

$id = NEWS_ID;

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

		    $config['allow_cache'] = "yes";

		    $revert_cache = true;

	    } else {

		    $revert_cache = false;

}

$cont = dle_cache( "nextpreviewnews",$id);

if( $cont === FALSE ) {

$result = $db->query("SELECT id, date, title, category, alt_name FROM " . PREFIX . "_post WHERE (

`id` = (SELECT MAX(`id`) FROM " . PREFIX . "_post WHERE `id` < ".$id." AND approve = '1')

OR `id` = (SELECT MIN(`id`) FROM " . PREFIX . "_post WHERE `id` > ".$id." AND approve = '1')

) ");

while ($row = $db->get_row()){


$row['title'] = stripslashes( $row['title'] );   

$substrtitle = ( strlen( $row['title'] ) > 30 ) ? substr( $row['title'], 0, 30 ) . "..." : $row['title'];   

$row['category'] = intval( $row['category'] );   

$row['date'] = strtotime( $row['date'] );   

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


   if( $config['seo_type'] == 1 OR $config['seo_type'] == 2  ) {


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


	 $full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";


    } else {


	 $full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";


    }


   } else {


    $full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";

   }


  } else {


   $full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];


  }   


//echo '<pre>';print_r($row);echo'</pre>';   


$cont .=($row['id'] < $id) ? "<!--<li><a href=\"".$full_link."\" title=\"".$row['title']."\">".$substrtitle."</a></li>-->" : "";

$cont .=($row['id'] > $id) ? "<li><a href=\"".$full_link."\" title=\"".$row['title']."\">Следующий кран</a></li>" : "";




}

$db->free();

if($cont) {

$cont =  $cont.'';

create_cache("nextpreviewnews",$cont,$id);

}

}

if( $revert_cache ) $config['allow_cache'] = "no";

echo $cont;

?>

Он выводит просто следующую новость, я так понимаю по id-шнику. Как сделать чтоб модуль выводил следующую новость именно в категории, а не все подряд?

Ссылка на сообщение
Поделиться на других сайтах

Была же уже недавно эта тема: http://forum.dle-new...showtopic=67991

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


[category=1]

  <a href="{include file="engine/modules/myphp.php?link=next&cat=1&id={news-id}"}" class="next"></a>

  <a href="{include file="engine/modules/myphp.php?link=back&cat=1&id={news-id}"}" class="back"></a>

[/category]


[category=2]

  <a href="{include file="engine/modules/myphp.php?link=next&cat=2&id={news-id}"}" class="next"></a>

  <a href="{include file="engine/modules/myphp.php?link=back&cat=2&id={news-id}"}" class="back"></a>

[/category]


[category=3]

  <a href="{include file="engine/modules/myphp.php?link=next&cat=3&id={news-id}"}" class="next"></a>

  <a href="{include file="engine/modules/myphp.php?link=back&cat=3&id={news-id}"}" class="back"></a>

[/category]

Изменено пользователем Mek
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...