2011-11-02 3 views
3

저는 심포니 프로젝트에서 작업 중이며 긴 목록을위한 페이징 시스템을 만들어야했습니다. 나는 그들을 생성하기 위해 sfPropelPager 플러그인을 사용했다. 나는 이것을 다음과 같이 사용하고있다 :sfPropelPager는 5 페이지 만 생성합니다.

다른 페이지의 모든 페이지를 <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&oacute;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 페이지에 생성합니다.

모든 페이지를 표시하려면 어디에서 구성해야합니까? 고맙습니다! 여기에 Jobeet 튜토리얼에 대한 좋은 예입니다 - -

+1

"관련성 높은"코드를 추가 할 수 있습니까? 호출기를 생성하는 컨트롤러 부분과 호출기를 렌더링하는보기 부분? 페이지 당 설정 항목 ('$ pager-> getMaxPerPage()')과 결과 수 ('$ pager-> count()')에 대해 궁금합니다. –

답변

3

당신이이 source of sfPager 당신이 당신이 원하는 얼마나 많은 링크를 알려주는 $nb_links 매개 변수가 나타납니다 확인하세요. 기본값은 5입니다.

+0

+1 for RTFC : -] – k0pernikus

0
+0

나는 튜토리얼을 오래 전에했는데,이 동작을 감지했을 때 수정되었고, 해결책을 찾지 못했습니다. –

+0

@AndreuHeineken 시작 변수는 $ this-> pager 여야합니다 ... – ManseUK

+0

@AndreuHeineken 당신의 행동에 대한 페이지? -> $ this-> pager-> setPage ($ request-> getParameter ('page', 1)); – ManseUK

관련 문제