динамический просмотр аргументов даты в drupal 7

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

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

Например:

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

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

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

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

Спасибо.


person claire    schedule 22.12.2011    source источник
comment
Вы используете представления?   -  person Vlad Stratulat    schedule 22.12.2011
comment
представление является частью панели. и всякий раз, когда в URL-адресе указана дата, он будет отображать содержимое представления в соответствии с датой.   -  person claire    schedule 23.12.2011


Ответы (1)


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

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

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

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

ОТРЕДАКТИРОВАНО: 19 января 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.

person Vlad Stratulat    schedule 23.12.2011
comment
привет спасибо за ответ. Я пробовал вышеуказанные шаги, однако это не фильтрация. Поэтому, даже если я перехожу к дате, в которой нет данных, она все равно возвращает содержимое. И есть ли способ изменить формат даты? потому что это должно быть похоже на этот test/20111220. ? благодаря. - person claire; 27.12.2011
comment
Привет, я попробовал еще раз, но я получил эту ошибку. Обработчик контекстного фильтра node.date_argument недоступен. - person claire; 28.03.2012
comment
Что вы выбираете в своем представлении? Узлы? Можете ли вы дать более подробную информацию об этом? - person Vlad Stratulat; 28.03.2012
comment
Привет, Влад, спасибо за быстрый ответ. Это была моя ошибка, я не включил просмотр даты. Теперь осталась только одна проблема: установить открытый диапазон, например ‹= 20120311 или ›= 20120311... Я не вижу в контекстном фильтре возможности сделать это. - person claire; 29.03.2012