drupal 7中的动态视图按日期参数 [英] dynamic view by date arguments in drupal 7
问题描述
我是新来的drupal,目前我遇到这个问题。
我想创建一个文章视图(一天的一天),其中内容的意志将自动相应地改变。默认值为当前日期。
例如:
http:// localhost / test
这将获取当前日期作为默认过滤器。如果没有找到任何项目,将不会找到任何结果。
当我去 http:// localhost / test / 20111220 时,视图将自动获取url中date参数的值,并输出该日期的内容。
如何实现?
$ b $任何想法或想法?
谢谢。
如果您使用Views,请尝试以下操作。
- 在 字段集中添加 上下文过滤器 ,然后选择 日期:日期(节点) 过滤器
- 在 中的设置当过滤器值不在URL / strong> fieldset tick 提供默认值 ,然后离开 当前日期
- 添加多个值标识符 设置为 否
- 比较 设置为 仅此字段
- >日期字段 复选框选择 内容:发布日期
- 方法 设置为 或
之后,访问您的 / test 页面,您将拥有最后添加的内容,并通过访问 / test /%date% ,您将拥有该日期的内容。例如 / test / 2011-12-23
%date% 应为ISO日期/期间格式(即YYYY,YYYY-MM,YYYY-MM-DD,YYYY-W99,YYYY-MM-DD-P3M,P90D等)。
EDITED:19-01-2012
按照此路径 http :// yoursite / admin / structure / views / import
,并将以下数据放入代码文本框中:
code> $ 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; / *将此编辑为true,使默认视图最初被禁用* /
/ *显示: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;
/ *没有结果行为:全局:文本区域* /
$ handler-> display-> display_options ['empty'] ['area'] ['id'] = '区';
$ handler-> display-> display_options ['empty'] ['area'] ['table'] ='views';
$ handler-> display-> display_options ['empty'] ['area'] ['field'] ='area';
$ handler-> display-> display_options ['empty'] ['area'] ['label'] ='无结果'
$ handler-> display-> display_options ['empty'] ['area'] ['empty'] = FALSE;
$ handler-> display-> display_options ['empty'] ['area'] ['content'] ='没有找到文章。
$ handler-> display-> display_options ['empty'] ['area'] ['format'] ='full_html';
$ handler-> display-> display_options ['empty'] ['area'] ['tokenize'] = 0;
/ *字段:内容:标题* /
$ 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;
/ *排序标准:内容:发布日期* /
$ handler-> display-> display_options ['sorts'] ['created'] ['id'] ='创建;
$ handler-> display-> display_options ['sorts'] ['created'] ['table'] ='node';
$ handler-> display-> display_options ['sorts'] ['created'] ['field'] ='created';
$ handler-> display-> display_options ['sorts'] ['created'] ['order'] ='DESC';
/ *上下文过滤器: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'] ='否'
$ handler-> display-> display_options ['arguments'] ['date_argument'] ['date_fields'] = array(
'node.created'=>'node.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'] = 0;
$ handler-> display-> display_options ['filters'] ['status'] ['exposed'] ['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(
'page'=>'page',
);
/ *显示:页* /
$ handler = $ view-> new_display('page','Page','page');
$ handler-> display-> display_options ['path'] ='test';
现在按照 / test
页面将有日期作为今天的日期。您也可以使用日期类型为 20120119
。
I'm new to drupal, currently im stuck with this problem.
I want to create a article view ("tip of the day") wherein the content of the will automatically changed accordingly. The default value would be the current date.
For example:
http://localhost/test this will get the current date as the default filter. If no items found it will give no results found.
when i go to http://localhost/test/20111220 the view will automatically get the value of the date parameter in the url and output the content on that date.
How can I achieved this?
Any thoughts or ideas there?
Thank you.
If you are using Views then try the following.
- Add Contextual filters in Advanced fieldset and select Date: Date (node) filter.
- In it's settings in When the filter value is NOT in the URL fieldset tick Provide default value and leave Current date
- Add multiple value identifier set to No
- Dates to compare set to Only this field
- Between Date field(s) checkboxes select Content: Post date
- Method set to OR
After that, by accessing your /test page you would have the last added content and by accessing /test/%date% you would have content for that date. For example /test/2011-12-23
%date% should be as ISO date/period format (i.e. YYYY, YYYY-MM, YYYY-MM-DD, YYYY-W99, YYYY-MM-DD--P3M, P90D, etc).
EDITED: 19-01-2012
Follow this path http://yoursite/admin/structure/views/import
in your site and put the following data to code textfield:
$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';
Now by following to /test
page you'll have date as today's date. You can also use your date type as 20120119
.
这篇关于drupal 7中的动态视图按日期参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!