| Line 389... |
Line 389... |
| 389 |
$requeteLiaisons = 'SELECT DISTINCT SQL_CALC_FOUND_ROWS '.implode(', ',$champs).' '.
|
389 |
$requeteLiaisons = 'SELECT DISTINCT SQL_CALC_FOUND_ROWS '.implode(', ',$champs).' '.
|
| 390 |
($this->doitJoindreTableVotes() ?
|
390 |
($this->doitJoindreTableVotes() ?
|
| 391 |
', IF(dvote.ce_protocole = '.$this->parametres['protocole'].', SUM(dvote.valeur), 0) as total_votes ' :
|
391 |
', IF(dvote.ce_protocole = '.$this->parametres['protocole'].', SUM(dvote.valeur), 0) as total_votes ' :
|
| 392 |
''
|
392 |
''
|
| 393 |
).
|
393 |
).
|
| - |
|
394 |
($this->doitJoindreTableTags() ?
|
| - |
|
395 |
// attention le DISTINCT est indispensable !
|
| - |
|
396 |
', (COUNT(DISTINCT dtag.id_tag) + '.$this->assemblercomptageOccurencesMotsClesCel().') as total_tags ' :
|
| - |
|
397 |
''
|
| - |
|
398 |
).
|
| 394 |
'FROM '.$this->gestionBdd->formaterTable('del_obs_image', 'doi').
|
399 |
'FROM '.$this->gestionBdd->formaterTable('del_obs_image', 'doi').
|
| 395 |
'INNER JOIN del_image di '.
|
400 |
'INNER JOIN del_image di '.
|
| 396 |
'ON doi.id_image = di.id_image '.
|
401 |
'ON doi.id_image = di.id_image '.
|
| 397 |
'INNER JOIN del_observation dob '.
|
402 |
'INNER JOIN del_observation dob '.
|
| 398 |
'ON doi.id_observation = dob.id_observation '.
|
403 |
'ON doi.id_observation = dob.id_observation '.
|
| 399 |
'INNER JOIN del_utilisateur du '.
|
404 |
'INNER JOIN del_utilisateur du '.
|
| 400 |
'ON du.id_utilisateur = di.ce_utilisateur '.
|
405 |
'ON du.id_utilisateur = di.ce_utilisateur '.
|
| - |
|
406 |
($this->doitJoindreTableTags() ?
|
| - |
|
407 |
'LEFT JOIN del_image_tag dtag '.
|
| - |
|
408 |
'ON doi.id_image = dtag.ce_image AND dtag.actif = 1 ' :
|
| - |
|
409 |
''
|
| - |
|
410 |
).
|
| 401 |
($this->doitJoindreTableVotes() ?
|
411 |
($this->doitJoindreTableVotes() ?
|
| 402 |
'LEFT JOIN del_image_vote dvote '.
|
412 |
'LEFT JOIN del_image_vote dvote '.
|
| 403 |
'ON doi.id_image = dvote.ce_image AND dvote.ce_protocole = '.$this->parametres['protocole'] :
|
413 |
'ON doi.id_image = dvote.ce_image AND dvote.ce_protocole = '.$this->parametres['protocole'] :
|
| 404 |
''
|
414 |
''
|
| 405 |
);
|
415 |
);
|
| 406 |
$requeteLiaisons .= $this->chargerClauseWhere();
|
416 |
$requeteLiaisons .= $this->chargerClauseWhere();
|
| 407 |
$requeteLiaisons .= $this->getTri();
|
417 |
$requeteLiaisons .= $this->getTri();
|
| 408 |
$requeteLiaisons .= $this->gestionBdd->getLimitSql();
|
418 |
$requeteLiaisons .= $this->gestionBdd->getLimitSql();
|
| 409 |
|
- |
|
| - |
|
419 |
//echo $requeteLiaisons;exit;
|
| 410 |
return $this->bdd->recupererTous($requeteLiaisons);
|
420 |
return $this->bdd->recupererTous($requeteLiaisons);
|
| 411 |
}
|
421 |
}
|
| Line -... |
Line 422... |
| - |
|
422 |
|
| - |
|
423 |
private function assemblercomptageOccurencesMotsClesCel() {
|
| - |
|
424 |
$chaineMotsClesAffiches = $this->conteneur->getParametre('mots_cles_cel_affiches');
|
| - |
|
425 |
$tabMotsClesAffiches = explode(',',$chaineMotsClesAffiches);
|
| - |
|
426 |
$chaineSql = '';
|
| - |
|
427 |
|
| - |
|
428 |
// Comptage du nombre de mots clés officiels présents dans la chaine mots clés texte
|
| - |
|
429 |
foreach ($tabMotsClesAffiches as $motCle) {
|
| - |
|
430 |
if($chaineSql != '') {
|
| - |
|
431 |
$chaineSql .= ' + ';
|
| - |
|
432 |
}
|
| - |
|
433 |
$chaineSql .= 'IF(FIND_IN_SET('.$this->proteger($motCle).',di.mots_cles_texte) != 0, 1, 0)';
|
| - |
|
434 |
}
|
| - |
|
435 |
|
| - |
|
436 |
return '('.$chaineSql.')';
|
| - |
|
437 |
}
|
| 412 |
|
438 |
|
| 413 |
private function doitJoindreTableVotes() {
|
439 |
private function doitJoindreTableVotes() {
|
| 414 |
return ($this->tri == 'votes');
|
440 |
return ($this->tri == 'votes');
|
| Line -... |
Line 441... |
| - |
|
441 |
}
|
| - |
|
442 |
|
| - |
|
443 |
private function doitJoindreTableTags() {
|
| - |
|
444 |
return ($this->tri == 'tags');
|
| 415 |
}
|
445 |
}
|
| 416 |
|
446 |
|
| 417 |
private function getTri() {
|
447 |
private function getTri() {
|
| 418 |
$order = '';
|
448 |
$order = '';
|
| - |
|
449 |
if($this->doitJoindreTableVotes()) {
|
| - |
|
450 |
$order = ' GROUP BY dvote.ce_image, dob.id_observation ORDER BY total_votes '.$this->directionTri.', date_transmission desc ';
|
| 419 |
if($this->doitJoindreTableVotes()) {
|
451 |
} else if($this->doitJoindreTableTags()) {
|
| 420 |
$order = ' GROUP BY dvote.ce_image, dob.id_observation ORDER BY total_votes '.$this->directionTri.', date_transmission desc ';
|
452 |
$order = ' GROUP BY doi.id_image ORDER BY total_tags '.$this->directionTri.', date_transmission desc ';
|
| 421 |
} else {
|
453 |
} else {
|
| 422 |
$order = ' ORDER BY '.$this->tri.' '.$this->directionTri.' ';
|
454 |
$order = ' ORDER BY '.$this->tri.' '.$this->directionTri.' ';
|
| 423 |
}
|
455 |
}
|