在drupal7的同一个模板文件中显示多个分页


show more than one pagination in same template file in drupal7

在我的自定义模板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);