[РЕШЕНО]Прошу помощи в доработке сниппета вывода похожих материалов

Главные вкладки

Аватар пользователя Jluzya Jluzya 9 июля 2014 в 23:48

Всем привет, народ, прошу вашей помощи. есть сниппет (попробовал собрать из кусков, которые нашёл в инете, в похожих темах). Есть термин с id 12, есть отдельная страница(созданная через файл node--14.tpl). При создание материала можно выбрать соответствующий термин. Собственно, что должен делать код: выводить анонс данного материала на странице node--14, термин которого должен = 12
В друпале на стадии "Учусь", "практикуюсь", не бейте если что)

<?php
$sql_query 
db_select('node''n');
  
$sql_query->fields('n', array('nid''title'));          
  
$sql_query->leftJoin('taxonomy_index''ti''n.nid = ti.nid');
  
$sql_query->condition('n.type'$variables['type']);
  
$sql_query->condition('n.status'NODE_PUBLISHED);
  
$sql_query->condition('ti.tid'12'IN');
  
$sql_query->condition('n.nid'$variables['nid'], '<>');
  
$sql_query->groupBy('n.nid');
  
$sql_query->orderBy('n.created''DESC');
  
$sql_query->range(05); 
 
foreach (
$sql_query as $row) {
    print 
drupal_render(node_view(node_load($row->nid),'teaser'));
}
?>

Ошибок никаких не выдаёт, но и результат не показывает( не получается ничего предпринять чтобы дало результат...

Комментарии

Аватар пользователя whiesam whiesam 10 июля 2014 в 1:00

Нифига не понятно написал. Давай по новой.
Тебе надо чтобы в ноде выводились тизеры нод с теми же терминами таксономии. Или другая логика? Опиши.

Аватар пользователя Jluzya Jluzya 10 июля 2014 в 11:56

2 ttenz, это чуть не то, в вашем варианте выводит 3 ссылки похожих материала в открытой ноде

2 whiesam, давай по новой) смотри. Возьмем такой пример, имеется поле при создание материала, например, разработчик (выборка из списка словаря; видно только при создание материала; во фронтенде не показывается, так что нажать на него нельзя...), есть анонс этого материала, есть страница на которой, через сниппет, надо вывести эти анонсы материалов основываясь на определенном термине из словаря. Сниппет вверху)

Аватар пользователя Jluzya Jluzya 10 июля 2014 в 12:30

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

Аватар пользователя Jluzya Jluzya 10 июля 2014 в 13:03

2 Lotar, why?
я думаю, что вывести анонсы материала по определенному термину для друпала это не проблема, просто я не могу понять как(

Аватар пользователя Lotar Lotar 10 июля 2014 в 13:55

Вам же объяснили, если не умеете программить используйте drupal way. То есть то что уже создано до(для) вас. Модуль views берем и не паримся.

Аватар пользователя drupby drupby 10 июля 2014 в 14:01

"Jluzya" wrote:
$variables['type']

"Jluzya" wrote:
$variables['nid']

откуда взята переменная $variables?
зачем в данном запросе группировка и зачем использовать оператор IN ?

что нужно сделать я так и не понял - выводить внутри шаблона ноды тизеры на ноды, которые ссылаются на определенный термин?

Аватар пользователя drupby drupby 10 июля 2014 в 14:14
$query = db_select('node', 'n');
$query->fields('n', array('nid'));          
$query->join('taxonomy_index', 'ti', 'n.nid = ti.nid');
$query->condition('n.type', $node->type);
$query->condition('n.status', NODE_PUBLISHED);
$query->condition('ti.tid', 12);
$query->condition('n.nid', $node->nid, '<>');
$query->orderBy('n.created', 'DESC');
$query->range(0, 5);

$result = $query->execute();
 
foreach ($result as $row) {
  print drupal_render(node_view(node_load($row->nid),'teaser'));
}

но только такие сниппеты не для вставки в шаблон

Аватар пользователя drupby drupby 10 июля 2014 в 14:49

"Jluzya" wrote:
А скажи плз почему этот снипп на для вставки в шаблон? что ему не хватает?

потому что в шаблонах выводятся только уже сформированные переменные, а такая логика либо выносится в препроцесс, либо формируется и выводится в блоке