danielebarchiesi@0: t('Term from node'), danielebarchiesi@0: 'keyword' => 'term', danielebarchiesi@0: 'description' => t('Adds a taxonomy term from a node context; if multiple terms are selected, this will get the "first" term only.'), danielebarchiesi@0: 'required context' => new ctools_context_required(t('Node'), 'node'), danielebarchiesi@0: 'context' => 'ctools_term_from_node_context', danielebarchiesi@0: 'edit form' => 'ctools_term_from_node_settings_form', danielebarchiesi@0: 'defaults' => array('vid' => ''), danielebarchiesi@0: ); danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Return a new context based on an existing context. danielebarchiesi@0: */ danielebarchiesi@0: function ctools_term_from_node_context($context, $conf) { danielebarchiesi@0: // If unset it wants a generic, unfilled context, which is just NULL. danielebarchiesi@0: if (empty($context->data)) { danielebarchiesi@0: return ctools_context_create_empty('entity:taxonomy_term', NULL); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: if (isset($context->data->taxonomy)) { danielebarchiesi@0: foreach ($context->data->taxonomy as $term) { danielebarchiesi@0: if ($term->vid == $conf['vid']) { danielebarchiesi@0: return ctools_context_create('entity:taxonomy_term', $term); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Settings form for the relationship. danielebarchiesi@0: */ danielebarchiesi@0: function ctools_term_from_node_settings_form($form, &$form_state) { danielebarchiesi@0: $conf = $form_state['conf']; danielebarchiesi@0: danielebarchiesi@0: $options = array(); danielebarchiesi@0: foreach (taxonomy_get_vocabularies() as $vid => $vocabulary) { danielebarchiesi@0: $options[$vid] = $vocabulary->name; danielebarchiesi@0: } danielebarchiesi@0: $form['vid'] = array( danielebarchiesi@0: '#title' => t('Vocabulary'), danielebarchiesi@0: '#type' => 'select', danielebarchiesi@0: '#options' => $options, danielebarchiesi@0: '#default_value' => $conf['vid'], danielebarchiesi@0: '#prefix' => '
', danielebarchiesi@0: '#suffix' => '
', danielebarchiesi@0: ); danielebarchiesi@0: danielebarchiesi@0: return $form; danielebarchiesi@0: }