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_Sorting_Drupal Views - Fatal编程技术网

在Drupal上向视图添加排序?

在Drupal上向视图添加排序?,drupal,sorting,drupal-views,Drupal,Sorting,Drupal Views,我过去知道如何做到这一点,但我似乎无法在过滤器暴露在块中的视图上进行排序。我想能够过滤,例如,类型,价格等,但也有排序选项排序这些项目 如何使排序工作成这样?好吧,您不能像使用过滤器那样公开排序条件 我环顾了一下四周,发现了一个。其思想是创建多个视图,每个视图具有不同的排序条件,并使用选项卡将它们链接在一起。这是一个有点黑客,可能无法与暴露的过滤器。该模块仍处于beta版,我还没有对其进行测试,因此不能说它是否良好。如果选择使用表布局,可以按列排序。该功能内置于视图中。我使用该代码覆盖非表视图中

我过去知道如何做到这一点,但我似乎无法在过滤器暴露在块中的视图上进行排序。我想能够过滤,例如,类型,价格等,但也有排序选项排序这些项目


如何使排序工作成这样?

好吧,您不能像使用过滤器那样公开排序条件


我环顾了一下四周,发现了一个。其思想是创建多个视图,每个视图具有不同的排序条件,并使用选项卡将它们链接在一起。这是一个有点黑客,可能无法与暴露的过滤器。该模块仍处于beta版,我还没有对其进行测试,因此不能说它是否良好。

如果选择使用表布局,可以按列排序。该功能内置于视图中。

我使用该代码覆盖非表视图中的排序

function views_tweak_views_query_alter(&$view, &$query) {
  if ($view->name == 'products'){
  if (arg(3) == 'pu') $query->orderby[0]='uc_products_sell_price ASC';
  if (arg(3) == 'pd') $query->orderby[0]='uc_products_sell_price DESC';
  if (arg(3) == 'nu') $query->orderby[0]='node_title ASC';
  if (arg(3) == 'nd') $query->orderby[0]='node_title DESC';

  } 
}

并将带有这些URL的模板链接放入视图中,以防找不到设置位置,请查看视图左侧(在编辑模式下),在“基本设置”下选择“表格”。单击“设置”(看起来像“表格”选项右侧的一个小齿轮图标),您将看到所有显示字段的列表,您可以在其中选择哪些字段可排序/不可排序,哪些是默认排序。

将排序添加到钩子中Drupal less programm代码的视图中

您需要在显示页面中使用参数

在..之前对页面使用分类菜单。。下一步:

  • 使用路径在视图中创建一个显示页面(例如): 某些路径/%/按总计数计算
    1.1. 按totalcount为此显示设置排序条件
  • 在此视图中使用路径创建另一个dislplay页面(例如): 某些路径/%/截止日期
    2.1. 按日期为此显示设置排序条件
  • 使用以下代码创建新块:

  • 我记得在过去我特别设置了一个选项,在视图顶部显示下拉列表。我想知道怎么再做一遍。:-)出于好奇,你找到答案了吗?我正在尝试451F的方法。没有。但我将尝试实现视图查询alterhook,看看会发生什么。当我开始工作时,我会汇报的。你能再解释一下你是如何实现的吗?你把这个放在template.php里了吗?或者具体在哪里?这个钩子什么时候叫?每次查看一个视图时,呃,我都把它放在单独的模块中。钩子更改视图查询以更改排序。每次都打电话。在视图中,我添加了4个链接(向上排序名称、向下排序名称、向上排序价格和向下排序价格)。在$Quest-OrthBube(0)中存储的字段和方向进行排序。考虑使用L.()函数生成标记。你甚至不想得到$base_url-l()可以帮你完成大部分繁重的工作。

    <?php $url= urldecode($_SERVER['REQUEST_URI']); switch($url) { case '1': $class = 'top'; $title_h2 = 'top'; break; case '/taxonomy/term/6 3 ': $class = 'travel'; $title_h2 = 'travel'; break; ................. } global $base_url; $url_rating = $base_url.'/'.arg(0).'/'.arg(1).'/'.arg(2).'/rating'; $url_created = $base_url.'/'.arg(0).'/'.arg(1).'/'.arg(2); ?> <div class="<?php print $class; ?>"> <div class="title"> <h2> <?php print $title_h2; ?></h2> <p>Sort node: <span class="sort_type"><a href="<?php echo $url_rating; ?>">by rate</a></span> | <span class="sort_type"> <a href="<?php echo $url_created; ?>">by date</a></span></p> </div> </div> <p>&nbsp;</p>