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

Переключение между следующей и предыдущей новостью


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

День добрый.

Можно ли как-то на ДЛЕ устроить навигацию между новостями? Т.е. просматриваю я новость и внизу - стрелочки: "Следующая новость" и "Предыдущая новость". И чтоб ссылки вели, соответственно, на следующую и предыдущую новости.

Как на любом слайдере, только не листать, а переходить.

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


if (($link == 'next') or ($link == 'back')) {

  include ('engine/api/api.class.php');


  $data = $dle_api->take_news ( $cat, 'id,alt_name', 0, 0, 'date', 'ASC' );


  foreach ($data as $key=>$temp) {

   $search = array_search($id, $temp);

   if ($search == true) { break; }

  }


  if ($link == 'next') $key = $key + 1;

  else $key = $key - 1;

  if ($data[$key]['id'] != '') echo "/" . $cat_info[$cat]['alt_name'] . "/" . $data[$key]['id'] . "-" . $data[$key]['alt_name'] . ".html";

   else echo "#";

};

инклудим в fullstory.tpl примерно так:

  <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>

&cat - id необходимой категории(ий)

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

RedRoll, чёто не работает ваш вариант.

все работает, в т.ч. и на 10.4

код с нашего сайта, пример тут - http://redroll.ru/portfolio/75-valeolog-tmru.html

Ссылки в шаблон, а код куда вставляем?

создаем свой php - engine/modules/myphp.php

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

 if (($link == 'next') or ($link == 'back')) { include ('engine/api/api.class.php'); $data = $dle_api->take_news ( $cat, 'id,alt_name', 0, 0, 'date', 'ASC' ); foreach ($data as $key=>$temp) { $search = array_search($id, $temp); if ($search == true) { break; } } if ($link == 'next') $key = $key + 1; else $key = $key - 1; if ($data[$key]['id'] != '') echo "/" . $cat_info[$cat]['alt_name'] . "/" . $data[$key]['id'] . "-" . $data[$key]['alt_name'] . ".html"; else echo "#"; }; 
инклудим в fullstory.tpl примерно так:
 [/code]
 &cat - id необходимой категории(ий) 



Или не находит следующую (выдаёт #) или вообще ничего не выдаёт.

Бывало пару раз что показывал модуль ссылку на следующую новость, но сейчас и это перестало делать.



Код в main.tpl:

[code] [category=3]{include file='engine/modules/nextprev.php?link=next&cat=3&id={news-id}'}[/category] [category=4]{include file='engine/modules/nextprev.php?link=next&cat=4&id={news-id}'}[/category] [/code]
Код модуля:
[code] <?php if (($link == 'next') or ( $link == 'back')) { include ('engine/api/api.class.php'); $data = $dle_api->take_news($cat, 'id,alt_name', 0, 0, 'date', 'ASC'); foreach ($data as $key => $temp) { $search = array_search($id, $temp); if ($search == true) { break; } } if ($link == 'next') $key = $key + 1; else $key = $key - 1; if ($data[$key]['id'] != '') echo "/" . $cat_info[$cat]['alt_name'] . "/" . $data[$key]['id'] . "-" . $data[$key]['alt_name'] . ".html"; else echo "#"; }; ?> [/code]

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

nDiezel, я сделал следующим образом (на 10.4 работает):

Создаём в engine/modules/ файл myphp.php с кодом:

Если у вас тип ЧПУ-1 то:

<?php

if (($link == 'next') or ($link == 'back')) {

  include ('engine/api/api.class.php');


  $data = $dle_api->take_news ( $cat, 'id,alt_name', 0, 0, 'date', 'ASC' );


  foreach ($data as $key=>$temp) {

   $search = array_search($id, $temp);

   if ($search == true) { break; }

  }


  if ($link == 'next') $key = $key + 1;

  else $key = $key - 1;

  if ($data[$key]['id'] != '') echo "/" . $data[$key]['id'] . "-" . $data[$key]['alt_name'] . ".html";

   else echo "#";

};

?>
Если у вас тип ЧПУ-2 то:
<?php

if (($link == 'next') or ($link == 'back')) {

  include ('engine/api/api.class.php');


  $data = $dle_api->take_news ( $cat, 'id,alt_name', 0, 0, 'date', 'ASC' );


  foreach ($data as $key=>$temp) {

   $search = array_search($id, $temp);

   if ($search == true) { break; }

  }


  if ($link == 'next') $key = $key + 1;

  else $key = $key - 1;

  if ($data[$key]['id'] != '') echo "/" . $cat_info[$cat]['alt_name'] . "/" . $data[$key]['id'] . "-" . $data[$key]['alt_name'] . ".html";

   else echo "#";

};

?>
Далее в шаблон полной новости вставляем:
[catlist=14]

  <a href="{include file="engine/modules/myphp.php?link=next&cat=14&id={news-id}"}">Предыдущая</a>

  <a href="{include file="engine/modules/myphp.php?link=back&cat=14&id={news-id}"}">Следующая</a>

[/catlist]

Меняем ID категории (в моём случаи это 14) на свой.

Всё работает.

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

Или не находит следующую (выдаёт #) или вообще ничего не выдаёт.

Бывало пару раз что показывал модуль ссылку на следующую новость, но сейчас и это перестало делать.

Код в main.tpl:

ну правильно, что не работает.

я написал где подключаем? причем здесь main.tpl ?

тега {news-id} в main.tpl вообще нет

ваша беда - в вашей невнимательности

более того - работает со всеми видами чпу и с любой вложенностью категорий. единственное адрес будет не совсем правильный в этих случаях, но новость выведется. там чуть подкрутить надо, но это уже сами.

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

Или не находит следующую (выдаёт #) или вообще ничего не выдаёт. Бывало пару раз что показывал модуль ссылку на следующую новость, но сейчас и это перестало делать. Код в main.tpl:
ну правильно, что не работает. я написал где подключаем? причем здесь main.tpl ? тега {news-id} в main.tpl вообще нет ваша беда - в вашей невнимательности более того - работает со всеми видами чпу и с любой вложенностью категорий. единственное адрес будет не совсем правильный в этих случаях, но новость выведется. там чуть подкрутить надо, но это уже сами.

Да, спасибо

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

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

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

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

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

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

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

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

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

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