4

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

我如何让排序像这样工作?

4

5 回答 5

4

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

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';

  } 
}

并使用这些网址放入视图模板链接

于 2009-12-30T00:47:10.523 回答
2

AFAIK,您不能像使用过滤器那样公开排序标准。

我环顾四周发现了这个模块。这个想法是创建几个视图,每个视图都有不同的排序标准,并将它们与选项卡链接在一起。这有点骇人听闻,可能不适用于暴露的过滤器。该模块仍处于测试版,我还没有测试过,所以不能说它是否有任何好处。

于 2009-12-22T13:53:56.320 回答
1

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

于 2009-12-29T16:02:03.380 回答
1

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

于 2011-01-17T00:16:50.220 回答
0

在钩子中为 Drupal 少程序代码的视图添加排序。

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

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

  1. 在视图中创建一个显示页面,路径为(例如):some_path/%/by_totalcount
    1.1。按总数为此显示制定排序标准
  2. 使用路径(例如)在此视图中创建另一个显示页面:some_path/%/by_date
    2.1。按日期为此显示制定排序标准
  3. 使用代码创建新块:

<?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>


对不起我的英语……这不是我的母语))


于 2012-02-06T10:29:13.993 回答