Добавление ссылок на предыдущий и следующий материал (определеной категории)

Здравствуте как мне реализовать ссылок на предыдущий и следующий материал (внутри материала в котором я нахожусь).

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

Допустим я нахожусь в полной новсти Котеджи это новость котороя относится к категория Котеджи еще у меня есть новстисть в катигориях Бани, Дачние дома, Беседки.

Вот мне нужно если новсть в категории Котеджи то ссылки чтобы создавались именно из категории Котеджи а не все категории.

Коментувати

Увійдіть або зареєструйтесь, щоб додати коментар

Коментарі

Суть очень проста:
1. в template.php сделать 2 функции по выборке следующего и предыдущего значения через запрос MYSQL
2. Сделать ссылку с помощью функции l() и сохранить ее в переменную шаблоне
3. в шаблоне вывести в нужном месте

http://drupal.org/node/35464 целый раздел с кодом

http://drupal.org/node/37767
http://gerardmcgarry.com/blog/displaying-a-previous-next-post-link-your-...

Мне нужно чтобы ети ссылки работали вот так.
Если я в категории Котеджи то толжно с этой категории брать новости и формировать ссылки а не со всех категорий

в запросе указать
WHERE type = '%s'", $node->type

Я темизирую тип матеиала вот как называется мой файл node-cottages.tpl.php какую мне нужно создать функцию в template.php чтобы я мог сделать эти ссылки к моему типу материалов

Вот есть подробная статья http://iflight.su/blog/listaem-nody-v-drupal-7
Единственное что мне не нравится, это вызов функций из шаблона, я предпочитаю в темизации определить значения и поместить их в переменные. Но в данном случае и так и так правильно

function next_page_link($node){
$next_nid = db_query("
SELECT nid FROM {node}
WHERE created > :created AND type = :type AND status = 1
LIMIT 1",
array(':created' => $node->created,':type' => $node->type))
->fetchObject();
if($next_nid) {
return '/'.drupal_get_path_alias('node/'.$next_nid->nid);
}
else {
return false;
}
}

сдесь ошибка array(':created' => $node->created,':type' => $node->type))
->fetchObject();
вот это както странно подключаеться ->fetchObject() и как это подправить

В Друпал 6 запросы нужно переделать. Идея та же, но синтаксис другой.
Вот есть сайт http://xandeadx.ru/blog/drupal/88 с описанием различий

и у меня 6 друпал

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

Решение для 6 версии друпала
переправил под 6 версию

function next_page_link($node){
$next_nid = db_query("SELECT nid FROM {node} WHERE created > '%s' AND type = '%s' AND status = 1 LIMIT 1", $node->created, $node->type );
$rez = db_fetch_object($next_nid);
if($next_nid)
return '/'.drupal_get_path_alias('node/'.$rez->nid);
else
return false;
}
function previous_page_link($node){
$next_nid = db_query("SELECT nid FROM {node} WHERE created < '%s' AND type = '%s' AND status = 1 ORDER BY created DESC LIMIT 1", $node->created, $node->type);
$rez = db_fetch_object($next_nid);
if($next_nid)
return '/'.drupal_get_path_alias('node/'.$rez->nid);
else
return false;
}