Per eseguire la paginazione in CakePHP utilizzando delle condizioni sui campi tradotti (Translate Behavior) è necessario aggiungere alcune funzioni nell’app_model (testato nella versione 1.3):
var $usePaginateMethod = 'standard';
function setPaginate($method=''){
if (empty($method)){
$this->usePaginateMethod = 'standard';
}else{
$this->usePaginateMethod = $method;
}
}
function paginateCount($conditions, $recursive, $extra){
switch ($this->usePaginateMethod) {
case 'standard':
return $this->standardPaginateCount($conditions, $recursive, $extra);
break;
case 'custom':
return $this->customPaginateCount($conditions, $recursive, $extra);
break;
}
}
function standardPaginateCount($conditions, $recursive, $extra){
$results = $this->find('count', compact('conditions', 'recursive', 'extra'));
return $results;
}
function customPaginateCount($conditions, $recursive, $extra){
$results = $this->find('all', compact('conditions', 'recursive', 'extra'));
$count = count($results);
return $count;
}
Leggi tutto…