Drupal问题:视图,参数和节点队列

时间:2009-08-10 08:29:44

标签: drupal drupal-views drupal-panels

你好:)我在面向drupal的网站上发布了同样的问题,但根本没有得到任何回复。我抱怨自己,并希望该网站更像StackOverflow,所以我想,为什么不尝试在这里问:)

我正在玩一个显示属于分类术语的节点的视图。词汇表还有一个分类法节点队列,其中包含所有术语的子队列。

到目前为止,视图有一个参数,分类术语ID,并按发布日期排序。但是,如果我想显示特定术语的所有节点,所有节点队列节点位于顶部,以及所有非节点队列节点(但仍在此特定分类术语下),按日期排序,该怎么办?

为了澄清,说这是我的词汇,我们称之为“生活的东西”

Plant
--Fruit
--Vegetable
Animal
--Fish
--Dinosaurs

在恐龙下可以找到以下节点:

Tyrannosaurus Rex (added 2009-01-01)
Megalosaurus (added 2009-01-02)
Velociraptor (added 2009-01-03)
Brachiosaurus (added 2009-01-04)

由于霸王龙和速龙是特别令人敬畏的恐龙,它们也被添加到节点生物中,加入了恐龙:

子队列:

  1. 迅猛
  2. Tyrannosaurus rex
  3. 最终视图应按此顺序显示:

    Velociraptor (it's first in the NQ)
    Tyrannosaurus Rex (2nd in NQ)
    Brachiosaurus (of the remaining dinosaurs, this is the newest)
    Megalosaurus (oldest non-queue dinosaur)
    

    我创建了一个与nodequeue的关系,但它不会让我选择一个subqueue,我只能限制'生活的东西'nodequeue。 我的第一个视图参数是术语ID,所以我认为如果我添加“Nodequeue:subqueue reference”作为第二个参数,我会得到预期的行为,但这只显示了在节点队列中列出的恐龙。

    对此问题的任何帮助或建议都将受到高度赞赏。谢谢!

4 个答案:

答案 0 :(得分:2)

对于nodequeues的子队列,我并没有真正尝试过,所以我并不完全确定这一点。但根据我对节点队列的经验,似乎在使用视图时,您只能使用它们所支持的基本内容,而且无法真正实现您正在寻找的自定义类型。我认为你最好的选择是创建自己的视图排序处理程序,你可以在这里对它进行排序。制作这样的处理程序可能会非常棘手,因为您必须弄清楚视图和节点队列以使其工作。在冒险沿着这条路走下去之前,你应该考虑一下它是否值得,除非你之前已经用观点做过这类事情。

答案 1 :(得分:2)

更多黑客:
您尝试完成的行为的解决方法可能是放弃使用节点队列。我不确定使用节点队列的整个动力和日期的重要性,但是之前面对类似的问题,我已经能够使用以下方法解决它:

  1. 粘性
  2. 修改日期
  3. 如果您粘贴超酷的恐龙,并修改元素的公布日期以使其符合您的订单,您可以在单个视图中生成您正在寻找的内容。这是一种讽刺,它的前提是不关心发布日期(总是取决于情况),也没有更紧迫的理由来使用节点队列。也就是说,如果您不需要节点队列或日期,那么这是一个可行的解决方案。

    Jeremy的2视图解决方案也应该可行,我会说这是处理给定场景的另一种常用方法。

答案 2 :(得分:1)

Hacky解决方案警告!

使用nodequeue项目在您的页面中显示您的主视图。

创建另一个视图,该视图作为非节点队列项的块公开。将此块放在主内容区域中,并将其限制为仅显示在与第一个视图相同的URL上。

您可能需要对网址变量进行一些调整,但我认为它会起作用。

答案 3 :(得分:0)

为什么不连接每个nodequeue背后的视图? (每个nodequeue生成一个视图) 您可以在第二个节点队列中添加一个标题(参见视图编辑页面中的“基本设置”),其中包含调用views_embed_view(“第一个节点队列”)的php代码(您只需将标题的输入格式更改为“php”)。或者更确切地说,通过调用views_embed_view()创建包含每个节点队列的自定义视图。这将有效地将一个节点队列放在另一个节点队列之上,如果它们具有相同的格式/内容类型,您甚至不需要乱用字段:您可以使用Row Style == Node。至于你的论点,它们可以传递给views_embed_view,作为第三个参数(文档不说AFAICR,但我在论坛中发现了一个帖子(http://drupal.org/node/99721),表明args可以作为'发送' $ current_view-> args'到嵌入的视图。

HTH