Hello everyone,

i'm finding it a little difficult to add more than one taxonomy library as a filter for my isotope view.

I can only get one of the libraries to work, and i have no idea what (and if) i'm doing something wrong.

I'm using a view with two separate filters in the header, one for tags, and the other one for location (both are taxonomy libraries).

This is the code from my main view:

$view = new view();
$view->name = 'clone_de_isotope_example';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Clone de isotope_example';
$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'] = 'Portfolio';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'mais';
$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['exposed_form']['options']['submit_button'] = 'Aplicar';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Reiniciar';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Ordenar por';
$handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'Ascendente';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Descendente';
$handler->display->display_options['pager']['type'] = 'some';
$handler->display->display_options['pager']['options']['items_per_page'] = '0';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['style_plugin'] = 'isotope';
$handler->display->display_options['row_plugin'] = 'fields';
/* Cabeçalho: Global: View area */
$handler->display->display_options['header']['view_1']['id'] = 'view_1';
$handler->display->display_options['header']['view_1']['table'] = 'views';
$handler->display->display_options['header']['view_1']['field'] = 'view';
$handler->display->display_options['header']['view_1']['view_to_insert'] = 'isotope_example_filter_block:default';
/* Cabeçalho: Global: View area */
$handler->display->display_options['header']['view']['id'] = 'view';
$handler->display->display_options['header']['view']['table'] = 'views';
$handler->display->display_options['header']['view']['field'] = 'view';
$handler->display->display_options['header']['view']['label'] = 'Categorias';
$handler->display->display_options['header']['view']['view_to_insert'] = 'filterblock_paises:default';
/* Campo: Conteúdo: 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']['exclude'] = TRUE;
$handler->display->display_options['fields']['body']['element_label_colon'] = FALSE;
/* Campo: Conteúdo: Slide Image */
$handler->display->display_options['fields']['field_basic_page_image']['id'] = 'field_basic_page_image';
$handler->display->display_options['fields']['field_basic_page_image']['table'] = 'field_data_field_basic_page_image';
$handler->display->display_options['fields']['field_basic_page_image']['field'] = 'field_basic_page_image';
$handler->display->display_options['fields']['field_basic_page_image']['label'] = '';
$handler->display->display_options['fields']['field_basic_page_image']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_basic_page_image']['click_sort_column'] = 'fid';
$handler->display->display_options['fields']['field_basic_page_image']['type'] = 'colorbox';
$handler->display->display_options['fields']['field_basic_page_image']['settings'] = array(
  'colorbox_node_style' => 'portfolios_thumb',
  'colorbox_image_style' => 'large',
  'colorbox_gallery' => 'post',
  'colorbox_gallery_custom' => '',
  'colorbox_caption' => 'auto',
  'colorbox_caption_custom' => '',
);
$handler->display->display_options['fields']['field_basic_page_image']['delta_limit'] = '1';
$handler->display->display_options['fields']['field_basic_page_image']['delta_offset'] = '0';
$handler->display->display_options['fields']['field_basic_page_image']['delta_first_last'] = TRUE;
/* Campo: Conteúdo: Título */
$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']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['title']['link_to_node'] = FALSE;
/* Campo: Conteúdo: Etiqueta */
$handler->display->display_options['fields']['field_etiqueta']['id'] = 'field_etiqueta';
$handler->display->display_options['fields']['field_etiqueta']['table'] = 'field_data_field_etiqueta';
$handler->display->display_options['fields']['field_etiqueta']['field'] = 'field_etiqueta';
$handler->display->display_options['fields']['field_etiqueta']['label'] = '';
$handler->display->display_options['fields']['field_etiqueta']['element_type'] = 'div';
$handler->display->display_options['fields']['field_etiqueta']['element_class'] = 'isotope-filter';
$handler->display->display_options['fields']['field_etiqueta']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_etiqueta']['element_default_classes'] = FALSE;
$handler->display->display_options['fields']['field_etiqueta']['type'] = 'taxonomy_term_reference_plain';
/* Campo: Conteúdo: Localização */
$handler->display->display_options['fields']['field_localizacao']['id'] = 'field_localizacao';
$handler->display->display_options['fields']['field_localizacao']['table'] = 'field_data_field_localizacao';
$handler->display->display_options['fields']['field_localizacao']['field'] = 'field_localizacao';
$handler->display->display_options['fields']['field_localizacao']['label'] = '';
$handler->display->display_options['fields']['field_localizacao']['alter']['text'] = '[field_etiqueta][field_localizacao]';
$handler->display->display_options['fields']['field_localizacao']['element_type'] = 'div';
$handler->display->display_options['fields']['field_localizacao']['element_class'] = 'isotope-filter';
$handler->display->display_options['fields']['field_localizacao']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_localizacao']['element_default_classes'] = FALSE;
$handler->display->display_options['fields']['field_localizacao']['type'] = 'taxonomy_term_reference_plain';
/* Critério para ordenar: Conteúdo: Data do artigo */
$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';
/* Critérios de filtragem: Conteúdo: Publicado */
$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'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Critérios de filtragem: Conteúdo: Tipo */
$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(
  'page' => 'page',
);
$handler->display->display_options['filters']['type']['group'] = 1;
/* Critérios de filtragem: Conteúdo: Etiqueta (field_etiqueta) */
$handler->display->display_options['filters']['field_etiqueta_tid']['id'] = 'field_etiqueta_tid';
$handler->display->display_options['filters']['field_etiqueta_tid']['table'] = 'field_data_field_etiqueta';
$handler->display->display_options['filters']['field_etiqueta_tid']['field'] = 'field_etiqueta_tid';
$handler->display->display_options['filters']['field_etiqueta_tid']['value'] = array(
  38 => '38',
  31 => '31',
  34 => '34',
  32 => '32',
  33 => '33',
  35 => '35',
  39 => '39',
);
$handler->display->display_options['filters']['field_etiqueta_tid']['group'] = 1;
$handler->display->display_options['filters']['field_etiqueta_tid']['reduce_duplicates'] = TRUE;
$handler->display->display_options['filters']['field_etiqueta_tid']['type'] = 'select';
$handler->display->display_options['filters']['field_etiqueta_tid']['vocabulary'] = 'paises';
$handler->display->display_options['filters']['field_etiqueta_tid']['hierarchy'] = 1;
/* Critérios de filtragem: Conteúdo: Localização (field_localizacao) */
$handler->display->display_options['filters']['field_localizacao_tid']['id'] = 'field_localizacao_tid';
$handler->display->display_options['filters']['field_localizacao_tid']['table'] = 'field_data_field_localizacao';
$handler->display->display_options['filters']['field_localizacao_tid']['field'] = 'field_localizacao_tid';
$handler->display->display_options['filters']['field_localizacao_tid']['value'] = array(
  268 => '268',
  267 => '267',
  265 => '265',
  266 => '266',
  264 => '264',
);
$handler->display->display_options['filters']['field_localizacao_tid']['group'] = 1;
$handler->display->display_options['filters']['field_localizacao_tid']['expose']['operator_id'] = 'field_localizacao_tid_op';
$handler->display->display_options['filters']['field_localizacao_tid']['expose']['label'] = 'Localização (field_localizacao)';
$handler->display->display_options['filters']['field_localizacao_tid']['expose']['operator'] = 'field_localizacao_tid_op';
$handler->display->display_options['filters']['field_localizacao_tid']['expose']['identifier'] = 'field_localizacao_tid';
$handler->display->display_options['filters']['field_localizacao_tid']['expose']['remember_roles'] = array(
  2 => '2',
  1 => 0,
  3 => 0,
);
$handler->display->display_options['filters']['field_localizacao_tid']['reduce_duplicates'] = TRUE;
$handler->display->display_options['filters']['field_localizacao_tid']['type'] = 'select';
$handler->display->display_options['filters']['field_localizacao_tid']['vocabulary'] = 'localizacao';

