将两个视图合并到一个视图中
我有两个视图我想合并成一个视图。将两个视图合并到一个视图中
第一个视图显示公司ID = Y的X的所有项目。这是首先给予客户端的首选,然后是其他所有人。
所以我创建了第二个观点,X,其中公司ID!= Y.
我创造了它作为附件附加到第一个视图的所有项目,但我不认为我得到了意结果。
如何组合这些视图,以便首先列出第一个视图结果,然后使用相同的传呼机,过滤器和参数,然后是第二个视图?
有没有什么办法可以实现这一点,而不编程呢?
从MySQL的角度来看,逐字段语法将是处理这个问题的适当方式。例如:
SELECT * FROM tickets ORDER BY FIELD(priority, 'High', 'Normal', 'Low');
如果有一个模块将这种功能添加到视图,但AFAIK,它不存在,那将是非常好的。
如果你想在不编程的情况下解决这个问题,我认为你可以使用规则模块自动设置公司ID = Y的节点上的'sticky'复选框。在这个位置上,你可以订购View上的粘性值。
“粘滞“地位就像一个魅力,不需要黑客!呜呼。谢谢。 – Kevin 2010-04-09 14:56:50
沿着“粘性”理念的线,如果你不希望覆盖,也许你可以一个复选框字段添加到公司类型 - isClient。除了客户端以外,每个人都应该是虚假的,然后按此排序。
我还没有这样做,但也许你需要创建两个版本作为附件,并将它们都附加到另一个显示...?
创建第二个视图作为附件并将其附加到第一个视图。
将全部Inherit arguments
,Inherit exposed filters
和Inherit pager
设置为Yes
。
那就是我所做的,但是它显示了2个寻呼机,其中一个视图结束,另一个开始。 – Kevin 2010-04-06 19:08:44
好吧,我创建了这样的测试视图: - 带过滤器的页面显示。 - 与另一个过滤器的附件显示。 - 我在主显示屏之前附加了附件。 - 我设置Inherit参数,继承暴露的过滤器和继承寻呼机是和渲染寻呼机编号 它工作_almost_罚款。一个传呼机出现在主显示器下面,影响附件。 但是有一个很大的问题,我认为它会让你重新考虑所有的方法:如果附件显示比主显示有更多的“页面”显示,你不能访问它们。传呼机只有链接到主显示页面;不再。 – farzan 2010-04-06 19:31:06
稍后...但我发现仅使用Views模块一个更好的解决方案:
- 创建块视图与显示你需要的第一个列表(“
all items of X where company ID = Y
”) - 创建另一个观点,即必须是“页面视图”与第二列表(
all items of X, where company ID != Y
) - 在这第二种观点的“
HEADER
”的设置,单击“Add
”,然后选择“Global: View area
”。 - 在“
View to insert
”列表中,选择您所创建的第一个(并勾选“Inherid contextual filters
”如果你正在使用它)
就是这样!
看看这个教程:http://sethsandler.com/code/drupal-6-creating-activity-stream-views-custom-sql-query-merging-multiple-views-part-1/ – madmatter23 2012-03-02 06:06:14