26,8 → 26,6 |
* élements du tableau $_FILES de php |
*/ |
public function ajouterImage($id_utilisateur, $infos_fichier) { |
$nouvel_ordre = $this->obtenirNouvelOrdrePourUtilisateur($id_utilisateur); |
|
$extracteur_metadonnees = new ExtracteurMetadonnees(); |
$informations_image = $extracteur_metadonnees->extraireMetadonnees($infos_fichier['tmp_name']) ; |
if (!$informations_image) { |
37,20 → 35,18 |
|
// ajout de quelques informations supplémentaire, en sus |
// des metadonnées dejà extraites |
$informations_image['ordre'] = $nouvel_ordre ; |
$informations_image['transmission'] = '0' ; |
$informations_image['nom_original'] = $infos_fichier['name'] ; |
$informations_image['original_name'] = $infos_fichier['name'] ; |
//$informations_image['size'] = $infos_fichier['name'] ; |
|
// le md5 du fichier sert à repérer les images en doublons |
$informations_image['md5'] = md5_file($infos_fichier['tmp_name']) ; |
|
$informations_image['ce_utilisateur'] = $id_utilisateur ; |
|
$informations_image['user_id'] = $id_utilisateur ; |
//manque une fonction |
$infos_utilisateur = $this->getInfosComplementairesUtilisateur($id_utilisateur); |
|
$informations_image['courriel_utilisateur'] = $infos_utilisateur['courriel']; |
$informations_image['nom_utilisateur'] = $infos_utilisateur['nom']; |
$informations_image['prenom_utilisateur'] = $infos_utilisateur['prenom']; |
$informations_image['user_email'] = $infos_utilisateur['courriel']; |
$informations_image['user_pseudo'] = $infos_utilisateur['pseudo']; |
|
$requete = $this->construireRequeteInsertionImage($informations_image); |
$resultat_insertion_infos_image = Cel::db()->executer($requete); |
59,7 → 55,7 |
$this->logger($message); |
} |
|
$id_nouvelle_image = $this->obtenirIdImagePourIdentifiantEtOrdre($id_utilisateur, $nouvel_ordre); |
$id_nouvelle_image = $this->obtenirIdImagePourIdentifiantEtOrdre($id_utilisateur, $informations_image['original_name']); |
if (!$id_nouvelle_image) { |
$message = "Impossible d'obtenir le nouvel identifiant de l'image"; |
$this->logger($message); |
78,33 → 74,16 |
return $id_nouvelle_image; |
} |
|
private function obtenirNouvelOrdrePourUtilisateur($id_utilisateur) { |
$idUtilisateurP = Cel::db()->proteger($id_utilisateur); |
$requete = 'SELECT MAX(ordre) AS max_ordre '. |
'FROM cel_images '. |
"WHERE ce_utilisateur = $idUtilisateurP ". |
' -- '.__FILE__.' : '.__LINE__; |
$resultat = Cel::db()->requeter($requete); |
|
$nouvel_ordre = 0; |
if ($resultat !== false) { |
$nouvel_ordre = $resultat[0]['max_ordre']; |
$nouvel_ordre++; |
} else { |
$message = "Erreur lors du calcul du nouvel ordre de l'image"; |
$this->logger($message); |
} |
return $nouvel_ordre; |
} |
|
private function obtenirIdImagePourIdentifiantEtOrdre($id_utilisateur, $ordre) { |
private function obtenirIdImagePourIdentifiantEtOrdre($id_utilisateur, $nom) { |
$id_image = false; |
$idUtilisateurP = Cel::db()->proteger($id_utilisateur); |
$ordreP = Cel::db()->proteger($ordre); |
$requete ='SELECT id_image '. |
'FROM cel_images '. |
"WHERE ce_utilisateur = $idUtilisateurP ". |
" AND ordre = $ordreP ". |
$nomP = Cel::db()->proteger($nom); |
$requete ='SELECT id as id_image '. |
'FROM photo '. |
"WHERE user_id = $idUtilisateurP ". |
" AND original_name = $nomP ". |
' -- '.__FILE__.' : '.__LINE__; |
$resultat = Cel::db()->requeter($requete); |
|
116,8 → 95,8 |
|
private function construireRequeteInsertionImage($informations_image) { |
$infos = array( |
'date_creation' => 'NOW()', |
'date_modification' => 'NOW()'); |
'date_created ' => 'NOW()', |
'date_updated ' => 'NOW()'); |
foreach ($informations_image as $champ => $valeur) { |
$infos[$champ] = is_null($valeur) ? 'NULL' : Cel::db()->proteger($valeur); |
} |
124,7 → 103,7 |
$champs = implode(', ', array_keys($infos)); |
$valeurs = implode(', ', array_values($infos)); |
|
$requete = "INSERT INTO cel_images ($champs) ". |
$requete = "INSERT INTO photo ($champs) ". |
"VALUES ($valeurs) ". |
' -- '.__FILE__.' : '.__LINE__; |
return $requete; |
141,27 → 120,15 |
public function modifierImage($id_utilisateur, $id_image, $parametres) { |
$champs_a_mettre_a_jour = $this->construireRequeteMajMetaDonnees($parametres); |
|
$requete = "UPDATE cel_images SET $champs_a_mettre_a_jour ". |
' WHERE id_image = '.Cel::db()->proteger($id_image). |
' AND ce_utilisateur = '.Cel::db()->proteger($id_utilisateur). |
$requete = "UPDATE photo SET $champs_a_mettre_a_jour ". |
' WHERE id = '.Cel::db()->proteger($id_image). |
' AND user_id = '.Cel::db()->proteger($id_utilisateur). |
' -- '.__FILE__.' : '.__LINE__; |
$resultat = Cel::db()->executer($requete); |
return ($resultat !== false); |
} |
|
public function modifierTransmissionParObs($idsObs, $publier) { |
$ids_obs_proteges = Cel::db()->proteger($idsObs); |
$idsObsConcat = is_array($ids_obs_proteges) ? implode(', ', $ids_obs_proteges) : $ids_obs_proteges; |
$etatTransmission = $publier ? 1 : 0; |
$dateTransmission = $publier ? 'NOW()' : 'NULL'; |
|
$requete = "UPDATE cel_images ". |
"SET transmission = $etatTransmission, date_transmission = $dateTransmission ". |
"WHERE ce_observation IN ($idsObsConcat) ". |
' -- ' . __FILE__ . ':' . __LINE__; |
$resultat = Cel::db()->executer($requete); |
return $resultat; |
} |
|
/** |
* Assemble la requete de mise à jour des champs de metadonnées |
188,29 → 155,6 |
return implode(', ', $champs_maj); |
} |
|
public function supprimerImageParOrdre($id_utilisateur, $ordre_images) { |
if (is_array($ordre_images)) { |
$ordre_images = Cel::db()->proteger($ordre_images); |
$idsImagesP = implode(',', $ordre_images); |
} else { |
$idsImagesP = Cel::db()->proteger($ordre_images); |
} |
$idUtilisateurP = Cel::db()->proteger($id_utilisateur); |
|
$requete = 'SELECT id_image '. |
'FROM cel_images '. |
"WHERE ce_utilisateur = $idUtilisateurP ". |
"AND ordre IN ($idsImagesP) ". |
' -- '.__FILE__.' : '.__LINE__; |
$resultats = Cel::db()->requeter($requete); |
|
$idsImages = array(); |
foreach ($resultats as $id_image) { |
$idsImages[] = $id_image['id_image']; |
} |
return $this->supprimerImage($idsImages); |
} |
|
public function supprimerImage($id_image_ou_tableau) { |
$ids_images_non_protegees = array(); |
if (is_array($id_image_ou_tableau)) { |
222,8 → 166,8 |
$chaine_ids_images = Cel::db()->proteger($id_image_ou_tableau); |
} |
|
$requete = 'DELETE FROM cel_images '. |
"WHERE id_image in ($chaine_ids_images) ". |
$requete = 'DELETE FROM photo '. |
"WHERE id in ($chaine_ids_images) ". |
' -- '.__FILE__.' : '.__LINE__; |
$resultat_suppression_image = Cel::db()->executer($requete); |
if ($resultat_suppression_image === false) { |
255,12 → 199,11 |
public function migrerImagesMailVersId($mail_utilisateur, $infos_utilisateur) { |
// ATTENTION : cette fonction suppose que l'utilisateur n'a pas déjà d'images dans le CEL |
// avec l'identifiant $id_utilisateur ce qui est normalement le cas |
$requete = 'UPDATE cel_images SET '. |
'ce_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).', '. |
'prenom_utilisateur = '.Cel::db()->proteger($infos_utilisateur['prenom']).', '. |
'nom_utilisateur = '.Cel::db()->proteger($infos_utilisateur['nom']).', '. |
'courriel_utilisateur = '.Cel::db()->proteger($infos_utilisateur['courriel']).' '. |
'WHERE ce_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' '. |
$requete = 'UPDATE photo SET '. |
'user_id = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).', '. |
'user_pseudo = '.Cel::db()->proteger($infos_utilisateur['prenom']).', '. |
'user_email = '.Cel::db()->proteger($infos_utilisateur['courriel']).' '. |
'WHERE user_id = '.Cel::db()->proteger($mail_utilisateur).' '. |
' -- '.__FILE__.' : '.__LINE__; |
|
$migration_releve = Cel::db()->executer($requete); |