home

Как создать навигатор по каталогу, чтобы с одной страницы можно было увидеть всю иерархию в каталоге

views_tree_example.png

Построить подобный навигатор можно при помощи внешнего модуля Views tree

Установите модуль, включите и создайте новое представление.

  1. Создайте новое представление, выбрав в качестве формата отображения "поля";
  2. Выберите Select the Tree (Adjacency model);
  3. Добавьте поля в вывод "Содержимое: Заголовок", "Содержимое: Nid", "Содержимое: Родительский каталог";
  4. В критерий фильтрации добавьте "Содержимое: Тип" и выберите "Папка каталога";
  5. В настройках формата Tree (Adjacency model) выберите в "Main field" настройку "Nid", в "Prant field" настройку "Содержимое: Родительский каталог";
  6. При необходимости, добавьте представление в меню.

Пример:

views_tree_view_configuration.png

views_tree_fields_settings.png

views_tree_edit_style.png

Код импорта представления[править]

Вы можете импортировать представление кодом ниже и настроить его на свой вкус:

$view = new view();
$view->name = 'classification_view';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Навигатор по каталогу';
$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'] = 'Навигатор по каталогу';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'ещё';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'time';
$handler->display->display_options['cache']['results_lifespan'] = '21600';
$handler->display->display_options['cache']['results_lifespan_custom'] = '0';
$handler->display->display_options['cache']['output_lifespan'] = '21600';
$handler->display->display_options['cache']['output_lifespan_custom'] = '0';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['submit_button'] = 'Применить';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Сбросить';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Сортировать по';
$handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'По возрастанию';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'По убыванию';
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['style_plugin'] = 'tree';
$handler->display->display_options['style_options']['main_field'] = 'nid';
$handler->display->display_options['style_options']['parent_field'] = 'field_parent_catalog';
$handler->display->display_options['row_plugin'] = 'fields';
$handler->display->display_options['row_options']['inline'] = array(
  'title' => 'title',
);
$handler->display->display_options['row_options']['hide_empty'] = TRUE;
/* Поле: Содержимое: Заголовок */
$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;
/* Поле: Содержимое: 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']['exclude'] = TRUE;
/* Поле: Содержимое: Родительский каталог */
$handler->display->display_options['fields']['field_parent_catalog']['id'] = 'field_parent_catalog';
$handler->display->display_options['fields']['field_parent_catalog']['table'] = 'field_data_field_parent_catalog';
$handler->display->display_options['fields']['field_parent_catalog']['field'] = 'field_parent_catalog';
$handler->display->display_options['fields']['field_parent_catalog']['label'] = '';
$handler->display->display_options['fields']['field_parent_catalog']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_parent_catalog']['delta_offset'] = '0';
/* Критерий сортировки: Содержимое: Дата публикации */
$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['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;
/* Критерий фильтра: Содержимое: Тип */
$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(
  'subj' => 'subj',
);

/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'catalog-navigator';
$handler->display->display_options['menu']['type'] = 'normal';
$handler->display->display_options['menu']['title'] = 'Навигатор';
$handler->display->display_options['menu']['weight'] = '0';
$handler->display->display_options['menu']['context'] = 0;
$handler->display->display_options['menu']['context_only_inline'] = 0;
$translatables['classification_view'] = array(
  t('Master'),
  t('Навигатор по каталогу'),
  t('ещё'),
  t('Применить'),
  t('Сбросить'),
  t('Сортировать по'),
  t('По возрастанию'),
  t('По убыванию'),
  t('Nid'),
  t('Page'),
);