Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Drupal中创建具有三个细节层的时间线?_Drupal_Content Management System_Views_Drupal Views - Fatal编程技术网

如何在Drupal中创建具有三个细节层的时间线?

如何在Drupal中创建具有三个细节层的时间线?,drupal,content-management-system,views,drupal-views,Drupal,Content Management System,Views,Drupal Views,现在,我看到我需要实现的目标可能有几种方法,而不是在遇到冰山时寻求帮助,所以我想征求你的意见:你会怎么做 我需要在Drupal中创建一个时间线。时间线有三层:十年(30、40、50……),年和事件 我将记录某一年发生的几件事。我每年都会举办2、3或4次活动,但我不知道每一次活动的确切日期。我只需要将这些事件与特定的年份联系起来,然后将这些年份与相应的十年联系起来。导航将从全球(十年)到特定(活动)。我可能会使用一些jQuery来收集一个显示或隐藏其中十年(十个小方框)的十年块。当单击这些方框时,

现在,我看到我需要实现的目标可能有几种方法,而不是在遇到冰山时寻求帮助,所以我想征求你的意见:你会怎么做

我需要在Drupal中创建一个时间线。时间线有三层:十年(30、40、50……),年和事件

我将记录某一年发生的几件事。我每年都会举办2、3或4次活动,但我不知道每一次活动的确切日期。我只需要将这些事件与特定的年份联系起来,然后将这些年份与相应的十年联系起来。导航将从全球(十年)到特定(活动)。我可能会使用一些jQuery来收集一个显示或隐藏其中十年(十个小方框)的十年块。当单击这些方框时,用户将首先进入详细年份页面,然后进入详细事件页面,以防他们点击其中一个事件

到目前为止,我的方法是:

1) 创建事件内容类型。这里的一个字段是节点引用。这使我能够将一个事件与其对应的年份联系起来。 2) 年份内容类型。这是一个简单的内容类型,由事件引用。我将每年创建一个节点(1930193219933…) 3) 对“十年”层使用分类法,以便每个已注册的年份都链接到已注册的十年之一(30、40、50、60、70等)

好吧,问题在于提供这些信息。用视图对其进行建模似乎很棘手,也很困难。我想到的是:

1) 第一种方法-查询年份并按十年进行分组。那么我有两个选择: 1.1)将它们链接到其完整年份节点。问题:如果我这样做,我就无法从年节点中提取相关事件。因为我的节点引用不是指向事件的年份,而是指向节点的事件。您认为我应该将节点引用放在年内容类型而不是事件内容类型中吗? 1.2)我不知道这是否可行:使用AJAX在当前窗口的顶部打开一个假窗口,显示年份信息及其相关事件,而不是链接到年份节点。我不知道这是否可能

2) 第二种方法-我可以创建一个如下所示的分类法: 30年代:1930 | 1931 | 1932 | 1933 | 1934 |

40年代:1940 | 1941 | 1942 | 1943 | 1944 |

在这种情况下,我将放弃年份内容类型,并将事件与年份和十年相关联。我可能会失去灵活性,因为分类法只给我一个标题和一个描述字段,而我可以用一个内容类型获得更多

3) 第三种方法(菜单hyerarchy)-我可以简单地创建十年、十年下的年节点(将相应的十年设置为父菜单项),以及年下的事件节点(将相应的年设置为父菜单项)。我不想在常规菜单中显示子项,但这是一个我可以解决的问题。我只能为这个层次结构创建一个非常具体的菜单。这将自动为我提供面包屑(如果我使用面包屑模块),这将非常好。但是,如何显示来自父节点的子页面?我是说,我怎么能展示一年的活动清单?使用沉思?这可能无法显示子页面列表。但我突然想到,我可以创建一个视图块来获取参数并显示链接到当前节点的节点


不管怎么说,如果这个太大了,我很抱歉。我不希望得到任何详细的答复,但我们将非常感谢您的帮助。我用Drupal做了一些工作,但这是我需要构建的第一个复杂结构。如果你知道任何博客都有这种多层结构,我非常感谢你的帮助。谢谢。

您试图解决的问题中可能有一些微妙的细节没有引起我的注意,但如果我是您,我会尝试将表示层与其他层分开

第一个问题是:为什么需要年份作为节点?年份本身是包含某种信息,还是只是事件的集合?从你的问题来看,我知道是后者,所以我会排除将年作为节点

如果我没有记错的话,事件发生的年份是您希望存储在DB中的唯一附加信息,而十年只是根据该信息,通过使用某种逻辑(在本例中是年份/10的整数部分)对节点进行分组的一种方式

依我看,你可以通过两种方式实现这一点

  • 通过层次分类法
  • 创建一个名为“事件”的节点类型,其中包含一个字段“year”,然后用视图组织所有其余的节点类型
  • 第一个选项很简单[甚至可能是您所描述的选项#2]。您不一定会失去灵活性,因为您可以在模板级别显示自动创建的信息(例如,一张名为“年”或“十年”的图片放在页面中),或将人工生成的信息链接到具有视图的给定页面[例如,您可以具有“年描述”类型的节点]您使用与“事件”相同的分类法进行标记,这样当您使用分类法术语(1945)进行筛选时,您将在结果中获得一个节点“事件”列表和一个节点“年份描述”,并且模板/视图将以不同的方式使用不同的节点类型]

    第二种选择不那么简单,但让你更灵活。您必须直接编写自己的“节点\事件模块”代码,而不是使用CCK,将字段描述为视图。然后,您可以使用Views UI来组装页面[按十年划分的节点、十年菜单、过滤器…])

    我非常确信,通过使用CCK+视图UI(因此,使用