Subversion Repositories eFlore/Applications.cel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 2357 → Rev 2358

/branches/v2.6-greffoir/jrest/services/CelStatistiqueTxt.php
69,9 → 69,9
 
private function construireRequeteListeUtilisateurNbrePhoto() {
$select = 'SELECT co.courriel_utilisateur, COUNT(DISTINCT ci.id_image) AS nbre ';
$from = 'FROM cel_obs co '.
' LEFT JOIN cel_obs_images coi ON (coi.id_observation = co.id_observation) '.
' LEFT JOIN cel_images ci ON (coi.id_image = ci.id_image) ';
$from = 'FROM cel_obs AS co '.
' LEFT JOIN cel_obs_images AS coi ON (coi.id_observation = co.id_observation) '.
' LEFT JOIN cel_images AS ci ON (coi.id_image = ci.id_image) ';
$where = 'WHERE transmission = 1 ';
$groupBy = 'GROUP BY co.courriel_utilisateur ';
$orderBy = 'ORDER BY nbre DESC ';
93,12 → 93,8
$filtres[] = "nom_ret LIKE $taxon ";
}
if (isset($tag)) {
$limitation = $this->construireWhereTags();
if ($limitation != null) {
$filtres[] = $limitation;
} else {
$zero_images = true;
}
$tagP = Cel::db()->quote("%$tag%");
$filtres[] = "ci.mots_cles_texte LIKE $tagP ";
}
$where .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : '');
 
109,42 → 105,10
$limitSql = str_replace('150', $limit, $limitSql);
}
}
if ($zero_images) {
$requete = null;
} else {
$requete = $select.$from.$where.$groupBy.$orderBy.$limitSql;
//echo $requete;
}
$requete = $select.$from.$where.$groupBy.$orderBy.$limitSql;
return $requete;
}
 
private function construireWhereTags() {
$where = null;
if (isset($this->parametres['tag'])) {
$tag = $this->parametres['tag'];
$tag_encode = Cel::db()->quote($this->encoderMotCle(trim($tag)));
 
// Construction de la requête
$requete = 'SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire '.
'FROM cel_mots_cles_images '.
"WHERE cmc_id_mot_cle_general = $tag_encode ";
$elements = Cel::db()->requeter($requete);
 
if ($elements != false && count($elements) > 0) {
// Pré-construction du where de la requête
$tpl_where = '(ci_meta_mots_cles LIKE "%%%s%%" AND ci_ce_utilisateur = %s )';
$requete_where = array();
foreach ($elements as $occurence) {
$requete_where[] = sprintf($tpl_where, $occurence['cmc_id_mot_cle_utilisateur'], Cel::db()->quote($occurence['cmc_id_proprietaire']));
}
$where = ' ('.implode(" \nOR ", $requete_where).') ';
} else {
$this->debug[] = "Aucune image ne correspond à ce mot clé.";
}
}
return $where;
}
 
private function getListeTaxonsNbrePhotos() {
$requete = $this->construireRequeteListeTaxonNbrePhoto();
 
/branches/v2.6-greffoir/jrest/lib/Cel.php
588,40 → 588,6
return md5(mb_strtolower(trim($mot_cle)));
}
 
protected function decoderMotsClesObs($utilisateur_id, $mots_cles) {
return $this->decoderMotsCles($utilisateur_id, $mots_cles, self::TYPE_OBS);
}
 
protected function decoderMotsClesImg($utilisateur_id, $mots_cles) {
return $this->decoderMotsCles($utilisateur_id, $mots_cles, self::TYPE_IMG);
}
 
private function decoderMotsCles($utilisateur_id, $mots_cles, $type) {
$mots = array();
if (! $this->etreNull($mots_cles)) {
$utilisateur_id = self::$bdd->quote($utilisateur_id);
 
$mots_cles = $this->protegerMotsCles($mots_cles, $type);
if (! $this->etreNull($mots_cles)) {
$table = ($type == self::TYPE_IMG) ? 'cel_mots_cles_images' : 'cel_mots_cles_obs' ;
 
$requete = 'SELECT cmc_mot_cle as mot_cle '.
"FROM $table ".
"WHERE cmc_id_mot_cle_utilisateur IN ($mots_cles) ".
"AND cmc_id_proprietaire = $utilisateur_id ".
' -- ' . __FILE__ . ':' . __LINE__;
 
$elements = Cel::db()->requeter($requete);
if (is_array($elements)) {
foreach ($elements as $mot) {
$mots[] = $mot['mot_cle'];
}
}
}
}
return $mots;
}
 
private function protegerMotsCles($mots_cles, $type) {
$separateur = ($type == self::TYPE_IMG) ? ',' : ';' ;
$mots_cles = $this->traiterValeursMultiples($mots_cles, $separateur);
/branches/v2.6-greffoir/jrest
Property changes:
Modified: svn:mergeinfo
Merged /trunk/jrest:r2356-2357
/branches/v2.6-greffoir/.
Property changes:
Modified: svn:mergeinfo
Merged /trunk:r2356-2357