Drupal Pager 生成 POST 参数作为 URL 的一部分
Posted
技术标签:
【中文标题】Drupal Pager 生成 POST 参数作为 URL 的一部分【英文标题】:Drupal Pager is producing POST parameters as part of the 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:该设置位于管理区域中视图的高级选项下。 我仍然不知道如何防止所有过滤器成为链接的一部分... 【参考方案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;
【讨论】:
以上是关于Drupal Pager 生成 POST 参数作为 URL 的一部分的主要内容,如果未能解决你的问题,请参考以下文章