2009-08-10 73 views
2

你好:)我在一个面向drupal的网站发布了这个相同的问题,但是根本没有得到任何答复。我抱怨自己,并希望该网站更像StackOverflow,所以我想,为什么不试试问它在这里:)Drupal问题:视图,参数和节点列表

我玩弄一个视图,显示节点属于分类术语。词汇表还有一个分类标准节点,其中包含所有术语的子标记。

到目前为止,该视图有一个参数,分类术语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) 

由于tyrannosauruses和伶盗龙属的额外令人敬畏的恐龙,它们也被添加到节点排列的生物中,subqueue dinosaurs:

子队列:

  1. 迅猛
  2. 霸王龙

最终视图应该按以下顺序显示出来:

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的关系,但它不会让我挑一个子队列,我只能限制到'活着的东西'nodequeue。 我的第一个看法参数是术语ID,所以我认为如果我添加了“Nodequeue:subqueue reference”作为第二个参数,我会得到预期的行为,但是这只显示了在节点列表中列出的恐龙。

任何有关这个问题的帮助或建议将不胜感激。谢谢!

回答

2

我还没有真正用过nodequeue的subqueue,所以我不完全确定这一点。但是根据我对nodequeue的经验,看起来像使用视图时,您仅限于他们支持的基本事物,并且无法真正实现您正在寻找的定制类型。我认为你最好的选择是创建你自己的视图排序处理程序,在这里你可以像这样排序。制作这样一个处理程序可能会非常棘手,因为您必须找出两个视图和节点列表才能使其工作。如果在冒险走上这条路之前,你应该考虑一下它是否值得,除非你之前已经完成了这种观点。

1

哈克解决方案警告!

使用nodequeue项目在您的页面中查看主视图。

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

你可能必须做一些与url变量的摆弄,但我认为它会起作用。

+0

大多数定制的drupal解决方案都是最好的;) – Ace 2009-08-10 11:54:36

2

更多黑客:
解决您试图完成的行为可能会放弃使用nodequeues。我不知道使用nodequeues也没有日期的重要性,整个动力,但在此之前面临着类似的问题,我已经能够使用以下来解决它:

  1. 修改日期

如果你粘住你的超酷恐龙,并修改元素的发布日期以使它们与你的订单相匹配,那么你可以在单个视图中生成你正在寻找的东西。这是一个非常有趣的故事,它并不是真的关心发布日期(总是取决于情况),也没有更紧迫的理由来使用节点序列。也就是说,如果你不需要nodequeue或日期,这是一个可行的解决方案。

杰里米的2视图解决方案也应该可行,我想说这是处理给定场景的另一种常见方法。

0

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

HTH