/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'portfolio-clone';
$translatables['clone_de_isotope_example'] = array(
  t('Master'),
  t('Portfolio'),
  t('mais'),
  t('Aplicar'),
  t('Reiniciar'),
  t('Ordenar por'),
  t('Ascendente'),
  t('Descendente'),
  t('Categorias'),
  t('[field_etiqueta][field_localizacao]'),
  t('Localização (field_localizacao)'),
  t('Page'),
);

And these are my filter views:

The Location term view

$view = new view();
$view->name = 'filterblock_paises';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'taxonomy_term_data';
$view->human_name = 'filterblock_paises';
$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'] = 'filterblock_paises';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'mais';
$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['exposed_form']['options']['submit_button'] = 'Aplicar';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Reiniciar';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Ordenar por';
$handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'Ascendente';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Descendente';
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['style_plugin'] = 'isotope_filter_block';
$handler->display->display_options['row_plugin'] = 'fields';
$handler->display->display_options['row_options']['default_field_elements'] = FALSE;
/* Cabeçalho: Global: Unfiltered text */
$handler->display->display_options['header']['area_text_custom']['id'] = 'area_text_custom';
$handler->display->display_options['header']['area_text_custom']['table'] = 'views';
$handler->display->display_options['header']['area_text_custom']['field'] = 'area_text_custom';
$handler->display->display_options['header']['area_text_custom']['content'] = '<h3>Localização</h3>';
/* Campo: Termo de taxonomia: Nome */
$handler->display->display_options['fields']['name']['id'] = 'name';
$handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['fields']['name']['field'] = 'name';
$handler->display->display_options['fields']['name']['label'] = '';
$handler->display->display_options['fields']['name']['alter']['text'] = '<div class="isotope-filter">[name]</div>';
$handler->display->display_options['fields']['name']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['name']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['name']['element_type'] = 'div';
$handler->display->display_options['fields']['name']['element_class'] = 'isotope-grid';
$handler->display->display_options['fields']['name']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['name']['element_default_classes'] = FALSE;
/* Critérios de filtragem: Vocabulário Taxonomia: Nome de máquina */
$handler->display->display_options['filters']['machine_name']['id'] = 'machine_name';
$handler->display->display_options['filters']['machine_name']['table'] = 'taxonomy_vocabulary';
$handler->display->display_options['filters']['machine_name']['field'] = 'machine_name';
$handler->display->display_options['filters']['machine_name']['value'] = array(
  'localizacao' => 'localizacao',
);

