Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/06/2014, 06:12
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Optimizar función: condicionales

Ahora... consideremos este pedazo:

Código PHP:
Ver original
  1. $out.= '<li><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p - 2).'">'.($p - 2).'</a></li>';    
  2.  
  3.             $out.= '<li><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p - 1).'">'.($p - 1).'</a></li>';
  4.  
  5.             $out.= '<li class="active" ><a href="#" class="datatable_reload" data-id="'.$id.'" data-source="'.$s.'" data-search="'.$q.'" data-page="'.($p).'">'.($p).'</a></li>';
  6.  
  7.             $out.= '<li><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p + 1).'">'.($p + 1).'</a></li>';    
  8.              
  9.             $out.= '<li><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p + 2).'">'.($p + 2).'</a></li>';

Acaso no es lo mismo que .... ?

Código PHP:
Ver original
  1. for ($k=-2;$k<3;$k++)
  2.                 $out.= '<li><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p + $k).'">'.($p + $k).'</a></li>';


Tienes un class="active" para $k=0 pero si lo necesitas no es dificil de arreglar:

Código PHP:
Ver original
  1. for ($k=-2;$k<3;$k++)
  2.     $out.= '<li'.($k==0 ? 'class="active"' : null).'><a href="#" class="datatable_reload" data-source="'.$s.'" data-id="'.$id.'" data-search="'.$q.'" data-page="'.($p + $k).'">'.($p + $k).'</a></li>';

Si te fijas... mas adelante solo cambias los rangos (0<=$k<5) y $s (tu $this->_source) reemplaza a $id (tu $this->_id) con algun cambio sutil como el de class="active" asi que en otra "iteracion de pensamientos" podria todo compactarse.... creeri todo tu metodo puede tener 15 lineas de codigo como sobrado

Igualmente yo pasaria esas varibles a una "vista" o "sub-vista" y ahi haria ese for()
__________________
Salu2!

Última edición por Italico76; 05/06/2014 a las 06:59