Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
I've encountered a persistent problem with views that use the "Content: Has taxonomy term ID" contextual filter. The views break with the following errors:
Notice: Undefined property: view::$view in views_plugin_argument_default_taxonomy_tid->get_argument() (line 147 of /home/user/public_html/sites/all/modules/views/modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc).
Notice: Trying to get property of non-object in views_plugin_argument_default_taxonomy_tid->get_argument() (line 147 of /home/user/public_html/sites/all/modules/views/modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc).
Notice: Trying to get property of non-object in views_plugin_argument_default_taxonomy_tid->get_argument() (line 147 of /home/user/public_html/sites/all/modules/views/modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc).
I've been able to use the attached patch to fix the problem in the past few versions; apologies for not submitting this patch earlier!
Below is an export of one of the views that triggers this problem; the problem is with the "Blog Post By Topic Page" display.
$view = new view;
$view->name = 'blog';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Blog';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Blog';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['query_comment'] = FALSE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '10';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'fields';
$handler->display->display_options['row_options']['hide_empty'] = 0;
$handler->display->display_options['row_options']['default_field_elements'] = 1;
/* Field: Content: Title */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['title']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = 0;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = 0;
$handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['title']['alter']['trim'] = 0;
$handler->display->display_options['fields']['title']['alter']['html'] = 0;
$handler->display->display_options['fields']['title']['hide_empty'] = 0;
$handler->display->display_options['fields']['title']['empty_zero'] = 0;
$handler->display->display_options['fields']['title']['link_to_node'] = 1;
/* Field: Content: Body */
$handler->display->display_options['fields']['body']['id'] = 'body';
$handler->display->display_options['fields']['body']['table'] = 'field_data_body';
$handler->display->display_options['fields']['body']['field'] = 'body';
$handler->display->display_options['fields']['body']['label'] = '';
$handler->display->display_options['fields']['body']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['body']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['body']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['body']['alter']['external'] = 0;
$handler->display->display_options['fields']['body']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['body']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['body']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['body']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['body']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['body']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['body']['alter']['trim'] = 0;
$handler->display->display_options['fields']['body']['alter']['html'] = 0;
$handler->display->display_options['fields']['body']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['body']['element_default_classes'] = 1;
$handler->display->display_options['fields']['body']['hide_empty'] = 0;
$handler->display->display_options['fields']['body']['empty_zero'] = 0;
$handler->display->display_options['fields']['body']['type'] = 'text_summary_or_trimmed';
$handler->display->display_options['fields']['body']['settings'] = array(
'trim_length' => '600',
);
$handler->display->display_options['fields']['body']['field_api_classes'] = 0;
/* Field: Content: Link */
$handler->display->display_options['fields']['view_node']['id'] = 'view_node';
$handler->display->display_options['fields']['view_node']['table'] = 'node';
$handler->display->display_options['fields']['view_node']['field'] = 'view_node';
$handler->display->display_options['fields']['view_node']['label'] = '';
$handler->display->display_options['fields']['view_node']['alter']['alter_text'] = 1;
$handler->display->display_options['fields']['view_node']['alter']['text'] = 'Read More';
$handler->display->display_options['fields']['view_node']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['view_node']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['view_node']['alter']['external'] = 0;
$handler->display->display_options['fields']['view_node']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['view_node']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['view_node']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['view_node']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['view_node']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['view_node']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['view_node']['alter']['trim'] = 0;
$handler->display->display_options['fields']['view_node']['alter']['html'] = 0;
$handler->display->display_options['fields']['view_node']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['view_node']['element_default_classes'] = 1;
$handler->display->display_options['fields']['view_node']['hide_empty'] = 0;
$handler->display->display_options['fields']['view_node']['empty_zero'] = 0;
$handler->display->display_options['fields']['view_node']['hide_alter_empty'] = 0;
/* Field: Content: Topics */
$handler->display->display_options['fields']['field_topic']['id'] = 'field_topic';
$handler->display->display_options['fields']['field_topic']['table'] = 'field_data_field_topic';
$handler->display->display_options['fields']['field_topic']['field'] = 'field_topic';
$handler->display->display_options['fields']['field_topic']['label'] = '';
$handler->display->display_options['fields']['field_topic']['exclude'] = TRUE;
$handler->display->display_options['fields']['field_topic']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['field_topic']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['field_topic']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['field_topic']['alter']['external'] = 0;
$handler->display->display_options['fields']['field_topic']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['field_topic']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['field_topic']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['field_topic']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['field_topic']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['field_topic']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['field_topic']['alter']['trim'] = 0;
$handler->display->display_options['fields']['field_topic']['alter']['html'] = 0;
$handler->display->display_options['fields']['field_topic']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_topic']['element_default_classes'] = 1;
$handler->display->display_options['fields']['field_topic']['hide_empty'] = 0;
$handler->display->display_options['fields']['field_topic']['empty_zero'] = 0;
$handler->display->display_options['fields']['field_topic']['hide_alter_empty'] = 0;
$handler->display->display_options['fields']['field_topic']['field_api_classes'] = 0;
/* Sort criterion: Content: Post date */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
$handler->display->display_options['sorts']['created']['granularity'] = 'minute';
/* Contextual filter: Content: Topics (field_topic) */
$handler->display->display_options['arguments']['field_topic_tid']['id'] = 'field_topic_tid';
$handler->display->display_options['arguments']['field_topic_tid']['table'] = 'field_data_field_topic';
$handler->display->display_options['arguments']['field_topic_tid']['field'] = 'field_topic_tid';
$handler->display->display_options['arguments']['field_topic_tid']['default_argument_type'] = 'fixed';
$handler->display->display_options['arguments']['field_topic_tid']['summary']['format'] = 'default_summary';
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 0;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Content: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
'blog' => 'blog',
);
/* Display: Blog Posts by Month Block */
$handler = $view->new_display('block', 'Blog Posts by Month Block', 'block_1');
$handler->display->display_options['defaults']['title'] = FALSE;
$handler->display->display_options['title'] = 'Blog Archive';
$handler->display->display_options['defaults']['pager'] = FALSE;
$handler->display->display_options['pager']['type'] = 'some';
$handler->display->display_options['pager']['options']['items_per_page'] = '3';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['defaults']['arguments'] = FALSE;
/* Contextual filter: Content: Updated year + month */
$handler->display->display_options['arguments']['changed_year_month']['id'] = 'changed_year_month';
$handler->display->display_options['arguments']['changed_year_month']['table'] = 'node';
$handler->display->display_options['arguments']['changed_year_month']['field'] = 'changed_year_month';
$handler->display->display_options['arguments']['changed_year_month']['default_action'] = 'summary';
$handler->display->display_options['arguments']['changed_year_month']['default_argument_type'] = 'fixed';
$handler->display->display_options['arguments']['changed_year_month']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['changed_year_month']['summary']['sort_order'] = 'desc';
$handler->display->display_options['arguments']['changed_year_month']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['changed_year_month']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['changed_year_month']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['changed_year_month']['specify_validation'] = 1;
/* Display: Blog posts by month page */
$handler = $view->new_display('page', 'Blog posts by month page', 'page_1');
$handler->display->display_options['defaults']['title'] = FALSE;
$handler->display->display_options['title'] = 'Blog posts by month';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['row_plugin'] = 'node';
$handler->display->display_options['row_options']['links'] = 1;
$handler->display->display_options['row_options']['comments'] = 0;
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['arguments'] = FALSE;
/* Contextual filter: Content: Updated year + month */
$handler->display->display_options['arguments']['changed_year_month']['id'] = 'changed_year_month';
$handler->display->display_options['arguments']['changed_year_month']['table'] = 'node';
$handler->display->display_options['arguments']['changed_year_month']['field'] = 'changed_year_month';
$handler->display->display_options['arguments']['changed_year_month']['default_action'] = 'summary';
$handler->display->display_options['arguments']['changed_year_month']['title_enable'] = 1;
$handler->display->display_options['arguments']['changed_year_month']['title'] = 'Blog: %1';
$handler->display->display_options['arguments']['changed_year_month']['default_argument_type'] = 'fixed';
$handler->display->display_options['arguments']['changed_year_month']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['changed_year_month']['summary']['sort_order'] = 'desc';
$handler->display->display_options['arguments']['changed_year_month']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['changed_year_month']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['changed_year_month']['summary_options']['base_path'] = 'blog/archive';
$handler->display->display_options['arguments']['changed_year_month']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['changed_year_month']['specify_validation'] = 1;
$handler->display->display_options['path'] = 'blog/archive/%';
/* Display: Blog post by topic block */
$handler = $view->new_display('block', 'Blog post by topic block', 'block');
$handler->display->display_options['defaults']['title'] = FALSE;
$handler->display->display_options['title'] = 'Blog posts by topic';
$handler->display->display_options['defaults']['pager'] = FALSE;
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['row_plugin'] = 'node';
$handler->display->display_options['row_options']['links'] = 0;
$handler->display->display_options['row_options']['comments'] = 0;
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['relationships'] = FALSE;
/* Relationship: Content: Taxonomy terms on node */
$handler->display->display_options['relationships']['term_node_tid']['id'] = 'term_node_tid';
$handler->display->display_options['relationships']['term_node_tid']['table'] = 'node';
$handler->display->display_options['relationships']['term_node_tid']['field'] = 'term_node_tid';
$handler->display->display_options['defaults']['sorts'] = FALSE;
/* Sort criterion: Content: Post date */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
$handler->display->display_options['defaults']['arguments'] = FALSE;
/* Contextual filter: Content: Has taxonomy term ID */
$handler->display->display_options['arguments']['tid']['id'] = 'tid';
$handler->display->display_options['arguments']['tid']['table'] = 'taxonomy_index';
$handler->display->display_options['arguments']['tid']['field'] = 'tid';
$handler->display->display_options['arguments']['tid']['default_action'] = 'summary';
$handler->display->display_options['arguments']['tid']['default_argument_type'] = 'fixed';
$handler->display->display_options['arguments']['tid']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['tid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['tid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['tid']['summary_options']['base_path'] = 'blog/topic';
$handler->display->display_options['arguments']['tid']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['tid']['break_phrase'] = 0;
$handler->display->display_options['arguments']['tid']['add_table'] = 0;
$handler->display->display_options['arguments']['tid']['require_value'] = 0;
$handler->display->display_options['arguments']['tid']['reduce_duplicates'] = 0;
$handler->display->display_options['arguments']['tid']['set_breadcrumb'] = 0;
$handler->display->display_options['defaults']['filters'] = FALSE;
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 0;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Content: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
'blog' => 'blog',
);
/* Filter criterion: Taxonomy term: Vocabulary */
$handler->display->display_options['filters']['vid']['id'] = 'vid';
$handler->display->display_options['filters']['vid']['table'] = 'taxonomy_term_data';
$handler->display->display_options['filters']['vid']['field'] = 'vid';
$handler->display->display_options['filters']['vid']['relationship'] = 'term_node_tid';
$handler->display->display_options['filters']['vid']['value'] = array(
3 => '3',
);
/* Display: Blog Post By Topic Page */
$handler = $view->new_display('page', 'Blog Post By Topic Page', 'page');
$handler->display->display_options['defaults']['title'] = FALSE;
$handler->display->display_options['title'] = 'Blog posts by topic';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['row_plugin'] = 'node';
$handler->display->display_options['row_options']['links'] = 1;
$handler->display->display_options['row_options']['comments'] = 0;
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['arguments'] = FALSE;
/* Contextual filter: Content: Has taxonomy term ID */
$handler->display->display_options['arguments']['tid']['id'] = 'tid';
$handler->display->display_options['arguments']['tid']['table'] = 'taxonomy_index';
$handler->display->display_options['arguments']['tid']['field'] = 'tid';
$handler->display->display_options['arguments']['tid']['default_action'] = 'summary';
$handler->display->display_options['arguments']['tid']['title_enable'] = 1;
$handler->display->display_options['arguments']['tid']['title'] = 'Blog: %1';
$handler->display->display_options['arguments']['tid']['default_argument_type'] = 'fixed';
$handler->display->display_options['arguments']['tid']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['tid']['summary']['number_of_records'] = '1';
$handler->display->display_options['arguments']['tid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['tid']['summary_options']['base_path'] = 'blog/topic';
$handler->display->display_options['arguments']['tid']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['tid']['specify_validation'] = 1;
$handler->display->display_options['arguments']['tid']['break_phrase'] = 0;
$handler->display->display_options['arguments']['tid']['add_table'] = 0;
$handler->display->display_options['arguments']['tid']['require_value'] = 0;
$handler->display->display_options['arguments']['tid']['reduce_duplicates'] = 0;
$handler->display->display_options['arguments']['tid']['set_breadcrumb'] = 0;
$handler->display->display_options['path'] = 'blog/topic/%';
/* Display: Blog Posts */
$handler = $view->new_display('page', 'Blog Posts', 'page_2');
$handler->display->display_options['defaults']['title'] = FALSE;
$handler->display->display_options['title'] = 'Blog';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['row_plugin'] = 'node';
$handler->display->display_options['row_options']['links'] = 1;
$handler->display->display_options['row_options']['comments'] = 0;
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['arguments'] = FALSE;
$handler->display->display_options['path'] = 'blog';
$handler->display->display_options['menu']['type'] = 'normal';
$handler->display->display_options['menu']['title'] = 'Blog';
$handler->display->display_options['menu']['weight'] = '0';
$handler->display->display_options['menu']['name'] = 'main-menu';
Comment | File | Size | Author |
---|---|---|---|
views-taxonomy-tid.patch | 789 bytes | jackalope | |
Comments
Comment #1
dawehnerThanks for reporting it and making a patch.
"Sadly" this is already fixed with #1230306: Block view with tid contextual filter doesn't inherit the page view's argument so it's availible in the current DEV version already.
Comment #2
jackalope CreditAttribution: jackalope commentedHi dereine – I created the patch against the most recent dev version on September 27; the problem was still happening with that version. I just tested with today's dev version and the problem still exists; here is the problem code that still exists in views_plugin_argument_default_taxonomy_tid.inc:
My patch still applies cleanly to the newest dev version and fixes this problem; it changes the " $views_page->view->argument['tid']->argument;" to "$views_page->argument['tid']->argument;".
I think the other issue & patch were solving a different problem.
Comment #3
dawehnerOh i see, ... the problem was that the patch didn't applied via patch -p1 or patch -p0 so i thought the patch was already applied.
Thanks! Just commited to 7.x-3.x
Comment #4
jackalope CreditAttribution: jackalope commentedAh! Sorry about that; I'm using the patch creation method described here but maybe that's not best? Glad the patch works, thanks for committing it!
Comment #5
dawehnerWell you should probably check out views as an extra git clone to make patches against it.
Then use this patches in your main project.