在Drupal中创建分页(不是有db_select()和PagerDefault)

时间:2020-03-05 15:25:31  来源:igfitidea点击:

分页器:对网络来说不是什么新鲜词,它在减少长时间滚动和改善视觉效果方面起着重要作用。
我的站点中的一个页面列出了基于统计的详细信息。
这是没有吸引力,继续与这个页面有近100多个项目显示。
在这一点上,我突然有了一个想法,在分页器的帮助下拆分统计数据。

我认为Drupal中的PagerDefault可以帮我一把,所以我对这个决定感到非常兴奋。

但后来我意识到不能在我的案例中使用相同的方法,因为它没有与任何查询一起呈现。
我的页面中只有一个由一个主题表()呈现的数组,为此构建一个分页器证明了我的决定是非常艰难的。

我千方百计选择最好的办法来解决我的需要。

最后我找到了一个解决方案并创建了一个分页器。
下面提到的代码被证明是有价值的解决方案。

$per_page = 10;
// Initialize the pager
$current_page = pager_default_initialize(count($rows), $per_page);
// Split your list into page sized chunks
$chunks = array_chunk($rows, $per_page, TRUE);
// Show the appropriate items from the list
$output = theme('table', array('header' => $header, 'rows' => $chunks[$current_page]));
// Show the pager
$output .= theme('pager', array('quantity',count($rows)));

前面提到的Page_default_initialize()初始化页面的分页器。

在我的例子中,第一个参数是要分页的项目总数。
我使用array_chunk()将这些项目分解为大小为10的数组。

上述函数可以在模块级或者模板级的相应主题函数中使用。
一旦完成分页器必须开始在情况下也工作。