0

我是drupal的新手。

我如何创建像这样的超链接的年度列表:

2012 2011 2009 2008

任何一年内发布的博客文章,然后将它们链接到一个页面以显示该年内博客文章的预告列表

我安装了视图模块并使用了一年的上下文过滤器。我想使用 PHP 代码从 templates.php 文件中的视图中获取结果集并将结果传递给我的模板。

然后我需要建立一些 url 别名来显示特定的模板。例如。site_url/blog/2012 应该显示我的模板。

请注意:我已经有一个 site_url/blog 的模板作为博客登陆页面模板

请告诉我这是否可行以及如何做到这一点?

4

4 回答 4

1

默认情况下,分类模块为与术语关联的所有节点创建一个预告列表。因此,如果您创建博客年份词汇表并使用术语参考字段将其附加到博客节点类型,分类法将自动为具有“2012”术语的所有节点以及具有“2011”的所有节点创建分页显示术语等。您可以使用pathauto模块为这些设置自定义路径结构,无论如何您都应该使用它。

然后,您需要做的就是创建一个链接到每个术语的块。分类块模块将执行此操作。或者您可以创建一个视图以在一个块中输出这些分类链接。

如果您要使用视图,则根本不需要使用分类法。每个节点至少存储两个日期字段,即创建日期和更新日期。您可以在视图中轻松访问它。创建预告片显示视图并添加Content: Created Year上下文过滤器。不幸的是,我现在不知道在 Drupal 7 视图中显示年份的好解决方案,所以我可能会为此编写一个模块。

于 2012-09-13T15:06:43.623 回答
1

您可以使用同时提供日历模块的DATE模块和视图,您可以做任何您想做的事情。

于 2012-09-13T18:28:46.710 回答
1

您可以使用 Views 完成所有操作,无需分类。我不确定是否仅在先前的答案之后才引入此功能。

看一下 Drupal 的“归档”视图,该视图随视图一起提供,但已禁用。启用它并彻底检查它。您应该能够根据该示例对其进行排序。

这就是我所做的:

您需要两个视图来显示您的所有帖子。一个 PAGE 视图和一个 BLOCK 视图。确保它们在同一页面上并排显示。

在 PAGE 视图中,在 CONTENT: CREATED YEAR 上创建一个上下文过滤器。这本身就足以过滤您在 URL 中给出的年份的帖子

在 BLOCK 视图中,在 CONTENT: CREATED YEAR 上创建一个上下文过滤器。然后,您可以选择:

When the filter value is NOT available:

• Display all results for the specified field
• Provide default value
• Hide view
X Display a summary
于 2014-03-04T13:30:18.450 回答
0

为此,您可以使用 Drupal 的内置分类模块。通过转到 转到分类页面admin->structure->taxonomy

在那里,您可以创建一个名为 Year 的新词汇表,您可以在其中输入任意多或少的年份。

然后在您的博客文章内容类型中创建一个名为 year 的新字段,并通过选择术语参考作为类型并按照那里的说明将其链接到词汇表。

如果您愿意,您可以构建一个自动将新年添加到词汇表中的模块,但这是一个完全不同的问题。

然后只显示该年份的帖子,您可以构建一个视图。安装 Views 模块并structure->views添加一个新视图以显示博客文章类型的内容。然后,您可以在高级选项卡中设置上下文过滤器以显示带有年份标记的过滤器。然后您可以公开过滤器,以便用户可以更改年份并且您应该进行设置。

注意:视图需要是一个页面而不是一个块才能工作。

于 2012-09-13T08:12:54.623 回答