Я делал это раньше на D6, где в основном я просто создаю пару файлов шаблона tpl.php для моего View-1.
Внутри моего шаблона View-1 для Display Output (views-view--default.tpl.php в D7 сейчас) Я бы просто программно нашел значение, переданное или возвращенное View-1 для этой строки.
В вашем случае в каждой строке вы будете проверять, какой узел возвращается View-1, а затем я добавлю код в шаблон View-1 для программной загрузки View-2 на основе текущей строки View-1 (т. Е. Узла в вашем случае.)
Имеет смысл?5 месяцев с опозданием на ответ, но я искал переподготовку и смотрел, есть ли лучший способ сделать это сейчас в D7.
ОБНОВЛЕНИЕ :Только что сделал это на моей новой установке D7.В качестве примера я объясню, как это связано с моей реализацией Ubercart.
У Ubercart, при установке, есть главная страница «домашнего» магазина, расположенная по адресу mysite.com/catalog
Эта страница при загрузке, вызывает представление, созданное Ubercart, с именем uc_catalog_terms
.Это представление на основе таксономии, и все, что он делает, - это захватывает все категории таксономии каталога и отображает их.
Например
Как магазин одежды, когда вы переходите к mysite.com/catalog
, все, что вам нужнона этой странице вы увидите структуру сетки, такую как:
свитера, рубашки, джинсы
Мое требование состояло в том, что мне нужно было показать категории / термины каталога магазина на этой странице, но ТАКЖЕ показать 3 случайных продукта (изображения) из этой категории / термина ниже каждой категории каталога.
Например
Свитера
Случайный свитер № 1 - Случайный свитер № 2 - Случайный свитер #3
Джинсы
Случайный Жан # 1 - Случайный Жан № 2 - Случайный Жан # 3
Как это достигается?
Я создал свой собственный брендновый пользовательский вид (без страницы или блокировки, только по умолчанию), который захватывает 3 случайных изображения товара на основе аргумента идентификатора таксономического термина и отображает 3 связанных изображения товара.Я назову этот пользовательский вид random_catalog_items
.Если 15
является идентификатором термина для свитеров, то при вызове этого представления с аргументом 15
будет отображаться только 3 случайно связанных изображения продуктов свитера.
Теперь я вернулся к представлению uc_catalog_terms
и создалфайл шаблона views-view-fields--uc-catalog-terms.tpl.php
(вывод в виде строки).
ВЕРСИЯ ДАННОГО ВИДА ЭТОГО ФАЙЛА (ПЕРЕД МОДИФИКАЦИЕЙ):
<?php foreach ($fields as $id => $field): ?>
<?php if (!empty($field->separator)): ?>
<?php print $field->separator; ?>
<?php endif; ?>
<?php print $field->wrapper_prefix; ?>
<?php print $field->label_html; ?>
<?php print $field->content; ?>
<?php print $field->wrapper_suffix; ?>
<?php endforeach; ?>
ИЗМЕНЕННАЯ ВЕРСИЯ СТАНОВИТСЯ:
<?php foreach ($fields as $id => $field): ?>
<?php if (!empty($field->separator)): ?>
<?php print $field->separator; ?>
<?php endif; ?>
<?php print $field->wrapper_prefix; ?>
<?php print $field->label_html; ?>
<?php
$title = str_replace('/','-',strtolower($field->raw));
print '<img src="'.drupal_get_path('theme','my_theme').'/images/catalog/'.$title.'-header.png" />';
print '<hr style="width: 100%; background: #000; height: 2px; margin-top: 3px;"/>';
// get the taxonomy term ID
$tid = $row->tid;
// render the 3 random items
if ($random_products = views_get_view('random_catalog_items' )) {
print $random_products->execute_display('default', array($tid));
}
?>
<?php print $field->wrapper_suffix; ?>
<?php endforeach; ?>
Итак, как вы можете видеть в первом представлении, для каждой отображаемой строки я получаю текущий идентификатор термина таксономии, показываемый через доступный объект результата строки - $row->tid
, а затем я просто вызываю свое созданное представление для каждой строки., передавая этот термин ID в качестве аргумента для него.Я оставляю там много кода по умолчанию, но в моих конфигурациях вида LABELS и т. Д. Установлены на HIDDEN , поэтому они даже не отображаются в любом случае.
В вашем случае это должно бытьочень легко приспосабливаемый, чтобы просто передать NID узла вместо ID термина таксономии.
VOILA, ЭТО ВСЕ РАБОТАЕТ!Посмотреть в представлении!Надеюсь, это поможет:)
Это поможет загрузить модуль Devel с тех пор, внутри этих шаблонов просмотра вы можете отлаживать и видеть, какие переменные доступны вам через что-то вроде print krumo($row)
.