【问题标题】:Drupal Pager is producing POST parameters as part of the URLDrupal Pager 生成 POST 参数作为 URL 的一部分
【发布时间】:2015-03-27 22:21:24
【问题描述】:

我不太明白为什么会这样,但 Pager 正在生成如下分页结果:

http://www.mywebsite.ca/reports-publications/reports/?field_executive_summary_value=&field_publication_date_value[value]&field_report_type_tid_selective=All&field_natural_resource_region_tid_selective=All&field_forest_district_tid_selective=All&field_keywords_tid_selective=All&page=1#

而不是简单地:

http://www.mywebsite.ca/reports-publications/reports/?page=1

此外,“page=1”表示第二页......就像在一个页面数组中一样,其中 0 实际上是第一个结果。

有人知道为什么 Pager 会生成这样的链接吗?

【问题讨论】:

  • 您是否在该页面上公开了任何过滤器? (不仅仅是附加寻呼机的视图)
  • 看起来可能是这样。但是 Drupal 不允许我更改选项......这就像有一个管理员“阻止”用于覆盖。
  • 更改用于寻呼机的 ID:该设置位于管理区域中视图的高级选项下。
  • 我仍然不知道如何防止所有过滤器成为链接的一部分...

标签: php drupal drupal-7 pagination pager


【解决方案1】:

我能够通过更改 pager.inc 文件来解决页码问题。

在 pager_find_page 函数中,

function pager_find_page($element = 0) {
  $page = isset($_GET['page']) ? $_GET['page'] : '';
  $page_array = explode(',', $page);
  if (!isset($page_array[$element])) {
    // Change here
    // $page_array[$element] = 0;
    $page_array[$element] = 1;
  }

  // Add this
  $page_array[$element]--;

  return (int) $page_array[$element];
}

并且,在 theme_pager_link 函数中,

if ($new_page = implode(',', pager_load_array($page_new[$element], $element, explode(',', $page)))) {
    // Change here
    // $parameters['page'] = $new_page;
    $parameters['page'] = $new_page + 1;
}

【讨论】:

    猜你喜欢
    • 2016-02-04
    • 2017-05-04
    • 1970-01-01
    • 2013-08-04
    • 2020-08-09
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多