在我的自定义模板tpl文件中,我显示了数据的两个部分(div内容),一个来自我的自定义模块的每个函数。数据也有分页,如下所示。
最初只显示一个数据块。其他数据块将隐藏在页面上,除非用户单击页面中的选项卡。现在我的问题是,我如何在同一页面中显示每个块的单独分页?
如果我点击区块1中的页面链接并进入其页面,则另一个区块的分页链接不得受到影响。如何在Drupal 7中实现这一点?
// my custom module code below
// function one
func one() {
$page = strtolower($page);
$query = db_select('keyword', 'k');
$query->groupBy('k.res');
$stories = $query->extend('PagerDefault')->limit(10)->execute();
return $stories;
}
// function two
func two() {
$page = strtolower($page);
$query = db_select('videos', 'v');
$query->groupBy('v.res');
$videos= $query->extend('PagerDefault')->limit(10)->execute();
return $videos;
}
// in my custom template page // below is first section in same page $block_content = fun one(arg(1)); $args = array( 'parameters' => array('pg' => 'one')); print (theme ('pager',$args)); foreach($block_content as $content) { // doing something to display } print (theme ('pager',$args)); // below is second section in same page $block_content = fun two(arg(1)); $args = array( 'parameters' => array('pg' => 'two')); print (theme ('pager',$args)); foreach($block_content as $content) { // doing something to display } print (theme ('pager',$args));
您可以使用PagerDefault::element()
方法为分页设置唯一的元素ID:
// First one
$stories = $query->extend('PagerDefault')->element(0)->limit(10)->execute();
// Second one
$videos = $query->extend('PagerDefault')->element(1)->limit(10)->execute();
然后在主题调用中使用相应的元素ID:
// First one
$args = array('element' => 0, ...);
print theme('pager', $args);
// Second one
$args = array('element' => 1, ...);
print theme('pager', $args);