ВопросНепростая перелинковка нод в Drupal 7

Здравствуйте. Второй день ломаю голову над задачей по перелинковке статей, может подскажете вариант решения. Суть в том, что надо вывести после статьи 3 тизера с тайтлами и краткими новостями (summary) в рамках одного словаря и одного термина. Т.е., к примеру, статья была о лесных бегемотах в рамках словаря "животные" и термина "бегемоты", то после нее должны идти 3 ссылки с тизерами на 3 статьи из этого же термина ("пещерные бегемоты", "летающие бегемоты", "бегемоты киборги"), но с условием, что ID нод этих трех статей будет увеличиваться или уменьшаться относительно ID текущей ноды.

На буржуйском drupal.org нашел такую рекомендацию:

[quote]This is how it goes in D7, with Views 7.x-3.x:

1. Create view (block)
2. Add fields, or use teasers, what works as well.
3. "Arguments" is from now on called "Contextual filters" , so go there.
4. Add the filter: "Content: Has taxonomy term ID"
5. Configuration on this filter:
-> When the filter value is NOT in the URL: -> Provide default value
-> Type: Taxonomy Term ID from URL
-> under that, check the box "Load default filter from node page, that's good for related taxonomy blocks."
-> now check the boxes of the taxonomies you want involved here

That's that. Save your view, display the block on the page where you'd like to see it and it should be there.
However, the current node will be one of the Related Items. You might not want that, so:

6. Now you need to add the second filter in order to exclude the current node from the list. Click [+] button of the contextual filters section.
7. Select Content: Nid
8. Set the 'When the filter value is NOT in the URL' to 'Provide default argument'
9. Set the 'Default argument type' to 'Content ID from URL'
10. Go to "MORE" , and check the "Exclude" box.
11. Don't forget to embed the block on your node pages
12. Save your view[/quote]
... но в данном случае во вьюхе все равно выводятся ссылки на последние или первые 3 статьи, независимо от ID текущей ноды (у меня URL прописаны как ЧПУ, т.е. без номера ID). Не могли бы вы подсказать, как добиться нужного результата?

Комментарии

Аватар пользователя Spleshka
Spleshka написал:

Почти всё понятно, кроме момента "но с условием, что ID нод этих трех статей будет увеличиваться или уменьшаться относительно ID текущей ноды.". Поясните это и я вам напишу решение.

02.12.2011 22:53
Аватар пользователя Danbo
Danbo написал:

Читатель открывает ноду, допустим, с ID=10, и тогда в конце статьи должны идти ссылки на ноды с ID 9,8,7 или 11, 12, 13 (без разницы, в принципе). Хотя, если в других словарях таксономии и терминах создается нода и ей присваивается ID = 8, которого раньше не было в термине "бегемоты", то та же нода с ID 10 уже должна ссылаться на ноды ID 9, 7, 6.

Надеюсь, понятно объяснил. Был бы признателен за вашу помощь.

02.12.2011 23:06
Аватар пользователя Spleshka
Spleshka написал:

Получается такой запрос из бд:

$tid = $node->field_tags['und'][0]['tid'];
$result = db_query_range('
  SELECT n.nid FROM {node} n 
  INNER JOIN {field_data_field_tags} fdft ON fdft.entity_id = n.nid 
  WHERE fdft.field_tags_tid = :tid AND n.nid > :nid 
  ORDER BY n.nid ASC', 0, 3, array(':tid' => $tid, ':nid' => $node->nid)
);
foreach ($result as $row) {
  // Загружаем ноды по полученным nid
  $node = node_load($row->nid);
  print l($node->title, 'node/' . $node->nid);
}

Здесь поле field_tags везде надо заменить на имя поля, в котором содержится ваша таксономия (с бегемотами).

Этот вариант выводит ссылки на заголовки нод. При желании вы можете вывести любое значени из ноды (т.к. функцией node_load() нода загружается полностью).

03.12.2011 13:47
Аватар пользователя Serik
Serik написал:

Не работает. И в блок вставлял и в ноду, не пашет(

06.08.2012 19:27
Аватар пользователя Danbo
Danbo написал:

О, спасибо большое!

04.12.2011 00:13
Аватар пользователя Garese
Garese написал:

Все хорошо, но если адреса формирует pathauto и Drupal 6, и как достать картинку из из поля CCK для каждой ноды?

01.01.2012 00:43
Аватар пользователя Светлана
Светлана написал:

Спасибо, все отлично работает. А можно как-то доработать, чтобы получилась кольцевая перелинковка. То есть необходимо, чтобы статья, которая не имеет предыдущих записей ссылалась на последние записи.

Вот тут есть решение, но оно для вордпреса.
http://wp-kama.ru/id_50/perelinkovka-statey-predyiduschie-zapisi.html

14.08.2012 15:22
Аватар пользователя Serg Kunis
Serg Kunis написал:

Дядька, а не поможешь такое вставить во вьюху, чтобы отображать все в более приемлемом и поддающемся персонализации виде?
Ну очень нужно! Буду премного благодарен!

05.04.2013 17:35
Аватар пользователя Serg Kunis
Serg Kunis написал:

И надо ссылки на предыдущие ноды :(

05.04.2013 17:42
Аватар пользователя Andy
Andy написал:

А в какой файл нужно вставлять этот запрос?

14.05.2013 14:29

Комментировать