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_Drupal Views_Drupal Panels - Fatal编程技术网

Drupal问题:视图、参数和节点

Drupal问题:视图、参数和节点,drupal,drupal-views,drupal-panels,Drupal,Drupal Views,Drupal Panels,你好:)我在一个面向drupal的网站上发布了同样的问题,但没有得到任何回复。我对自己抱怨,希望这个网站更像StackOverflow,所以我想,为什么不试着在这里问一下:) 我正在使用一个视图来显示属于分类术语的节点。词汇表还有一个分类nodequeue,其中包含所有术语的子队列 到目前为止,该视图只有一个参数,即分类术语ID,并按发布日期排序。但是如果我想显示一个特定术语的所有节点,上面是所有nodequeue节点,下面是所有非nodequeue节点(但仍在这个特定分类术语下),按日期排序,

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

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

到目前为止,该视图只有一个参数,即分类术语ID,并按发布日期排序。但是如果我想显示一个特定术语的所有节点,上面是所有nodequeue节点,下面是所有非nodequeue节点(但仍在这个特定分类术语下),按日期排序,该怎么办

为了澄清,假设这是我的词汇表,我们称之为“活的东西”

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)
由于霸王龙和迅猛龙是非常可怕的恐龙,它们也被添加到了nodequeue生物中,即子队列恐龙:

子队列:

  • 速度捕捉器
  • 霸王龙
  • 最终视图应按以下顺序显示它们:

    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。 我的第一个视图参数是term ID,因此我认为如果我添加“Nodequeue:subqueue reference”作为第二个参数,我将获得预期的行为,但这只显示Nodequeue中列出的恐龙


    如果您对这个问题有任何帮助或建议,我们将不胜感激。谢谢

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

    黑客解决方案警告

    在包含nodequeue项的页面中显示主视图

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

    您可能需要对url变量进行一些修改,但我认为它会起作用。

    更多黑客:
    对于您试图实现的行为,一个解决方法可能是完全放弃使用nodequeues。我不确定使用nodequeues的全部动力,也不确定日期的重要性,但以前遇到过类似的问题,我可以通过以下方法解决:

  • 粘的
  • 修改日期
  • 如果粘贴超级酷恐龙,并修改元素的发布日期,使其符合您的顺序,则可以在单个视图中生成所需的内容。这有点太离谱了,它的前提是不真正关心发布日期(这取决于具体情况),也没有更迫切的理由使用nodequeue。也就是说,如果您不需要nodequeue或日期,这是一个可行的解决方案


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

    为什么不将每个节点后面的视图连接起来?(每个nodequeue生成一个视图) 您可以向第二个nodequeue添加标题(请参见视图编辑页面中的“基本设置”),该nodequeue包含调用视图的php代码(“第一个nodequeue”)(您只需将标题的输入格式更改为“php”)。或者更确切地说,通过调用views\u embed\u view()创建一个包含每个节点的自定义视图。这将有效地将一个nodequeue置于另一个nodequeue之上,如果它们具有相同的格式/内容类型,您甚至不需要处理字段:您可以使用Row Style==Node。就您的参数而言,它们可以作为第三个参数传递给views\u embed\u view(文档中没有说AFAICR,但我在论坛()中找到一篇文章,指出args可以作为“$current\u view->args”发送到被嵌入的视图)


    HTH

    大多数定制drupal解决方案充其量都是黑客的;)