私は symfony プロジェクトに取り組んでおり、長いリスト用のページング システムを作成する必要がありました。それらを生成するために sfPropelPager プラグインを使用しました。私はこのように使用しています:
<div>
すべてのページを異なるタグで印刷し、最初のページのみを表示します。次に、JavaScript関数を使用して、次、前、...ボタンをクリックすると他のページが表示されます。
ページを生成するために使用する関数は次のとおりです。
$pager = new sfPropelPager('SysLogTbl',sfConfig::get('sfPropelPagerLines'));
$c = new Criteria();
$c->add('codigo_maestro',$this->getCodigoMaestro());
$c->add('codigo_registro',$id);
$c->addDescendingOrderByColumn('fecha_log');
$pager->setCriteria($c);
$pager->init();
return $pager;`
ビューコードは次のとおりです。
foreach($pager->getLinks() as $page){
echo'<div id="logpage'.$page.'" class="logpages" style="width:100%;';
if($page!=1){echo ' display:none';}
echo '">';
$pager->setPage($page);
$pager->init();
$results= $pager->getResults();
echo '<table class="none_list" id="list">';
echo "<thead>";
echo "<td width='8%'>Usuario</td><td width='8%'>Acción</td>";
echo "<td width='13%'>Campo</td><td width='25%'>Valor Antiguo</td>";
echo"<td width='25%'>Nuevo valor</td><td width='21%'>TimeStamp</td>";
echo "</thead>";
foreach($results as $log){
echo '<tr id="'.$log->getCodigoLog().'" >';
< here goes each entry in the page display, not relevant >
}
echo '</table>';
echo "<div style='float:left'>";
echo image_tag('first.png',array('class'=>"first"));
echo image_tag('previous.png',array('class'=>"previous"));
echo "</div>";
foreach($lista->getLinks() as $page){
echo "<div class='logindex' id='".$page."' style='float:left; cursor:pointer'>";
if($page == $lista->getPage()){
echo "<b>".$page."</b>";
}else{
echo $page;
}
echo "</div>";
}
echo image_tag('next.png',array('class'=>"next"));
echo image_tag('last.png',array('class'=>"last"));
echo '</div>';
$lista->setCursor($lista->getNextPage());
}
$lista->setCursor($lista->getFirstPage());?>
問題は、sfPropelPager が最大 5 ページしか生成しないことです。
すべてのページを表示するには、これをどこで構成する必要があるか知っていますか?? ありがとう!