/* Display: Block */
$handler = $view->new_display('block', 'Block', 'isotope_options');
$translatables['filterblock_paises'] = array(
  t('Master'),
  t('filterblock_paises'),
  t('mais'),
  t('Aplicar'),
  t('Reiniciar'),
  t('Ordenar por'),
  t('Ascendente'),
  t('Descendente'),
  t('<h3>Localização</h3>'),
  t('<div class="isotope-filter">[name]</div>'),
  t('Block'),
);

and the tag term view:

$view = new view();
$view->name = 'isotope_example_filter_block';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'taxonomy_term_data';
$view->human_name = 'isotope_example_filter_block';
$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'] = 'isotope_example_filter_block';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'mais';
$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['exposed_form']['options']['submit_button'] = 'Aplicar';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Reiniciar';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Ordenar por';
$handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'Ascendente';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Descendente';
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['style_plugin'] = 'isotope_filter_block';
$handler->display->display_options['row_plugin'] = 'fields';
$handler->display->display_options['row_options']['default_field_elements'] = FALSE;
/* Cabeçalho: Global: Unfiltered text */
$handler->display->display_options['header']['area_text_custom']['id'] = 'area_text_custom';
$handler->display->display_options['header']['area_text_custom']['table'] = 'views';
$handler->display->display_options['header']['area_text_custom']['field'] = 'area_text_custom';
$handler->display->display_options['header']['area_text_custom']['content'] = '<h3>Categorias</h3>';
/* Campo: Termo de taxonomia: Nome */
$handler->display->display_options['fields']['name']['id'] = 'name';
$handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['fields']['name']['field'] = 'name';
$handler->display->display_options['fields']['name']['label'] = '';
$handler->display->display_options['fields']['name']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['name']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['name']['element_type'] = 'div';
$handler->display->display_options['fields']['name']['element_class'] = 'isotope-grid';
$handler->display->display_options['fields']['name']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['name']['element_default_classes'] = FALSE;
/* Critérios de filtragem: Vocabulário Taxonomia: Nome de máquina */
$handler->display->display_options['filters']['machine_name']['id'] = 'machine_name';
$handler->display->display_options['filters']['machine_name']['table'] = 'taxonomy_vocabulary';
$handler->display->display_options['filters']['machine_name']['field'] = 'machine_name';
$handler->display->display_options['filters']['machine_name']['value'] = array(
  'paises' => 'paises',
);

