динамический просмотр по дате аргументов в друпале 7 - PullRequest
2 голосов
/ 22 декабря 2011

Я новичок в drupal, в настоящее время я застрял с этой проблемой.

Я хочу создать представление статьи ("совет дня"), в котором содержание воли автоматически изменяется соответствующим образом.Значением по умолчанию будет текущая дата.

Например:

http://localhost/test. В качестве фильтра по умолчанию будет выбрана текущая дата.Если элементы не найдены, результаты не будут найдены.

при переходе на http://localhost/test/20111220 представление автоматически получит значение параметра даты в URL и выведет содержимое в эту дату.

Как мне этого добиться?

Есть какие-нибудь мысли или идеи там?

Спасибо.

1 Ответ

6 голосов
/ 23 декабря 2011

Если вы используете представления, попробуйте следующее.

  1. Добавить Контекстные фильтры в Дополнительно fieldset и выберите Дата: Дата (узел) фильтр.
  2. В его настройках в Когда значение фильтра НЕ в URL галочка fieldset Укажите значение по умолчанию и оставьте Текущая дата
  3. Добавить идентификатор множественного значения , установленный на Нет
  4. Даты для сравнения установлен на Только это поле
  5. Между Поля (-и) даты Установите флажки Содержимое: Дата публикации
  6. Метод установлен на ИЛИ

После этогоПри доступе к странице / test вы получите последний добавленный контент и доступ к / test /% date% у вас будет контент на эту дату.Например, / test / 2011-12-23

% date% должны быть в качестве даты / периода ISOформат (то есть ГГГГ, ГГГГ-ММ, ГГГГ-ММ-ДД, ГГГГ-W99, ГГГГ-ММ-ДД - P3M, P90D и т. д.).

РЕДАКТИРОВАНИЕ: 19-01-2012

Следуйте по этому пути http://yoursite/admin/structure/views/import на своем сайте и добавьте следующие данные в текстовое поле кода:

$view = new view;
$view->name = 'test';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'test';
$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'] = 'test';
$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'] = 'some';
$handler->display->display_options['pager']['options']['items_per_page'] = '10';
$handler->display->display_options['style_plugin'] = 'list';
$handler->display->display_options['row_plugin'] = 'fields';
$handler->display->display_options['row_options']['hide_empty'] = 1;
$handler->display->display_options['row_options']['default_field_elements'] = 0;

/* No results behavior: Global: Text area */
$handler->display->display_options['empty']['area']['id'] = 'area';
$handler->display->display_options['empty']['area']['table'] = 'views';
$handler->display->display_options['empty']['area']['field'] = 'area';
$handler->display->display_options['empty']['area']['label'] = 'No results';
$handler->display->display_options['empty']['area']['empty'] = FALSE;
$handler->display->display_options['empty']['area']['content'] = 'No articles found.';
$handler->display->display_options['empty']['area']['format'] = 'full_html';
$handler->display->display_options['empty']['area']['tokenize'] = 0;

/* 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;

/* 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';

/* Contextual filter: Date: Date (node) */
$handler->display->display_options['arguments']['date_argument']['id'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['table'] = 'node';
$handler->display->display_options['arguments']['date_argument']['field'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['default_action'] = 'default';
$handler->display->display_options['arguments']['date_argument']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['date_argument']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['date_argument']['use_fromto'] = 'no';
$handler->display->display_options['arguments']['date_argument']['date_fields'] = array(
    'node.created' => 'node.created',
);

/* 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(
    'page' => 'page',
);

/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'test';

Теперь, перейдя на страницу /test, вы получите дату как сегодняшнююДата.Вы также можете использовать свой тип даты как 20120119.

...