Widoki i liczba węzłów dla warunków taksonomicznych

31

Jak wyświetlić wartości liczby węzłów dla terminów taksonomii w widokach? z sortowaniem listy wyników w kolejności malejącej liczby węzłów.

ya.teck
źródło
2
Jest film na youtube bardzo dobrze wyjaśniony tutaj https://www.youtube.com/watch? V = w22Utjm-chs
wranvaud

Odpowiedzi:

41
  1. Utwórz widok taksonomii
  2. Dodaj grupę węzłów w relacji
  3. Dodaj pola nazwy terminu i nid węzła do wyświetlenia
  4. Włącz agregację w sekcji „Inne” (Użyj agregacji: Tak)
  5. Kliknij ikonę ustawień pola nid, wybierz typ grupy „liczba”.

Znajdź eksport widoków, który dla mnie zadziałał.

$view = new view;
$view->name = 'term_node_count';
$view->description = 'Displays node count values for terms';
$view->tag = '';
$view->base_table = 'taxonomy_term_data';
$view->human_name = 'term_node_count';
$view->core = 7;
$view->api_version = '3.0-alpha1';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Defaults */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->display->display_options['use_ajax'] = TRUE;
$handler->display->display_options['group_by'] = TRUE;
$handler->display->display_options['access']['type'] = 'none';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '100';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['pager']['options']['id'] = '0';
$handler->display->display_options['pager']['options']['expose']['items_per_page_options_all'] = 0;
$handler->display->display_options['style_plugin'] = 'table';
$handler->display->display_options['style_options']['columns'] = array(
  'name' => 'name',
  'nid' => 'nid',
);
$handler->display->display_options['style_options']['default'] = '-1';
$handler->display->display_options['style_options']['info'] = array(
  'name' => array(
    'sortable' => 0,
    'default_sort_order' => 'asc',
    'align' => '',
    'separator' => '',
  ),
  'nid' => array(
    'sortable' => 0,
    'default_sort_order' => 'asc',
    'align' => '',
    'separator' => '',
  ),
);
$handler->display->display_options['style_options']['override'] = 1;
$handler->display->display_options['style_options']['sticky'] = 0;
/* Relationship: Taxonomy: Node */
$handler->display->display_options['relationships']['nid']['id'] = 'nid';
$handler->display->display_options['relationships']['nid']['table'] = 'taxonomy_index';
$handler->display->display_options['relationships']['nid']['field'] = 'nid';
$handler->display->display_options['relationships']['nid']['required'] = 0;
/* Field: Taxonomy: Term */
$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']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['name']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['name']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['name']['alter']['trim'] = 0;
$handler->display->display_options['fields']['name']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['name']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['name']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['name']['alter']['html'] = 0;
$handler->display->display_options['fields']['name']['element_label_colon'] = 1;
$handler->display->display_options['fields']['name']['element_default_classes'] = 1;
$handler->display->display_options['fields']['name']['hide_empty'] = 0;
$handler->display->display_options['fields']['name']['empty_zero'] = 0;
$handler->display->display_options['fields']['name']['link_to_taxonomy'] = 1;
/* Field: Node: Nid */
$handler->display->display_options['fields']['nid']['id'] = 'nid';
$handler->display->display_options['fields']['nid']['table'] = 'node';
$handler->display->display_options['fields']['nid']['field'] = 'nid';
$handler->display->display_options['fields']['nid']['relationship'] = 'nid';
$handler->display->display_options['fields']['nid']['group_type'] = 'count';
$handler->display->display_options['fields']['nid']['label'] = 'Count';
$handler->display->display_options['fields']['nid']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['nid']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['nid']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['nid']['alter']['trim'] = 0;
$handler->display->display_options['fields']['nid']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['nid']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['nid']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['nid']['alter']['html'] = 0;
$handler->display->display_options['fields']['nid']['element_label_colon'] = 1;
$handler->display->display_options['fields']['nid']['element_default_classes'] = 1;
$handler->display->display_options['fields']['nid']['hide_empty'] = 0;
$handler->display->display_options['fields']['nid']['empty_zero'] = 0;
$handler->display->display_options['fields']['nid']['link_to_node'] = 1;

/* Display: Block */
$handler = $view->new_display('block', 'Block', 'block_1');
$translatables['term_node_count'] = array(
  t('Defaults'),
  t('more'),
  t('Apply'),
  t('Reset'),
  t('Sort By'),
  t('Asc'),
  t('Desc'),
  t('Items per page'),
  t('- All -'),
  t('Offset'),
  t('node'),
  t('Term'),
  t('Count'),
  t('Block'),
);
Sivaji
źródło
Co zrobić, jeśli chcesz uzyskać liczbę węzłów terminów dołączonych do rzeczywistego węzła?
Temaruk
23

Wszystkie poprzednie odpowiedzi były bardzo pomocne.

Chciałem uzyskać tabelę, aby umożliwić użytkownikowi sortowanie według Term lub według liczby.

Aby to zrobić, ja:

  1. Relacja> Pojęcie taksonomii: treść z terminem
  2. Użyj agregacji: Tak
  3. Pole> Treść: Nid
  4. Typ agregacji dla Nid = Count DISTINCT
chrowe
źródło
Brakuje tylko tego, jak sprawić, by dwa pola pojawiały się w linii. W tym celu musisz przejść do Format -> Pokaż -> Ustawienia i zaznaczyć oba jako elementy wbudowane.
colan
12

Aby uzyskać prawidłową liczbę węzłów taksonomii dla warunków taksonomii, wykonaj następujące czynności:

  1. W polu Fileds: dodaj termin Taksonomia: Nazwa
  2. W Relacjach dodaj termin taksonomia: Treść z terminem
  3. Dodaj filtr kontekstowy dla Taksonomii: Nazwa

    3a. Wybierz „Wyświetl podsumowanie”

    3b. Wybierz „Wyświetl liczbę rekordów z linkiem” . Ustaw także ścieżkę podstawową, jeśli chcesz, aby strona taksonomii była poprawnie połączona.

Nevos
źródło
5

Kluczem jest upewnienie się, że zaznaczyłeś pole wyboru „agregacja” w zaawansowanej opcji widoku.

Chunty
źródło
To działałoby znacznie lepiej jako edycja odpowiedzi innej osoby (lub możesz napisać bardziej kompletną odpowiedź).
michaelmcandrew,
4

Dodaj argument (przemianowany na „filtr kontekstowy” w najnowszych widokach) dla terminów taksonomicznych i wybierz „Wyświetl podsumowanie”. Następnie wybierz opcję „Liczba rekordów”.

tim.plunkett
źródło
Mam widoki 7.x-3.0-alpha1. Gdzie jest „filtr kontekstowy”.
ya.teck
Następnie jest oznaczony jako „Argumenty”. Jednak prawdopodobnie powinieneś po prostu zaktualizować do najnowszej wersji.
tim.plunkett 25.03.11
3.0-alpha1 to najnowsze widoki wersji dla drupal 7. Czy masz na myśli aktualizację do wersji dev?
ya.teck
2
Alfa 1 był przestarzały 6 stycznia. W ten weekend powinno być alfa2, ale tak, użyj dev.
tim.plunkett 25.03.11
Widoki 3.0-rc1. Próbowałem, jak pisałeś powyżej, ale dostaję tylko na przykład: Kategoria (1), Koty (1). Wszędzie jest 1 w pobliżu warunków taksonomii, chociaż mam wiele węzłów wewnątrz warunków. Co jest nie tak?
Alexander Kim,