/* Display: Block */
$handler = $view->new_display('block', 'Block', 'isotope_options');
$translatables['isotope_example_filter_block'] = array(
  t('Master'),
  t('isotope_example_filter_block'),
  t('mais'),
  t('Aplicar'),
  t('Reiniciar'),
  t('Ordenar por'),
  t('Ascendente'),
  t('Descendente'),
  t('<h3>Categorias</h3>'),
  t('Block'),
);

Also, since i've changed from 7.x-1.0-beta2 to 7.x-2.x-dev, none of the filter buttons work except for the "Show All" button. I'm not a great coder, so i don't know how to fix it, unfortunately, but i took a look at the page code and noticed a diference between the beta and the dev versions in the way the filter buttons are being printed:

beta:

<a class="filterbutton" data-option-value=".educação-e-desporto" href="#filter"><div class="isotope-grid">Educação e Desporto</div></a>

and dev:

<a class="filterbutton" data-option-value=".div-classisotope-gridcomércio-e-serviços-div" href="#filter"><div class="isotope-grid">Comércio e Serviços</div></a>

I'm thinking the problem may reside on the way the data-option-value is being output.

Can anyone please point me in the right direction to get this working right?

thanks in advance,

Bruno

Comments

kreynen’s picture

Status: Active » Postponed (maintainer needs more info)

When you upgraded, did you disable, uninstall and re-enable? Are you using views from the example feature or clones from it?

emberhxc’s picture

Yes, i did disable, uninstall and re-enable. I am using a clone from the example view... should i create a new one?

kreynen’s picture

no, that should work. Thought maybe the view needed to be reverted. Still trying to reproduce the problem.

emberhxc’s picture

Hey, i've been experimenting with it a bit more, and if i change the filter links on chrome inspector to a structure similar to the beta version (i.e. data-option-value=".educação-e-desporto") the filtering works, but only for the taxonomy library used last on the main view. From what i can see, the view items are only getting assigned with the taxonomy css class respecting to that library, but not both. don't know if it helps in any way to find what is going on...

kreynen’s picture

I sent you an email using your Drupal.org contact form too. Is this view on a public dev site?

emberhxc’s picture

Answered ;)

emberhxc’s picture

Status: Postponed (maintainer needs more info) » Fixed

Hey everyone,

kreynen was kind enough to take a look at the view and fix the issue with the filter not being output as it should, so that is all working perfectly now!

As for using more than one taxonomy library, here is how i did it:

I added both taxonomy fields to the view, and for the first one i didn't use the "isotope-filter" css class, and excluded it from the view.

On the second taxonomy field, i added the "isotope-filter" class as normal, and then i rewrote the output of that field to "[taxonomy-field-1],[taxonomy-field-2]".

Because the module is configured to identify the comma as a separator, it splits the css identifiers when printing out the view items, making it have a class for each taxonomy field that the filters can use correctly.

I hope my explanation is useful to anyone that can have a hard time with this!

Status: Fixed » Closed (fixed)

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