equivale a
Ademas... como se vuelve tan ilegible te aconsejaria algo que nunca hago: crea un
alias de $this->_page a $page o $pg
Tu problema principal es que no se entiende nada!
Ahora repite lo anterior 1.000.000 de veces y el codigo se vera achicado bastante:
Código PHP:
Ver originalfunction getPages() {
if(!$this->_pagination_enabled) return "";
if($this->_table_total_rows > 0 && $this->_table_total_rows > $this->_limit) {
$tot_p = ceil($this->_table_total_rows
/ $this->_limit
);
// alias
$p = $this->_page;
$q = $this->_search_query;
$s = $this->_source;
$id = $this->_id;
$out= '<ul class="pagination pull-right" style="margin: 0px;">';
if($p != 1) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="1">«</a></li>';
// <li><a href="#">3</a></li>
if($tot_p <= 5) {
for($i = 1; $i < 6; $i++) {
$cl = "";
if($i == $p) $cl = "class='active'";
$out.= '<li '.$cl.'><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.$i.'">'.$i.'</a></li>';
}
}
else {
if($p > 2 && $p < ($tot_p - 2)) {
$out.= '<li><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p - 2).'">'.($p - 2).'</a></li>';
$out.= '<li><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p - 1).'">'.($p - 1).'</a></li>';
$out.= '<li class="active" ><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p).'">'.($p).'</a></li>';
$out.= '<li><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p + 1).'">'.($p + 1).'</a></li>';
$out.= '<li><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p + 2).'">'.($p + 2).'</a></li>';
}
else if($p == 1) {
$out.= '<li class="active"><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p).'">'.($p).'</a></li>';
if($p + 1 <= $tot_p) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p + 1).'">'.($p + 1).'</a></li>';
if($p + 2 <= $tot_p) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p + 2).'">'.($p + 2).'</a></li>';
if($p + 3 <= $tot_p) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p + 3).'">'.($p + 3).'</a></li>';
if($p + 4 <= $tot_p) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p + 4).'">'.($p + 4).'</a></li>';
}
else if($p == $tot_p) {
if($p - 4 > 0) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p - 4).'">'.($p - 4).'</a></li>';
if($p - 3 > 0) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p - 3).'">'.($p - 3).'</a></li>';
if($p - 2 > 0) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p - 2).'">'.($p - 2).'</a></li>';
if($p - 1 > 0) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p - 1).'">'.($p - 1).'</a></li>';
$out.= '<li class="active" ><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p).'">'.($p).'</a></li>';
}
else if($p == 2) {
$out.= '<li><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p - 1).'">'.($p - 1).'</a></li>';
$out.= '<li class="active"><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p).'">'.($p).'</a></li>';
if($p + 1 <= $tot_p) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p + 1).'">'.($p + 1).'</a></li>';
if($p + 2 <= $tot_p) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p + 2).'">'.($p + 2).'</a></li>';
if($p + 3 <= $tot_p) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p + 3).'">'.($p + 3).'</a></li>';
}
else if($p == ($tot_p - 1)) {
if($p - 3 > 0) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p - 3).'">'.($p - 3).'</a></li>';
if($p - 2 > 0) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p - 2).'">'.($p - 2).'</a></li>';
if($p - 1 > 0) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p - 1).'">'.($p - 1).'</a></li>';
$out.= '<li class="active"><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p).'">'.($p).'</a></li>';
if($p + 1 <= $tot_p) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p + 1).'">'.($p + 1).'</a></li>';
}
}
if($p != $tot_p) $out.= '<li><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.$tot_p.'">»</a></li>';
$out.= '</ul>';
return $paginator;
}
else return "";
}
- Ahora que es mas "legible" ... refactoriza
- Por ultimo.. tienes a la vista muchisimo HTML generado in situ cuando podrias buscar otra forma que la concatenacion por ejemplo el
patron Decorator