List terms assigned to node

BWPanda - June 11, 2009 - 23:37
Project:Panels
Version:6.x-3.2
Component:Miscellaneous
Category:support request
Priority:normal
Assigned:Unassigned
Status:closed
Description

I've setup a panel that overrides one of my content type node views. I'm now trying to display all node fields in the panel, but am having trouble getting assigned taxonomy terms to display...

I've tried using a 'term from node' relationship, but that only allows me to display 'related terms' or the 'term description'. I also tried using a 'taxonomy vocabulary' context, but that displays all terms, not just the ones assigned to each node. Finally, I looked at using the 'taxonomy term' context, but it wants me to select a specific term, which seems to defeat the purpose...

Is this possible yet in this version of panels, and if so, what am I missing?

#1

BWPanda - June 15, 2009 - 04:39
Title:Display assigned terms in Node View override» List terms assigned to node

Found an old issue I had previously submitted, marked as duplicate of this one (#396880: List node's taxonomy terms).

#2

crea - June 15, 2009 - 09:07

I think custom CTools content needs to be implemented for this to work. You can contribute to community working this out, I believe this is very common needed feature.
In case you gonna do it, implement vocabulary selector also, such as:
Display terms from vocabulary: all, $vocab1, $vocab2, $vocab3, ... etc (multiple checkboxes)
This will be very useful

#3

julma - October 21, 2009 - 17:07

I had the same problem.

I decided to use : http://drupal.org/project/content_taxonomy

Thanks to this module, Taxonomy fields become CCK fields. Then the integration with Panel is made simple.

Hope it can help...

#4

mairav - October 27, 2009 - 20:08

I need this too but I don't know much of programming to help. Did anyone found another way that doesn't need another module to be installed?

#5

merlinofchaos - October 27, 2009 - 20:22

You can use a view:

<?php
$view
= new view;
$view->name = 'terms_for_node';
$view->description = 'List the terms for a node';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
 
'tid' => array(
   
'label' => 'All terms',
   
'alter' => array(
     
'alter_text' => 0,
     
'text' => '',
     
'make_link' => 0,
     
'path' => '',
     
'link_class' => '',
     
'alt' => '',
     
'prefix' => '',
     
'suffix' => '',
     
'target' => '',
     
'help' => '',
     
'trim' => 0,
     
'max_length' => '',
     
'word_boundary' => 1,
     
'ellipsis' => 1,
     
'strip_tags' => 0,
     
'html' => 0,
    ),
   
'empty' => '',
   
'hide_empty' => 0,
   
'empty_zero' => 0,
   
'type' => 'separator',
   
'separator' => ', ',
   
'link_to_taxonomy' => 1,
   
'limit' => 0,
   
'vids' => array(
     
'2' => 0,
     
'3' => 0,
     
'1' => 0,
    ),
   
'exclude' => 0,
   
'id' => 'tid',
   
'table' => 'term_node',
   
'field' => 'tid',
   
'relationship' => 'none',
  ),
));
$handler->override_option('arguments', array(
 
'nid' => array(
   
'default_action' => 'not found',
   
'style_plugin' => 'default_summary',
   
'style_options' => array(),
   
'wildcard' => 'all',
   
'wildcard_substitution' => 'All',
   
'title' => '',
   
'breadcrumb' => '',
   
'default_argument_type' => 'fixed',
   
'default_argument' => '',
   
'validate_type' => 'none',
   
'validate_fail' => 'not found',
   
'break_phrase' => 0,
   
'not' => 0,
   
'id' => 'nid',
   
'table' => 'node',
   
'field' => 'nid',
   
'validate_user_argument_type' => 'uid',
   
'validate_user_roles' => array(
     
'2' => 0,
     
'3' => 0,
     
'4' => 0,
    ),
   
'relationship' => 'none',
   
'default_options_div_prefix' => '',
   
'default_argument_user' => 0,
   
'default_argument_fixed' => '',
   
'default_argument_php' => '',
   
'validate_argument_node_type' => array(
     
'blog' => 0,
     
'poll' => 0,
     
'panel' => 0,
     
'article' => 0,
     
'character' => 0,
     
'page' => 0,
     
'skill' => 0,
     
'story' => 0,
     
'type_a' => 0,
     
'type_b' => 0,
     
'type_c' => 0,
     
'uprofile' => 0,
    ),
   
'validate_argument_node_access' => 0,
   
'validate_argument_nid_type' => 'nid',
   
'validate_argument_vocabulary' => array(
     
'2' => 0,
     
'3' => 0,
     
'1' => 0,
    ),
   
'validate_argument_type' => 'tid',
   
'validate_argument_transform' => 0,
   
'validate_user_restrict_roles' => 0,
   
'validate_argument_php' => '',
  ),
));
$handler->override_option('access', array(
 
'type' => 'none',
));
$handler->override_option('cache', array(
 
'type' => 'none',
));
?>

There's lots of tweaking you can do there to control how the terms are displayed, what vocabularies to show, etc.

#6

merlinofchaos - October 27, 2009 - 20:22
Status:active» fixed

#7

System Message - November 10, 2009 - 20:30
Status:fixed» closed

Automatically closed -- issue fixed for 2 weeks with no activity.

#8

julma - December 2, 2009 - 13:10
Version:6.x-3.0-beta2» 6.x-3.2

Thanks for the View.

The first tweaking I needed, was to list terms by vocabulary like this :
"Name Vocalbulary 1" : Term1, Term 2...
"Name Vocabulary 2" : Term 3, Term4...

For this I ve added several times the same field "Taxonomy term" and restrict the terms listed to each vocabulary.

And it works fine.

Could be interesting to share some ways to tweak this views "terms for node".

For example, when I have time, I think I will try to use this plugin for views also :http://drupal.org/project/views_cloud

 
 

Drupal is a registered trademark of Dries Buytaert.