2010-12-16 2 views
1

Предположим, у меня есть два типа контента, предложения и действия. Предложение будет содержать несколько действий, но действия также должны быть доступны для просмотра независимо. Каждый из них будет содержать несколько текстовых полей и ссылок.В Drupal, как я могу включить один узел в другой?

Должны ли оба предложения и действия быть узлами? Как мне это сделать?

ответ

3

Внутри нет родительских/детских отношений в drupal. Вы можете создавать такие вещи, используя ссылку узла CCK и некоторые креативные представления.

+0

Хорошо, что я буду снимать, это общее предложение будет распечатывать текст описания действия. Думаю, я изучу комбо CCK/view. – samoz 2010-12-16 04:04:00

+0

Единственное предостережение от нодеремента состоит в том, что вы можете только просверлить один слой внутри представления. Если у вас есть дети детей, которых нужно найти в представлении, вам нужно что-то написать. – 2010-12-16 13:17:15

0

Попробуйте использовать отображение блоков Views. Вам нужно создать отображение блока для представления, которое отображает все (или насколько они вам нужны). Узлы действий, связанные с соответствующим узлом предложения. Вам нужно будет установить аргумент вида примерно так: Nid - указать аргумент по умолчанию - идентификатор узла от URL). А затем присоедините этот блок к страницам, которые представляют ваши страницы предложений.

2

Есть несколько способов сделать это, как и большинство вещей в Drupal, но если бы это было мне, я бы это сделать:

  1. отношения узла сборки в ССК
  2. Нагрузка «ребенка "т.е. связанного узла с node_load() в файле шаблон
  3. Вытащите немного вы хотите из вновь загруженного узла и распечатать его в„“родительского узле

Edit: да, они оба должны быть узлами ,

Если вы используете этот метод, то после его установки вы должны будете войти в свои предложения и выбрать, какие действия вы хотите «содержать» (т. Е. Связаны с).

Затем распечатать их вы хотите какой-то код, похожий на

<?php 
$actions = $node->field_name_of_your_actions_link_field; 

foreach($actions as $action){ 
    $anAction = node_load($action[nid]); 
    $output .= $anAction->the_bit_you_need_to_get[0][content]; 
} 
?> 

Конечно имена переменных будут отличаться, но, надеюсь, это будет указывать вам в правильном направлении

0

Вы смотрели в модуль Views? Он чрезвычайно устойчив и позволяет отображать практически все.

Если вы используете представления, вы сделаете что-то похожее на это: два типа контента и словарь таксономии, чтобы связать действия с предложениями (поэтому поместите поле сложения в поле типа контента действий).

Затем вы должны создать представление страницы, которое будет фильтровать по предложению типа контента. Вы могли бы добавить все поля из предложения и заказать их и сделать свой css, чтобы они отображали, как вы хотите.

Тогда у вас будет другой вид, на этот раз блок, и это приведет к отображению ваших действий, поэтому вы будете фильтровать этот тип контента. Затем вы добавите контекстный фильтр, чтобы получить таксономию загруженного вами узла. После того, как вы отобразите этот блок на страницах заявки, он должен показать ссылки для своих действий.

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

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

Смежные вопросы