339,12 → 339,12 |
if($p['ordre'] == 'desc') { |
// pas de group by nécessaire pour cette jointure |
// PRIMARY KEY (`ce_image`, `ce_protocole`) |
$req['join'][] = sprintf('INNER JOIN del_image_stat dis'. |
$req['join']['dis'] = sprintf('INNER JOIN del_image_stat dis'. |
' ON vdi.id_image = dis.ce_image'. |
' AND dis.ce_protocole = %d', |
$p['protocole']); |
} else { |
$req['join'][] = sprintf('LEFT JOIN del_image_stat dis'. |
$req['join']['dis'] = sprintf('LEFT JOIN del_image_stat dis'. |
' ON vdi.id_image = dis.ce_image'. |
' AND dis.ce_protocole = %d', |
$p['protocole']); |
537,6 → 537,9 |
// tri est aussi nécessaire car affecte les contraintes de JOIN |
'tri' => $p['tri'], |
'ordre' => $p['ordre']); |
if (array_key_exists('protocole', $p)) { |
$or_params['protocole'] = $p['protocole']; |
} |
|
/* Cependant les champs spécifiques ont priorité sur le masque général. |
Pour cette raison nous supprimons la génération de SQL du masque général sur les |
555,7 → 558,8 |
|
$or_masque = array_merge( |
DelTk::requestFilterParams($or_params, NULL, $c /* pour masque.departement */), |
self::requestFilterParams($or_params)); |
self::requestFilterParams($or_params) |
); |
|
/* Lorsqu'on utilise le masque général pour chercher des tags, ils sont |
postulés comme séparés par des espaces, et doivent être tous matchés. */ |
568,6 → 572,7 |
// pas de select, groupby & co ici: uniquement 'join' et 'where' |
$or_req = array('join' => array(), 'where' => array()); |
DelTk::sqlAddConstraint($or_masque, $db, $or_req); |
|
self::sqlAddConstraint($or_masque, $db, $or_req); |
|
if($or_req['where']) { |
631,11 → 636,12 |
|
if($p['tri'] == 'votes' || $p['tri'] == 'tags' || $p['tri'] == 'points') { |
// ces critère de tri des image à privilégier ne s'applique qu'à un protocole donné |
if(!isset($params['protocole']) || !is_numeric($params['protocole'])) |
if(!isset($params['protocole']) || !is_numeric($params['protocole'])) { |
$p['protocole'] = self::$default_proto; |
else |
} else { |
$p['protocole'] = intval($params['protocole']); |
} |
} |
|
return array_filter($p, create_function('$a','return !in_array($a, array("",false,null),true);')); |
} |