【问题标题】:Drupal 7 Views, exposed date select list in descending orderDrupal 7 Views,按降序显示日期选择列表
【发布时间】:2014-05-27 13:55:32
【问题描述】:

在日期使用带有暴露过滤器的 Drupal 7 视图,选择列表工作正常。问题是列表总是按升序排列,例如 2000:2014,但我们希望它反过来,比如 2014:2000,这样最近几年就更近了。

我不介意解决方案(将日期列表更改为降序)是否会影响整个站点的每个选择列表。

非常感谢。

【问题讨论】:

  • 想知道这是否可以使用 BEF(更好的暴露过滤器)@mikekeran 来完成

标签: drupal-7 drupal-views


【解决方案1】:
function custommodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'views_exposed_form' && $form['#id'] == 'yourviewid') {
    $form['field_name']['value']['#process'][] = date_select_desc_process;
  }     
}


function date_select_desc_process($element, &$form_state, $form) {
  arsort($element['year']['#options']);

  return $element;
}

希望这会有所帮助。如果还有什么,请告诉我。

谢谢!! 阿基尔

【讨论】:

    【解决方案2】:

    你不能也暴露过滤器的操作符吗? (在过滤器设置中暴露操作符)

    【讨论】:

    • 我们不是在谈论过滤结果的升序/降序。相反,过滤器给出了一个选择列表;我们希望按降序排列该列表中的项目。目前,如果您在列表中选择 2000 年,则紧随其后,但如果您选择 2014 年,您将前往列表末尾。
    • 这种行为是在您以 ASC 顺序显示结果的情况下,因此选择列表也将按 ASC 顺序显示。我怀疑你在那里可以有两种不同的行为。作为替代方案,我会模拟选择列表自己构建它或尝试 JS 技巧。在构建自定义选择列表时,也许您可​​以克隆仅用于选择列表的视图并在分页器模板更改中更改 URL。
    • 事实上,在我的情况下,过滤器已经在降序,但选择列表仍在升序。无论过滤器是升序还是降序,Indeed Views 选择列表默认始终为升序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多